• Как называется подобная кривая линия?

    twobomb
    @twobomb
    Ну вот крч сделал походу то что тебе нужно.
    Ответ написан
    Комментировать
  • Как сверстать такой элемент?

    twobomb
    @twobomb
    Крч вот, впадлу мучаться ну если есть желание то смотри в сторону 3d-transform.
    Ответ написан
    Комментировать
  • Как убрать родительский тег P у картинки?

    twobomb
    @twobomb
    Лучше всего разбирайся со своим редактором, потому-что так как ты хочешь это называется костыли.
    Ну если очень нужно, то вот код. Он убирает тег p только если внутри него находится одна картинка. Особо не тестил, так что проверяй.
    $("p").each(function(i, el) {
      if (el.children.length == 1 && el.children[0].nodeName == "IMG") {
        $(el).after(el.children[0]);
        $(el).remove();
      }
    });
    Ответ написан
  • Как на js сохранить и вывести страницу сайта?

    twobomb
    @twobomb
    Никуда, в js нет доступа к файловой системе*, максимум на что можешь рассчитывать это куки. Как вариант посылать через ajax на сервер и там уже сохранять. И я так понимаю ты хочешь сохранить полное состояние сайта на момент добавления ссылки, ты хоть понимаешь что тебе нужно будет сохранить все скрипты,стили,картинки,хтмл код этой страницы, что может не плохо так весить и вообще это не "простое приложение для тренировки". Крч одним Js не обойдешься.
    *А по поводу доступа к файловой системе, есть один способ, появилось в html5 FileSystem API.Ну я его не использовал и не знаю что там, да как. Но если очень нужно то можно и разобраться.
    Ответ написан
  • Как выровнять кнопку по центру екрана?

    twobomb
    @twobomb
    Если у кнопки фиксированный размер то
    button,input[type=button]{
      position:absolute;
      left:0;
      right:0;
      top:0;
      bottom:0;
      margin:auto;
    }
    Ответ написан
  • JQuery как преобразовать все ссылки к абсолютному виду?

    twobomb
    @twobomb
    Держи написал за 2 минуты особо не тестировал ну вроде должно работать.
    Просто вызови эту функцию в onload'е
    function replaceOnAbsolute(){
        var attrForReplace = ["src","href"];//В каких атрибутах менять на абсолютные ссылки
        var curDir = window.location.href.match(/(.+\/).+\.?.+?/)[1];
       $("*").each(function(i,e){
           attrForReplace.map(function(el){
               if($(e).attr(el))
                if($(e).attr(el).search("^(https?)|(file)|(ftp)") == -1)
                    $(e).attr(el,curDir+$(e).attr(el));
           });
       });
    }
    Ответ написан
  • Примеры работы с объектами?

    twobomb
    @twobomb
    Да везде и всегда они применяются, удобно ведь группировать однотипные сущности в объекты.
    Вот буквально вчера отвечал здесь на один вопрос по canvas и делал вот эту работу. Обрати внимание есть объект loaderInfo в котором и поля и функции и массивы. А так же объект imgHandler. Ну и функция-класс img, на основе которой создаются однотипные объекты которые потом удобно использовать.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы div был рядом с другим div?

    twobomb
    @twobomb
    .value_block {
            width: 40%;
            display:inline-block;
        }
    Ответ написан
    Комментировать
  • Как выравнять много элементов по площади родителя?

    twobomb
    @twobomb
    Рекомендую обратить внимание на библиотеку masonry. Может это еще заинтересует.
    Ответ написан
  • Как вывести данные из скрипта в php?

    twobomb
    @twobomb
    Вот здесь качаешь скрипт и базу данных. Кидаешь все в одну папку + мой код и радуешься.
    include("./SxGeo.php");
    
    $SxGeo = new SxGeo('SxGeoCity.dat');
    if($SxGeo->get(get_ip())["city"]["name_ru"] == "Москва"){
        //Что-то делаем
    }
    else{
        //Делаем что-то другое
    }
    
    function get_ip()
    {
        if (!empty($_SERVER['HTTP_CLIENT_IP']))
        {
            $ip=$_SERVER['HTTP_CLIENT_IP'];
        }
        elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
        {
            $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
        }
        else
        {
            $ip=$_SERVER['REMOTE_ADDR'];
        }
        return $ip;
    }
    Ответ написан
    Комментировать
  • Как просто сделать загрузка картинки в textarea по Ctrl+V?

    twobomb
    @twobomb
    В общем вот сделал тестовый вариант без загрузки на сервер, но естественно при публикации\добавлении статьи, их нужно будет загрузить на сервер. Картинки зашифрованные в base64, лежат в массиве images[i].data их можно загрузить как ajax'ом так и hidden инпутами через форму, на сервере нужно будет преобразовать text base64 в картинки и сохранить в соответствующие директории и заменить {image1} уже на реальные ссылки.
    Ответ написан
  • Как изменить прозрачность части canvas?

    twobomb
    @twobomb
    Ну вот, правда я немного увлекся.
    Ответ написан
    Комментировать
  • Как перебрать многомерный массив?

    twobomb
    @twobomb
    <?PHP
    $arr = 
        array("color"=>array(
            array(
            "id"=> "1",
            "name"=> "Цвет",
            "value"=> "красный",
            "photo"=> "http://google.com/"),
            array(
            "id"=>  "2",
            "name"=> "Цвет",
            "value"=> "зеленый",
            "photo"=> "http://google.com/"
            )
         ),
         "razmer"=>array(
            array(
            "id"=> "1",
            "name"=> "Размер",
            "value"=> "900х2000",
            "photo"=> "http://google.com/"
            ),
             array(
            "id"=> "2",
            "name"=>  "Размер",
            "value"=> "800х2000",
            "photo"=> "http://google.com/"
             ),
             array(
            "id"=> "3",
            "name"=>  "Размер",
            "value"=>  "700х2000",
            "photo"=> "http://google.com/"
             ),
             array(
            "id"=> "4",
            "name"=> "Размер",
            "value"=> "600х2000",
            "photo"=> "http://google.com/"
             )
         )
         );
    
    function getMix($arr,$charr = null,$n = null){
        if(!isset($n))
            $n = 0;
        $tmpArr = array_values($arr);
        if(!isset($charr))
            $charr = array();
        $str = "";
        for($i = 0; $i < count($tmpArr[$n]);$i++){
            $mycharr = $charr;
            array_push($mycharr,$tmpArr[$n][$i]["value"]);
            if($n < count($tmpArr)-1)
                $str .= getMix($arr,$mycharr,$n+1);
            else{
                for($j = 0; $j < count($mycharr);$j++)
                    $str .= $mycharr[$j]." ";
                $str .= "<br>";
            }
        }
        return $str;
    }
       echo getMix($arr);
    ?>

    красный900х2000
    красный800х2000
    красный700х2000
    красный600х2000
    зеленый900х2000
    зеленый800х2000
    зеленый700х2000
    зеленый600х2000
    Ответ написан
  • Как сделать задержку запуска CSS анимации?

    twobomb
    @twobomb
    Ну так можно
    Ответ написан
    Комментировать
  • Как создать функцию добавления объявления?

    twobomb
    @twobomb
    Ну вот крч. Делай точно так как у меня и все будет работать.
    БАЗА ДАННЫХ

    Логин root
    Пароль 123456
    Хост localhost
    Порт 3306
    Имя: my_data
    Настраивается в data.php

    Таблица 1
    Имя: images
    Поля
    id int autoincrement
    url varchar 255
    post_id int

    Таблица 2
    Имя: posts
    Поля
    id int autoincrement
    title varchar 50
    description text


    ФАЙЛ posts.php
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            body{
                background: #333333;
            }
            .post{
                color:aliceblue;
                width:60%;
                margin: auto;
                border: 5px solid #FFF;
                margin-top:25px;
            }
            .post .title{
                font-size:1.4em;
                padding: 15px;
                background:#660099;
            }
            .post .description{
                padding: 15px;
                background:#330099;
            }
            .post .images img{
                border-radius: 20px;
                margin: 20px auto;
                width: 50%;
                display: block;
                
            }
            .post .images{
                padding: 15px;
                max-height: 500px;
                overflow: overlay;
                background:#660099;
            }
        </style>
    </head>
    <body>
    <?PHP
        require_once "data.php";
        $con = sql_connect();
        $sql = "SELECT id,title,description FROM posts LIMIT 20";
        $res = $con->query($sql);
        $bar = "";
        while($row = $res->fetch_assoc()){
    $bar .= "<div class='post' data-postid={$row["id"]}'>
            <div class='title'>{$row["title"]}</div>
            <div class='description'>{$row["description"]}</div>
            <div class='images'>"; 
        $sql = "SELECT url FROM images WHERE post_id=$row[id]";
        $imgs = $con->query($sql);
            while($img = $imgs->fetch_row())
                $bar .= "<img src=\"$img[0]\">";
            $bar .= "
            </div>
        </div>"; 
        }
        echo $bar;
        ?>
    </body>
    </html>

    ФАЙЛ data.php
    <?PHP
    
    define("DB_LOGIN","root");
    define("DB_PASS","123456");
    define("DB_HOST","localhost");
    define("DB_NAME","my_data");
    define("DB_PORT","3306");
    
    function sql_connect(){
        $con = new mysqli(DB_HOST, DB_LOGIN, DB_PASS, DB_NAME,DB_PORT);
        if ($con->connect_errno) {
            echo "Нет доступа к БД! Ошибка: " . $con->connect_error;
            return false;
        }
        return $con;
    }
    ?>

    ФАЙЛ index.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <script>
        document.addEventListener("DOMContentLoaded",function(){
    	document.all.addFoto.addEventListener("click",function(){
         var el = document.createElement("input");
         el.name = "foto[]";
         el.type = "file";
         el.accept="image/*";
      	document.all.addBtn.appendChild(el)
      });
    });
        </script>    
        <style>
        label,input{
      display:block;
      margin-top:10px;
    }
        </style>
    <body>
        <form action="addScript.php" method="post" enctype="multipart/form-data">
      <label >Заголовок<input type="text" name="title"></label>
      <label >Описание<input type="text" name="description"></label>
      <input type="button" id="addFoto" value="Добавить фото">
      <div id="addBtn"></div>
      <input type="submit" value="Отправить" />
    </form>
    </body>
    </html>

    ФАЙЛ addScript.php
    <?PHP
        require_once "data.php";
    
    $arr = [];
    if(isset($_FILES["foto"])){
        $dir = "upload/images";
        if(!is_dir($dir))
            mkdir($dir,0777,true);
        for($i = 0; $i < count($_FILES["foto"]["name"]);$i++){
            if($_FILES["foto"]["error"][$i] == 0 && preg_match("/^image/",$_FILES["foto"]["type"][$i])){
                array_push($arr,$dir."/".time()."_".preg_replace("/[а-яА-Я\s]/i", '', $_FILES["foto"]["name"][$i]));
                move_uploaded_file($_FILES["foto"]["tmp_name"][$i],end($arr));
            }
        }
    }
    $title = trim(htmlspecialchars($_POST["title"]));
    $description = trim(htmlspecialchars($_POST["description"]));
    
    if($title && $description && $con = sql_connect()){
        $sql = "INSERT INTO posts(title,description) VALUES('$title','$description')";
        $con->query($sql);
        $sql = "SELECT MAX(id) FROM posts";
        $res = $con->query($sql);
        $row = $res->fetch_row();
        for($i = 0; $i < count($arr);$i++){
            $sql = "INSERT INTO images(url,post_id) VALUES('$arr[$i]','$row[0]')";
            $con->query($sql);
        }
    }
    else 
        echo "Error: no data!";
    $con->close();
    
    ?>
    Ответ написан
    8 комментариев
  • Как "перегружать" DOM?

    twobomb
    @twobomb
    Событие забыл повесить, вот.
    Ответ написан
    Комментировать
  • Чем отличается += от ++ в JavaScript?

    twobomb
    @twobomb
    ++ Инкремент, всегда прибавлет +1 к переменной
    += сокращенная форма
    переменная = переменная +
    , соотвественно можно не только прибавить 1, но и любое значение
    PS. При использовании инкремента важно то где он стоит, если перед переменной то число увеличивается, а потом возвращается. А если после переменной, то сначала возвращается, а потом увеличивается
    Префиксная форма
    var a = 2;
    var b = ++a;
    alert(b)//3

    Постфиксная форма
    var a = 2;
    var b = a++;
    alert(b);// 2
    Ответ написан
    1 комментарий
  • Как найти исходники видео Youtube через Inspect Element?

    twobomb
    @twobomb
    Если посмотреть на youtube.com, то url у любого видео выглядит вот так:
    blob:https://www.youtube.com/17c9289e-4450-4ea0-a0bd-56570172d62a
    Это говорит о том, что видео было загружено в виде бинарного объекта. По ссылке видно что источник представлен в виде blob'a.
    Ответ написан
    Комментировать