Jump to content

d0ublezer0

User
  • Posts

    784
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by d0ublezer0

  1. Оказалось всё воообще проще некуда
  2. Привет! Попалась мне в руки новая версия fontawesome и возник ступор Теперь всё делается через JS и SVG, что круто, конечно, но как этим управлять на лету? Раньше, в четвертой версии, можно было создавать псевдоэлементы к объектам на странице и было счастье. менял content: "\f07a"; /* cart icon */ на content: "\f00c"; /* check mark */ И всё, при нажатии на кнопку иконка корзины менялась на галочку. А в SVG как подмену делать? Создавать сразу два элемента и скрывать ненужный?
  3. Под картинки, да. Это будут блоки разделов на главной
  4. Это вообще возможно? Мои попытки родили такую конструкцию, но она не работает, как и ожидалось: <div class="row"> <div class="col-md-9"> <div class="row"> <div class="col-md-3"></div> <!--тут уже не выходит - размеры считаются по родителю--> <div class="col-md-9"></div> </div> <div class="row"> <div class="col-md-9"></div> <div class="col-md-3"></div> </div> </div> <div class="col-md-3"> <div class="row"></div> <!--Вот это должно быть половину высоты--> <div class="row"></div> </div> </div>
  5. Привет! Нужен совет знатоков Я полдня убил, но так и не нашел в чем проблема. На малых разрешениях карусель распирает страницу в ширину https://www.road.media/headunit $('#category-slider').owlCarousel({ nav: true, rewind: false, dots: false, items: 1, responsive: { 0: {items: 3}, 480: {items: 4}, 768: {items: 5}, 1024: {items: 8} }, responsiveBaseElement: "#category-slider-wrapper" }); Вот вроде ж все правильно сделал, но на малых экранах ширина родителя зашкаливает. Где я тупанул?
  6. Ну вот и нет. При открытии новой страницы (если это действительно переход был, а не подмена адреса) должна загрузиться заново и обвязка шаблона со скриптами. А это не происходит.
  7. Ох, блин. Только заметил. При изменении фильтра же меняется и адресная строка.
  8. Верно. Именно для этого в jQuery придуман .on но в моём случае почему-то не работает, хотя делегируется вроде верно: $j('body').on("click", ".ask-product", function (e) { /* .... */ });
  9. Ну всё правильно, из этого объекта я забираю код товара и на основании его строю дальнейшие обращения к элементам, содержащим это код. Что вас смутило?
  10. Итак, 1. вынес загрузку живосайта самым первым, вместе с jquery в самое начало страницы, всё равно они асинхронно грузятся же. 2. кнопки запроса скрыл до выполнения jivo_onLoadCallback, которая добавляет странице класс .jivo-ready, а дальше уже css раскрытие через стили 3. чтобы люди не терялись, после клика теперь скрываю кнопку запроса и показываю В общем, у живосайта есть проблема - конфликтуют настроенные в админке события с событиями API об этом многие пишут Но ни одно решение не подходит, т.к. базовые настройки не позволяют привязать действия к событиям страницы. Я тоже так считаю, но на стороне живосайта проверить эту гипотезу не могу С задержкой вроде разобрались костылём. А как быть с динамическими элементами? по идее, должно ж работать, а не хочет
  11. Привет, друзья! Возникла Есть у нас онлайн-консультант jivosite, у него есть API. Возникла задача через API запрашивать цену для товаров, которых нет в наличии. Но документации по "живосайту" мало, а техподдержка ничего вразумительного мне не ответила. Так вот, первая беда: динамические элементы На странице категории при выборе фильтра в левой части страницы, товары подгружаются AJAXом. И вот после этой подгрузки, обработчики из кода ниже перестают работать. Хотя я использую .on как написано в документации jquery собственно, вот универсальный код (я его сделал и для категории и для страницы товара), который всем заведует: var $j = jQuery.noConflict(); // создадим указатель для совместимости с другими скриптами function jivo_onLoadCallback() { // встроенная ункция jivosite, подтверждающаяя его готовность console.log("jivo ready"); $j(document).ready(function () { // ждем загрузки документа $j('body').on("click", ".ask-product", function (e) { // не работает после динамической подгрузки e.preventDefault(); $ask_product_id = $j(this).data("product-id"); // достаем идентификатор товара $ask_base = $j("#product_name_" + $ask_product_id); // находим базовый элемент с данными о товаре $product_name = $ask_base.text(); // забираем название товара $product_keycode = atob($ask_base.data("keycode")); // base64 кодированная строка с кодом товара для админа console.log("$product_url=" + $product_url); console.log("$product_name=" + $product_name); jivo_api.showProactiveInvitation("Здравствуйте! Минутку, уточняем для вас цену и наличие " + $product_name + "..."); jivo_api.sendMessage({name: 'Запрос цены'}, $product_name + " " + $product_keycode); jivo_api.open(); }); }); }; Вторая беда: пока не загрузился код живосайта, я не могу к нему обращаться, ок, будем ждать его используя встроенную функцию. попутно, нужно дождаться загрузки основного документа и уже потом навешивать обработчики событий. Это работает всё крайне медленно и посетитель видит активную кнопку запроса на странице товара раньше, чем код будет готов исполняться. Кликает раньше и ничего не получает естественно. А страница почему-то перезагружается. Как это исправить?
  12. Спасибо ребятки! Это не мой скрипт, для меня его поведение было не очевидно.
  13. https://www.zebra-tara.ru/catalogue/plastic-boxes На разрешениях меньше 480px в ширину я скрываю строку поиска и отображаю ее по клику на иконке лупы. Заботясь о пользователе, я сразу ставлю фокус в поле ввода. Но вот беда: при программной установке фокуса placeholder внезапно становится текстом. А если программно фокус в поле не ставить, а после появления поля ткнуть в него руками - то всё в порядке, placeholder на месте: Я не понимаю, почему так. Отследить в коде не смог, ничего явно не устанавливает значение. Посоветуйте?
  14. Блин. Спасибо! Как просто-то. А я хотел с его помощью добиться плавного появления из-за границы экрана.
  15. Использую http://leafo.net/sticky-kit/ К верхней границе прилипает блок с названием продукта https://www.road.media/headunit/volvo/993570 Но при дальнейшем скролле такое ощущение, что он пересоздаётся каждый раз. А когда докручиваю до конца страницы, то вообще большой кусок пустого места появляется. Что самое интересное, работало же.. Не пойму никак, где я намудрил? Вот мой код, который управляет "наклейкой" из файла mainscript.js var $j = jQuery.noConflict(); $jwindow = $j(window); $j(document).ready(function () { $sticker = $j("#product_sticker"); if ($sticker.length) { var stickDistance = $sticker.offset().top + $sticker.height() + 30; $jwindow.scroll(flyOut); function flyOut() { var currentScroll = $jwindow.scrollTop(); if (currentScroll > stickDistance && $jwindow.width() >= 768) { $sticker.stick_in_parent(); } else { $sticker.trigger("sticky_kit:detach"); } }; function checkStickWidth() { var windowsize = $jwindow.width(); if (windowsize < 768) $sticker.trigger("sticky_kit:detach"); } checkStickWidth(); // Bind event listener $jwindow.resize(checkStickWidth); } });
  16. Использовал скрипт меню https://tympanus.net/Development/MultiLevelPushMenu/ для своего сайта https://www.zebra-tara.ru/ Меню доступно только на разрешениях меньше 768 по ширине Получается, что тень от меню не перекрывает сдвигаемый слой, а точнее - абсолютно позиционированные элементы на нём. Посоветуйте, как исправить? Я пробовал давать больший индекс тени, но тогда она перекрывает последующие уровни меню
  17. да, действительно. но почему? ведь это свойство для табличных ячеек как правило используется и в блочной модели не работает
  18. не пойму никак, откуда берется отступ в шапке, где блок с телефоном? https://www.road.media/ Про верстку ничего не говорите, пока приходится работать с тем, что есть ?
  19. Привет! Хочу зафигачить ЧПУ для страниц, генерируемых фильтром. Ленивый разработчик (breakdesigns, привет!) ноет, что это мол ему лично это не нужно, писать роутер и вообще никому из его клиентов это не интересно. Хочу свой, с параметрами и разделами. Допустим, страница https://www.road.media/filter/avtomagnitoly/?custom_f_24[0]=424d57&custom_f_25[0]=5831 где custom_f_24[0]=424d57 это марка авто BMW а custom_f_25[0]=5831 это модель авто X1 custom_f_xxx - это фиксированные коды характеристик, участвующих в фильтрации 424d57, 5831 и другие - это сами значения. Характеристики я смогу достать в список для формирования htaccess Сами значения элементов фильтра тоже подчиняются алгоритму, я могу их обратно расшифровать и сформировать список. Т.е. матрицу сопоставления что чему равно - я смогу собрать. Вопрос - как это сделать в .htaccess, чтобы CMS продолжила работать штатно, а посетитель и поисковик видели нормальный ЧПУ? Указанную выше ссылку я представляю как: https://www.road.media/filter/avtomagnitoly/bmw/x1 Притом, могут быть более сложные варианты https://www.road.media/filter/avtomagnitoly/?custom_f_24[0]=424d57&custom_f_25[0]=5831&custom_f_25[1]=5835 тут отмечены BMW, X1 и X5 в таком случае думаю URL должен быть каким-то таким https://www.road.media/filter/avtomagnitoly/bmw/x1_x5 Марка тоже может быть не единичной. Вообще набор значений может быть разным: https://www.road.media/filter/avtomagnitoly/?custom_f_24[0]=4d657263656465732d42656e7a&custom_f_24[1]=4c616e6420526f766572 тут например 4d657263656465732d42656e7a = Mercedes-Benz 4c616e6420526f766572 = Land Rover Соответственно, ожидается ссылка вида https://www.road.media/filter/avtomagnitoly/land_rover_mercedes_benz Это возможно вообще?
  20. https://www.zebra-tara.ru при малом размере экрана съезжает вниз тестовое поле поиска, не смог найти, что на него влияет: http://prntscr.com/ix6bgw почему так?
  21. Аееее! Так работает $j('<textarea>').appendTo("#legal-copy").val(text).attr('readonly','readonly').select();
  22. Да, спасибо, так работает. Но на мобиле все равно успевает появиться небольшой паразитный скачок, и устройство пытается успеть показать виртуальную клавиатуру. Напрямую из слоя скопировать нельзя ведь? Только через промежуточное поле?
  23. Привет! https://www.zebra-tara.ru/about Внизу есть кнопка [Cкопировать], на неё навешен такой код: var $j = jQuery.noConflict(); $j("#legal-copy").on("click", function (e) { var text = $j("#legal-info").text().trim(); var $scroll = $j("window").scrollTop(); var temp_element = $j('<textarea>').appendTo("#legal-copy").val(text).select(); $j("window").scrollTop($scroll); document.execCommand('copy'); temp_element.remove(); $j(this).text("Скопировано").prepend("<i class='fa fa-check-circle'></i> ").addClass("green-btn"); }); Как ни бьюсь - не удается избавиться от прокручивания к создаваемому элементу textarea в мобильном браузере. Он получает :focus и мобильный браузер прокручивает страницу. Добавка ScrollTop мне не помогла Как выкрутиться?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy