• Как в slick-slider реализовать длинный слайд?

    @ksnk
    Наилучшее решение - дать дизайнеру по наглой рыжей морде и объяснить, что слайдер со скроллером - это то еще гуано. Слайдер обязан демонстрироваться сам, без участия пользователя.
    Решение раз - порезать картинку на несколько, разумной длины
    Решение два, если дизайнер оказался сильнее, автоматически, анимацией, скроллировать длинный слайд от начала кадра до конца, за время демонстрации самого слайда. Ставится в метод afterChange слик слайдера. Посчитать размер картинки, размер окна слайда, время демонстрации и анимировать разницу.
    как - то так https://jsfiddle.net/jcoa5L6x/2/
    Ответ написан
    1 комментарий
  • Почему угасает энергия в моделировании "гравитации" в JS?

    @ksnk
    В момент удара по горизонтальной поверхности - sy - максимальна, после чего она инвертируется. И в этот же момент уменьшается. Тоесть каждый удар по плоскости, максимальная скорость убегания становится меньше на G. Просто выведи скорость сразу после инвертирования sy и все сам увидишь
    Ответ написан
    5 комментариев
  • Как получить значение полей формы в Ангуларе из автозаполненой формы?

    @ksnk
    Собирай значения полей не сразу в onload а через таймаут. Автозаполнение - это тоже скрипт, который выполняется после загрузки страницы и ему нужно время.
    Ответ написан
    Комментировать
  • Как составить регулярное выражение?

    @ksnk
    Если нужно регулярки - вот так можно
    let m= document.body.innerHTML.match(/(?=[^>]*name="email")<input[^>]+value="([^"]+)"/is);
    console.log(m[1]);

    Регулярка из 2-х половин. Вторая определяет элемент и выковыривает его value, первая проверяет, что name у этого элемента правильный. Расчет на то, что кавычки всегда будут двойными.
    Через Дом, конечно, лучше. На кавычки закладываться не придется.
    Ответ написан
    Комментировать
  • Как указать московское или серверное время в автоотправке запроса с помощью JS?

    @ksnk
    Что такое - сверхвысокая точность ? С точностью до секунды?
    Как узнать оставшееся время в setTimeout?
    Устанавливает таймер на "точный" интервал. Точность достигается тем, что функция вызывается раз в секунду (интервал настраивается) и корректирует оставшееся до событие время. Реальная точность зависит от нагрузки на компьютер в момент срабатывания таймера.
    Для срабатывания в нужное время нужно указать это время в формате с таймзоной.
    function setMyTimer(_t, interval){
            if(typeof(_t)=='function'){
                _t={main:_t}
            }
            _t.start=Date.now();
            _t.interval=_t.interval||interval;
            _t.log_interval=_t.log_interval || 1000;
    
            function log(){
                const diff=_t.interval - (Date.now() - _t.start);
                if(_t.log)_t.log(diff);
                if(diff>_t.log_interval)
                    setTimeout(log,_t.log_interval);
                else {
                    setTimeout(_t.main,diff<0?1:diff);
                }
            }
    
            setTimeout(log,_t.log_interval);
        }
    
        let AlertTime=new Date('2020-11-18T10:39:00+03:00') ;
    
        setMyTimer(()=>alert('Доставка!'), AlertTime.valueOf()-Date.now());
    Ответ написан
    3 комментария
  • Как написать такой regexp для js?

    @ksnk
    Регулярки по таким идиотским условиям пишутся тупо. Используются маски предварительного просмотра look ahead - (= и (!

    - минимум 7 символов (?=.{7})
    - максимум 64 символа (?!.{65})
    - допускается только латиница - самое идиотское. Требуется уточнение, по немецки, там или иероглифами, значит, можно ? Будем считать, что русские буквы нельзя - (?!.*[ёЁа-я])
    - не должен содержать... - (?!.*[!@#$%^&*? ])
    - нельзя ввести 4 одинаковых символа. Тоже то еще условие... 4 запятые подряд, значит, можно ? Будем считать, что любые 4 подряд нельзя - (?!.*(.)\1\1\1)
    - комбинации qwerty - (?!.*qwert)
    - комбинации 1234 - (?!.*1234)
    - не совпадает со словом password - (?!password$)
    - не должен содержать пробелы (?!.*\s)
    Итого - объединяем и тадамс!
    let reg=/^(?=.{7})(?!.{65})(?!.*[ёЁа-я])(?!.*[!@#$%^&\*\?])(?!.*(.)\1\1\1)(?!.*qwert)(?!.*1234)(?!password$)(?!.*\s).*/i

    Можно обойтись меньшим количеством букв, но стоит ли. Читабельность в этом деле ариважна.

    Второй пример сам сделаешь ?
    Ответ написан
    Комментировать
  • Как отобразить на картах путь (пешком) с одной центральной точки к нескольким другим (в разных) местах одновременно?

    @ksnk
    https://habr.com/ru/post/197448/
    не оно ? Можно несколько раз заставить googlemap нарисовать маршрут движения.
    Если не получится/не понравится - нарисовать все маршруты вручную (google.maps.Polyline), используя координаты из инструментов внизу статьи.
    https://jsfiddle.net/rkme98af/
    Ответ написан
    Комментировать
  • Как добавить красивый попап на гугл карты?

    @ksnk
    Ответ написан
    Комментировать
  • Как рассчитать разницу двух дат в js и чтобы разница часовых поясов не влияла?

    @ksnk
    Вместо странного метода вычисления московского времени, лучше писать вот так
    ...
    var t = Date.parse(endtime) - Date.now();
    ...
    Ответ написан
    Комментировать
  • Как расшифровать gzip архив из file_get_contents?

    @ksnk
    В таком случае удобнее открывать гзипы с помошью curl. Если поставить параметр CURLOPT_ENCODING = 'gzip', то передаваемый в гзипе контент сам распакуется. если надо.
    function getcontents($url){
        if(filter_var($url,FILTER_VALIDATE_URL)) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
            // ssl?
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
            $output = curl_exec($ch);
            curl_close($ch);
            return $output;
        }
        return file_get_contents($url);
    }
    
    
     echo getcontents('https://www.rusprofile.ru/id/11597949');
    Ответ написан
    Комментировать
  • Как правильно настроить sass для web storm?

    @ksnk
    А что не правильно то ? После сохранения файла должен срабатывать конвертер. сам. После любого автосохранения файла.
    Если эпизодически sass блокируется - нужно посмотреть что в консольке выводится, что за ошибки...
    Если sass или нода не найдены - строка в поле Programm выводится красным цветом, но это, похоже не этот случай.
    До этого нужно убедится, что node.js поставлен. Нужно убедится, что sass поставлен в ноду. Нужно убедится, что переменная path смотрит куда надо. После этого значения по умолчанию для этого расширения просто включаются и все.
    Ответ написан
    Комментировать
  • Как исправить таймер отчета от времени?

    @ksnk
    floor округляет вниз. Так что чуть меньше -1 станет -2. Ну и секунды вполне можно округлять, а не обрезать.
    Ну и лепить еще один таймаут вместо старого как-то неправильно. Можно же и в одном уместится.
    Как нибудь так
    Ответ написан
    Комментировать
  • Прелоадер для сайта?

    @ksnk
    Нужно найти/нарисовать картинку с анимированием открытия двери, и сделать что-то такое
    В примере анимация стартует по наведению мыши, в прелодере лучше добавить правило, применяющее стиль в конце тела прелодера - блок стилей перед < / body > . Или по таймауту на javascript.

    Да, scale будет разумнее, чем установка размера, если картинка в большом увеличении не будет выглядеть коряво. Если картинка рисованная - указать размер в пикселях может быть более правильно.
    Ответ написан
    Комментировать
  • Как изменить корневую директорию сайта в github-pages?

    @ksnk
    Есть тег base - htmlbook.ru/html/base .
    <base href="/build">
    Если его использовать, то все относительные ссылки на странице станут начинаться оттуда, куда смотрит этот base. Если нужна ссылка на другое место - можно ставить в начало ссылки / . В принципе - прием довольно удобен, при аккуратном использовании, когда нужно переключать темы на сайте. Хотя иногда можно влететь в тот еще геморрой. Например href="#" указанный на такой странице по адресу / будет указывать не на ту же страницу, а на страницу /build/#
    Ну и , конечно, сама страница должна оставаться в корне, все таки статический хостинг
    Ответ написан
  • Возможно ли найти промежуточную координату svg path?

    @ksnk
    Mожно "перерисовать" этот svg в canvas ( drawImage или stroke ), если он не там уже нарисован, конечно. Потом выковырять нужную линию шириной 1 (getImageData) и пробежаться по всем точкам, для поиска нефонового цвета.
    Ответ написан
  • Последовательная загрузка картинок с сервера?

    @ksnk
    Можно сначала пометить места для вставки, потом вставить вместо пометки.
    placeholder - помечает место. Нужно проверить, что пустой спан не виден в карусели, иначе его нужно будет заменить на что-то невидимое.
    После загрузки картинки - сконструированный див заменяет placeholder.
    Как нибудь так
    ...
    $each(msg, function(index,value){
        var placeholder=$('<span></span>').appendTo('.carousel-inner');
        $.ajax(
    ...
          if(i==0){
             placeholder.replaceWidth('<div class...
    Ответ написан
    Комментировать
  • Как сделать регистронезависимую замену?

    @ksnk
    В регулярках есть глобальные и локальные флаги.
    $text = 'JA Ja jA ja';
    $text = preg_replace('/J(?i:a)/', 'Я', $text);
    $text = preg_replace('/j(?i:a)/', 'я', $text);
    Ответ написан
    1 комментарий
  • Наиболее эффективный способ проверить принадлежность клетки диапазону (карта на 2-мерном массиве)?

    @ksnk
    Там количество подходящих координат ограничено, и сильно меньше количества всех координат карты ? Перечислить сначала все координаты, которые можно выбирать, потом из них выбрать случайную. Для оптимизации этого дела - сгенерировать один раз "маску смещений" - массив смещений от "базовой точки". Итого - случайно выбираем элемент маски, складываем координату с нужной точкой - профит...
    Ответ написан
    Комментировать
  • Как правильнее назначить обработчики события в MVC?

    @ksnk
    Начнем с того, что серверное web приложение и клиентское - они работают в разных условиях и решают разные задачи.
    Серверное - одна точка входа, как правило, текст запроса - текстовое значение, полное управление этой точкой находится у контроллера. Контроллер разруливает прилетевший запрос и либо вызывает дочерние контроллеры или сразу выковыривает данные с помощью моделей и отдает их во view.
    Клиентское приложение имеет КУЧУ точек входа - любой поставленный обработчик событий. Тоесть сначала , если вы настолько любите и уважаете MVC, придется собирать все обработчики в кучу и отдать какому-то контроллеру-роутеру. Тоесть, вместо того, чтобы по клику на элементе тупенько стартовать анимацию на jQuery, приходится кодировать клик в событие, отдавать его контроллеру и ожидать оттуда коллбяк тебе же самому, так как никто не сможет дернуть анимацию кроме тебя... Этот колбяк будет скромно называться рендерингом... :) Не, конечно, в этом подходе тоже есть достаточно очень вкусных фенек, но imho, MVC для клиентского приложения это дань моде и чисто распальцовка...
    Ответ написан