Задать вопрос
  • Как сделать независимые друг от друга блоки?

    @ksnk
    Ankhena, Почему же.
    .content-comments .comments-list {
      columns: 2;
      padding: 0;
      list-style: none;
      margin: 2rem 0;
    }

    Вроде почти что надо. Вот только второй столбик тоже перестраивается и, вероятно, будут забавно смотреться раскрытые-закрытые комменты в нижних ответах...
    P.S. Впрочем это лечится вот таким правилом
    .content-comments .comment-replies {
        ...
        break-inside: avoid;
    }
    Написано
  • Почему при получении gmt возвращается неправильное значение?

    @ksnk
    Более правильно, при работе с разными временными зонами, при передаче на сервер передавать время в gmt-строке. И с сервера передавать время в том же формате. Обычно, помогает решить проблему со смещением.
    С другой стороны - установка временной зоны - это произвол пользователя, как настроит так и будет. Имеет право настроить неправильно, ну а вам решать - клиент важный или можно его послать перенастраивать время...
    Для проверки можно всегда передавать метку текущего времени в форме с клиента (в gmt), в устанавливаемым при передаче JS скрытом поле. Если разница текущего времени с сервером не более 5 минут - можно верить времени, если больше - пытаться что-то делать, например вычислять смещение времени как разницу между "текущими" и откорректировать время.
    Написано
  • (Решён) Как делать get запрос при включении фильтров + отображение без кодирования в строке поиска?

    @ksnk
    Там все просто должно быть. Когда форма с фильтрами заполняется - заполняется внутренний объект. Вот это объект и `JSON.serialize`'ом вставляется в параметр `filters`. А вот как конкретно сделать, либо по сабмиту формы опрашивать текущее состояние контролов, либо динамически заполнять внтренний объект, викидывая из него ключи с дефолтным значением
    Написано
  • Есть ли адекватный способ расположить текст по фигуре?

    @ksnk

    Что-то такое. Правда приходится явно указывать размеры контейнера, иначе размеры в процентах схлопываются в 0
    Написано
  • Есть ли адекватный способ расположить текст по фигуре?

    @ksnk
    https://webformyself.com/ispolzovanie-css-dlya-raz...
    допилить по месту
    по сути - добавить ::before вместе со свойством shape-outside
    Написано
  • Как реализовать перетаскивание элемента с учетом угла поворота?

    @ksnk
    Слишком сложно. Нужно проще.
    function startDrag(e, el) {
            if (this.isResizing || this.isRotating) return;
    
            e.preventDefault();
            this.isDragging = true;
    
            let rect = el.getBoundingClientRect();
    
            // Смещение курсора относительно центра элемента
            let mouseOffsetX = e.clientX-parseFloat(el.style.left);
            let mouseOffsetY = e.clientY-parseFloat(el.style.top);
           let onMouseMove = (e) => {
                if (!this.isDragging) return;
    
                // Устанавливаем новые координаты
                el.style.left = (e.clientX-mouseOffsetX) + 'px';
                el.style.top = (e.clientY - mouseOffsetY ) + 'px';
            };
    
            let onMouseUp = () => {
                this.isDragging = false;
                document.removeEventListener('mousemove', onMouseMove);
                document.removeEventListener('mouseup', onMouseUp);
            };
    
            document.addEventListener('mousemove', onMouseMove);
            document.addEventListener('mouseup', onMouseUp);
        }
    Написано
  • Как реализовать перетаскивание элемента с учетом угла поворота?

    @ksnk
    А нужна ли тут вообще тригонометрия ? Считай, что всегда угол будет 0 градусов и двигай как обычно.
    Ну и, чтобы легче было понять в чем проблема и что ты делаешь - сделай минимальный пример того, что не получается на codepen.io, так хотя бы видно будет не только лишь тебе...
    Написано
  • Как сделать что-бы действие применялось только в том блоке, где находятся кнопки и изменялось js в зависимости от размера экрана?

    @ksnk
    Во первых, ставить обработчик события, в вызове функции resize не снимая его - это даже не ошибка, а преступление )
    Насколько я понял - нужно чтобы
    - при клике на заголовке (при любом разрешении экрана) переключался нужный контент и отмечался заголовок
    - при клике на переключатель (при любом разрешении экрана) переключался нужный контент и переключались нужные заголовки

    Так что особо следить за разрешением не нужно, нужно один раз поставить обработчики событий. Если по каким-то религиозным соображениям не нужно реагировать на клик по заголовку на "широком экране" - можно в обработчике игнорировать.
    Скрываться-показываться переключатель будет сам, посредством css.
    Никакого обработчика ресайза не нужно.

    Чтобы найти в обработчике клика нужный блок - нужно помнить, что e.target указывает на элемент, который непосредственно кликнули, и двигаясь вверх по родительским элементам его можно обнаружить. Что-то вроде
    function nearest(el, sel) {
        while (el && !(el.matches(el,sel))) {el = el.parentElement};
        return el;
    }
    
    ... .addEventListener("click", function (e) {
     let block=nearest(e.target,'.toggle'),
         content_1=block.querySelector('.toggle-content[data-id="1"]'),
    
    ...
    })
    Написано
  • Как проверить класс у массива элементов?

    @ksnk
    let li = document.querySelectorAll("li");
    let li_filled = document.querySelectorAll("li.filled");
    
    if (li.length==li_filled.length) {
        button.classList.add("active")
    }
    Написано
  • Как сверстать такой блок на css или canvas?

    @ksnk
    barraqud, Там не канвас, а несколько прорисованных для разных разрешений SVG, в которых динамически меняют процент прорисовки. Это если сильно упростить, конечно... Да, идея интересная и довольно эффективная.
    Канвас неплохо работает, когда нужно динамически вычислять где какие фигуры прорисовывать, а SVG, когда уже примерно понятно в каких местах что рисовать. Тогда можно доверить художнику основную работу :)
    Написано
  • Можно ли сделать свою форму оплаты онлайн заказа?

    @ksnk
    alekssamos, Нет, это я про вообще возможность получить оплату физику от другого физика. Без посредника приходится переводить по телефону, как это практикуется на рынках. Через посредника, с минимальным оформлением можно вот так, например. Ну или QR коды с переводом на свой счет раздавать, через банковское приложение. Не в курсе - можно ли автоматически обрабатывать оповещения от банка, но если вручную мониторить, то для пары покупок в день вполне возможно и так...
    Написано
  • Можно ли сделать свою форму оплаты онлайн заказа?

    @ksnk
    Погугли "оставить чаевые". Там специально обученная контора через себя за не особо большой процент может качать на твою карту денег от всех желающих. Осталось только желающих изловить и в конце года декларацию о доходах правильно заполнить...
    Написано
  • Как правильно обработать параллельные запросы в Telegram Bot?

    @ksnk
    Телега принципиально не посылает следующий запрос, пока не прилетел ответ. Никакая хитрая настройка сервера не поможет. Так что единственный разумный способ - складывать сообщение, которое выполняется долго в очередь и сразу отдавать ответ телеге.
    Написано
  • Почему при нажатии на таймер он не останавливается?

    @ksnk
    this.interval, который присваивается для любого таймера он где сохраняется ?
    Его бы надо сохранять в структуре тудушки.
    Написано
  • Что это за запросы?

    @ksnk
    Если почитать комменты под текстом

    Twost
    1 дек 2015 в 13:53
    Простите, а в чём смысловая нагрузка данного поста? Дважды перечитал, так и не понял

    MasMaX
    1 дек 2015 в 14:05
    Реклама же, типа купите нашу услугу.
    Написано
  • Как конвертировать массив полей FORM/формы в массив полей объекта JS?

    @ksnk
    С радио и чекбоксами тоже справляется ?
    Написано
  • Что это за запросы?

    @ksnk
    Боты долбятся на сайт. Ищут стандартные ошибки, дыры или возможность заспамить почтой окружающую действительность. Это реальность.
    Если внезапно рывком одна из форм станет получать паразитную нагрузку - значит нашли ;)
    Написано
  • Почему сброс значений фильтрации и сортировки ломает всю логику у плагина DataTable?

    @ksnk
    Вот если сделать так, то код работает лучше 678898b665ffa330280173.png
    В смысле - закомментировать. Первая строка - чистое вредительство - вторая не нужна
    Написано
  • Как перетаскивать элемент мышкой, но чтобы следовал за мышкой именно той областью на которой был клик?

    @ksnk
    Роман, У элемента есть крайне удобный метод getBoundingClientRect, который почти все проблемы позиционирования решает в меру элегантно.
    var disp=[0,0]; // смещение
            var listener = function (e) {
    
                full_info_div.style.left = (disp[0]+e.clientX) + "px";
                full_info_div.style.top = (disp[1]+e.clientY) + "px";
            };
    
            full_info_div.addEventListener('mousedown', e => {
              let b = full_info_div.getBoundingClientRect();
              disp= [b.left-e.clientX,b.top-e.clientY];
              document.addEventListener('mousemove', listener);
               document.querySelector("html").setAttribute("style", "user-select: none");
    
            });
    ...
    Написано
  • Как заменить текст в файле .csv с помощью PHP?

    @ksnk
    str_replace($file['result'], $file['change-to'], $st)

    Что-что ты там меняешь ? Может нужно change-from ?
    Написано