Ответы пользователя по тегу Веб-разработка
  • Как сделать hover на svg?

    Exomode
    @Exomode
    Архитектор ПО
    Для того, чтобы на вашем векторном канвасе работали все события js и css, вам нужно в разметку вашего документа (страницы) непосредственно внедрить полную разметку вашего svg. Далее вы можете с ним делать что угодно, словно это любой другой DOM-элемент. Доступ к дочерним элементам типа g или path так же сохранится с теми же событиями. Если вы подгрузите в документ свой вектор svg как <img src="some.svg" alt="svg" /> или в таком духе, ваши события, разумеется, не будут работать, ни в css, ни в js.
    Ответ написан
    Комментировать
  • Как открыть окно с фиксированными размерами через js или html?

    Exomode
    @Exomode
    Архитектор ПО
    <a href="/index2.php?option=com_jumi&amp;fileid=3&amp;Itemid=11"
       onclick="window.open(this.href,'targetWindow',
                                       'toolbar=no,
                                        location=no,
                                        status=no,
                                        menubar=no,
                                        scrollbars=yes,
                                        resizable=yes,
                                        width=SomeSize,
                                        height=SomeSize');
     return false;">Popup link</a>
    Ответ написан
    Комментировать
  • Как все, что после слеша, поместить в параметр?

    Exomode
    @Exomode
    Архитектор ПО
    RewriteRule ^([^/]*)/$ /?arg1=$1 [L]
    RewriteRule ^([^/]*)/([^/]*)/$ /?arg1=$1&arg2=$2 [L]

    и пару полезных ссылок по теме:
    Генератор htaccess
    Генератор редиректов
    Генератор регулярок mod_rewrite, кучу раз меня выручал
    Ответ написан
    Комментировать
  • Как передачть значения массива из функции?

    Exomode
    @Exomode
    Архитектор ПО
    Во-первых, юзайте global:
    $errors = array();
    function test(){
        global $errors;
        return $errors[] = 'empty_test';
    }
    test();
    print_r($errors);

    Во-вторых, лучше делать так:
    $errors = array();
    
    function test() {
        global $errors;
        $test = 'empty_test';
        $errors[] = $test;
    
        return $test;
    }
    
    test();
    print_r($errors);

    Или как выше сказали, через передачу аргумента по ссылке.
    Ответ написан
    Комментировать
  • Почему при загрузке сайта на хостинг вечная прокрутка анимации, на локалке все норм?

    Exomode
    @Exomode
    Архитектор ПО
    c532a6389d8d45db9cee6bed36d20243.PNG У меня в опере всё загрузилось. проверьте на вечной загрузке у себя в инспекторе консоль, возможно там ошибки валит, они помогут понять в чём дело. Из-за них может не срабатывать триггер скрытия анимации загрузки.
    Ответ написан
  • Как создать генератор?

    Exomode
    @Exomode
    Архитектор ПО
    $lexems = [
      "text" => "TEXT",
    ];
    
    $data = [];
    
    foreach ($_REQUEST as $k => $v) {
      if (array_key_exists($k, $lexems)) {
        $data[$k] => htmlspecialchars(trim($v));
      }
    }
    
    $sourceText = file_get_contents("/path/to/template.txt");
    
    foreach ($data as $k => $v) {
      $sourceText = str_replace('{' . $lexems[$k] . '}', $v, $sourceText);
    }
    
    echo $sourceText;


    Как оно работает:
    1. На странице есть набор input с именами, соответствующими ключам ассоциативного массива $lexems;
    2. После отправки данных на наш скрипт-обработчик, мы сохраняем все полученные данные в массив с теми же ключами;
    3. Получаем исходный текст шаблона, где содержатся наши лексемы;
    4. Проходимся массивом по полученным данным, выбираем по тем же ключам лексемы и заменяем их на пришедший с клиента текст, после чего выводим результат на экран.

    Вместо str_replace можно использовать preg_replace или составить карту подмены и обойтись в str_replace без цикла. последнее самое предпочтительное в плане производительности на текстах небольшого объёма. Вариант с регулярками лучше использовать на массивных текстах.
    Ответ написан
    Комментировать
  • Как улучшить внешний вид изображения?

    Exomode
    @Exomode
    Архитектор ПО
    Делаете обертку-родителя, вставляете в него изображение через background-image, делаете дочерний блок, тоже вставляете в него изображение через background-image, далее уже от вашей фантазии зависит, позиционировать можно как угодно, рамку, эффекты, анимации, фильтры, тексты, события, другие блоки - все что пожелаете.
    Ответ написан
    Комментировать
  • В адресах url сайта появились /#, можно ли это убрать?

    Exomode
    @Exomode
    Архитектор ПО
    Это якори для отсылкам к идентификаторам документа. Удобная штука для навигации по странице и для передачи клиентских параметров без cookie. Работают исключительно на клиенте и на сервер не попадают. Чтобы их убрать, нужно добавить примерно такой js:

    $(window).on('hashchange', function() {
      window.location.hash = null;
    });


    Этот код удалит якорь из адресной строки всякий раз когда он будет добавляться. В некоторых случаях это может нарушить работу некоторых плагинов и эффектов, использующих якори. Чтобы этого избежать, можно модифицировать код и добавить проверку только на пустую ссылку:

    $(window).on('hashchange', function() {
      if (window.location.hash == '#') {
        window.location.hash = null;
      }
    });
    Ответ написан
    3 комментария