sergeymaccar Опубліковано: 15 серпня 2019 Share Опубліковано: 15 серпня 2019 Кто нибудь подключал slick slider к opencart 2.3.0.2 ? Если у кого то успешно получилось подскажите пожалуйста Надіслати Поділитися на інших сайтах More sharing options...
GreenDragon Опубліковано: 15 серпня 2019 Share Опубліковано: 15 серпня 2019 А в чем сложность попробовать? Не знаю какая там сейчас версия слайдера и требование к версии библиотеки jquery. Но думаю работать будет, когда то сам при верстке использовал его, но это было очень давно.. Надіслати Поділитися на інших сайтах More sharing options... Einshtein Опубліковано: 15 серпня 2019 Share Опубліковано: 15 серпня 2019 Регулярно использую этот слайдер, так как имхо - это самый беспроблемный плагин для слайдера из всех с которыми приходилось работать, Подключается элементарно, работает на последней версии jquery в том числе, имеет настройки для вертикальных слайдов и кучу гибких настроек, в том числе для адаптива Инструкций в сети полно, если кратко, то : 1) подключаете библиотеку слайдера 2) подключаете файл стилей 3) подключаете файл с темой (slick-theme.css) 4) инициализируете блок слайдов $(document).ready(function(){ $('.блок_со_слайдами).slick({ setting-name: setting-value //название настройки: значение настройки, через запятую }); }); Надіслати Поділитися на інших сайтах More sharing options... GetWeb Опубліковано: 15 серпня 2019 Share Опубліковано: 15 серпня 2019 Всегда его подключаю, если по требованиям подходит. Версия opencart не имеет значения, если конечно не ищешь готовый модуль. Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 @Einshtein попробуй свайпер https://idangero.us/swiper/ в 3,1х встроен Надіслати Поділитися на інших сайтах More sharing options... SooR Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 3 часа назад, AWARO сказал: @Einshtein попробуй свайпер https://idangero.us/swiper/ в 3,1х встроен 125kb в min для простого слайдера - да вы чо. Он больше для лендингов подходит, где один плагин можно повесить на пол страницы. slick тоже не совсем легкий, 50kb. Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 1 час назад, SooR сказал: 125kb в min для простого слайдера - да вы чо. Он больше для лендингов подходит, где один плагин можно повесить на пол страницы. slick тоже не совсем легкий, 50kb. ну так для слайдеров самое то. и функционален нормально. есть альтернатива полегче чем теже 50kb ? да и что мешает позже подгрузить его.. https://www.cat-in-web.ru/samyj-prostoj-slajder-na-jquery/ Надіслати Поділитися на інших сайтах More sharing options... sergeymaccar Опубліковано: 16 серпня 2019 Автор Share Опубліковано: 16 серпня 2019 (змінено) Подключаю в header.tpl стили и скрипты потом инициализирую слайдер на странице information в конце пишу $(document).ready(function(){ $('.блок_со_слайдами).slick({ setting-name: setting-value //название настройки: значение настройки, через запятую }); }); но ничего не происходит На обычной подключал этот слайдер неоднократно, все работало, а на opencart незнаю как правильно подключить Змінено 16 серпня 2019 користувачем sergeymaccar Надіслати Поділитися на інших сайтах More sharing options... Einshtein Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 6 часов назад, AWARO сказал: @Einshtein попробуй свайпер https://idangero.us/swiper/ в 3,1х встроен Пробовал когда-то, чет мне в нем не понравилось, не помню уже. Тоже для вертикального использовал Надіслати Поділитися на інших сайтах More sharing options... Einshtein Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 38 минут назад, sergeymaccar сказал: Подключаю в header.tpl стили и скрипты потом инициализирую слайдер на странице information в конце пишу $(document).ready(function(){ $('.блок_со_слайдами).slick({ setting-name: setting-value //название настройки: значение настройки, через запятую }); }); но ничего не происходит На обычной подключал этот слайдер неоднократно, все работало, а на opencart незнаю как правильно подключить Ну так вы ж думайте что пишите, я пример кода привел, а не готовый копипаст. Вместо ".блок_со_слайдами" - должен быть указан класс или id для инициализации слайдов. Вместо setting-name и setting-value указаны название настройки и сами настройки слайдера. Почитайте документацию по подключению, в сети этих инструкций полно, там все примитивно просто если есть хоть малейшее понимание как подключаются плагины. Если нет - не мучайте мертвую корову и обращайтесь в раздел услуг за помощью. Надіслати Поділитися на інших сайтах More sharing options... Einshtein Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 2 часа назад, SooR сказал: 125kb в min для простого слайдера - да вы чо. Он больше для лендингов подходит, где один плагин можно повесить на пол страницы. slick тоже не совсем легкий, 50kb. Я бы начал с того, что тогда сам jquery нужно выпиливать из двигла и делать все на чистом js. Плюс ко всему сейчас модно пихать кучу фреймворков, аля тот же bootstrap. Да и в век высокоскоростного интернета 50кб это пшик, когда один только баннер может весить от 100кб. На той же Розетке средний вес страницы 10мб, не лучший пример для подражания в плане оптимизации, но все же это никому не мешает. Надіслати Поділитися на інших сайтах More sharing options... sergeymaccar Опубліковано: 16 серпня 2019 Автор Share Опубліковано: 16 серпня 2019 (змінено) 15 хвилин назад, Einshtein сказав: Ну так вы ж думайте что пишите, я пример кода привел, а не готовый копипаст. Вместо ".блок_со_слайдами" - должен быть указан класс или id для инициализации слайдов. Вместо setting-name и setting-value указаны название настройки и сами настройки слайдера. Почитайте документацию по подключению, в сети этих инструкций полно, там все примитивно просто если есть хоть малейшее понимание как подключаются плагины. Если нет - не мучайте мертвую корову и обращайтесь в раздел услуг за помощью. причем тут, я тот же пример привел, естественно что я подставляю свои классы, я подлючал неоднократно этот слайдер на других сайтах, не на cms, а на opencart не получается, подключал скрипты и стили в <head> header.tpl Змінено 16 серпня 2019 користувачем sergeymaccar Надіслати Поділитися на інших сайтах More sharing options... Einshtein Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 посмотрите есть ли скрипты в исходном коде страницы - если нет - обновите модификаторы в админке Надіслати Поділитися на інших сайтах More sharing options... SooR Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 3 часа назад, Einshtein сказал: Я бы начал с того, что тогда сам jquery нужно выпиливать из двигла и делать все на чистом js. Плюс ко всему сейчас модно пихать кучу фреймворков, аля тот же bootstrap. Да и в век высокоскоростного интернета 50кб это пшик, когда один только баннер может весить от 100кб. На той же Розетке средний вес страницы 10мб, не лучший пример для подражания в плане оптимизации, но все же это никому не мешает. jQuery слишком плотно въелся в широкие массы, для индивидуальной разработки без подключения сторонних модулей только ванильный. Bootstrap с 5-й версии перейдут на чистый. Про высокоскоростной интернет - это заблуждение. Не забывайте про рендер объема скрипта, отжирание ОЗУ вкладки, трафик, мобильный интернет, задержки, pagespeed. Где можно сэкономить - надо экономить. Розетку даже не приводите они чуть ли не в штабе Гугл поселились. Да и посмотрите как она грузится на слабых машинах 2010-2014 годов, что в этом хорошего? Надіслати Поділитися на інших сайтах More sharing options... SooR Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 5 часов назад, AWARO сказал: есть альтернатива полегче чем теже 50kb ? glide - 24 kb https://glidejs.com/docs/ tiny-slider 2.0 - 31 kb http://ganlanyuan.github.io/tiny-slider/demo/ 1 Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 5 часов назад, SooR сказал: glide - 24 kb https://glidejs.com/docs/ tiny-slider 2.0 - 31 kb http://ganlanyuan.github.io/tiny-slider/demo/ а вот тут по ссылке если сваять то ваше нифига не весит)) https://www.cat-in-web.ru/samyj-prostoj-slajder-na-jquery/ Надіслати Поділитися на інших сайтах More sharing options... SooR Опубліковано: 17 серпня 2019 Share Опубліковано: 17 серпня 2019 10 часов назад, AWARO сказал: а вот тут по ссылке если сваять то ваше нифига не весит)) Да, и я в свое время писал карусэл, 2012-й год, responsive еще не соблюдался Спойлер (function($){ var carousel = { init: function(options, element) { this.options = $.extend({ delay: 400, visibled: 5, scrolled: 5, effect: 'slide', onInit: function(){}, onStart: function(){}, onStop: function(){} }, options); this.checkOptions(); this.element = element; this.box = { prev: $('.carousel-prev', element), next: $('.carousel-next', element), container: $('.carousel-container', element), ul: $('ul', element), li: $('li', element) }; this.transitionCSS = { 'transition': 'all ' + this.options.delay + 'ms ease-in-out' }; if (this.options.effect == 'slide') { this.box.animated = this.box.ul.css(this.transitionCSS); } else { this.options.scrolled = this.options.visibled; this.box.animated = this.box.li.css(this.transitionCSS); } this.liCount = this.box.li.length; this.liLeft = 0; this.getWidth().setWidth().setControlsStatus().initEvents().options.onInit.apply(this); }, initEvents: function() { var $this = this; $(window).resize(function(e) { $this.getWidth().setWidth(); }); this.box.next.on('click', function(e) { $this.action('next'); return false; }); this.box.prev.on('click', function(e) { $this.action('prev'); return false; }); this.box.animated.on('transitionend', function(){ $this.options.onStop($this); }); return this; }, action: function(direction) { if (this.options.effect == 'slide') { this.calculateLeft(direction).effect.slide.call(this); } else if (this.options.effect == 'fade') { this.calculateLeft(direction).effect.fade.call(this); } }, calculateLeft: function(direction) { if (direction == 'prev') { if (this.liLeft < 0) { if (this.liLeft + this.options.scrolled <= 0) { this.liLeft += this.options.scrolled; } else { this.liLeft += Math.abs(this.liLeft); } this.options.onStart(this); } } else { if (Math.abs(this.liLeft) + this.options.visibled < this.liCount) { /* if not end of carousel */ if (Math.abs(this.liLeft) + this.options.visibled + this.options.scrolled < this.liCount) { this.liLeft -= this.options.scrolled; } else { this.liLeft -= this.liCount - (Math.abs(this.liLeft) + this.options.visibled); } this.options.onStart(this); } } this.setControlsStatus().left = this.liLeft * this.width.li; return this; }, setControlsStatus: function() { if (this.liLeft == 0) { this.box.prev.addClass('disabled'); } else { this.box.prev.removeClass('disabled'); } if ((Math.abs(this.liLeft) + this.options.visibled == this.liCount) || this.liCount <= this.options.visibled) { this.box.next.addClass('disabled'); } else { this.box.next.removeClass('disabled'); } return this; }, effect: { slide: function() { this.box.ul.css({'margin-left': this.left}); return this; }, fade: function() { var $this = this, visibled = this.box.li.slice(Math.abs(this.liLeft) - this.options.visibled, Math.abs(this.liLeft)), nexts = this.box.li.slice(Math.abs(this.liLeft), Math.abs(this.liLeft) + this.options.visibled).css({opacity: 0});; visibled.each(function(i, li) { setTimeout(function() { $(li).css({opacity: 0}); if ($this.options.visibled == i + 1) { setTimeout(function() { $this.box.ul.css({'margin-left': $this.left}); nexts.each(function(i, li) { setTimeout(function() { $(li).css({opacity: 1}); }, $this.options.delay * i); }); }, $this.options.delay); } }, $this.options.delay * i); }); } }, getWidth: function() { var hidden = false; if (this.element.is(':hidden')) { this.element.css('display', 'block'); hidden = true; } this.width = { carousel: this.element.width(), container: this.box.container.width() }; this.width.li = this.width.container / this.options.visibled; this.element.show(); if (hidden) { this.element.removeAttr('style'); } return this; }, setWidth: function() { this.box.li.css({width: this.width.li}); this.box.ul.css({'margin-left': this.liLeft * this.width.li}); return this; }, checkOptions: function() { if ('function' != typeof this.options.onInit) { this.options.onInit = function(){}; } if ('function' != typeof this.options.onStart) { this.options.onStart = function(){}; } if ('function' != typeof this.options.onStop) { this.options.onStop = function(){}; } return this; } }; /* IE6+ */ if (Object.create === undefined) { Object.create = function(object) { function f(){}; f.prototype = object; return new f(); }; } $.fn.carousel = function(options) { return this.each(function(){ var $this = $(this); if ($this.data('carousel')) { return $this.data('carousel'); } $this.data('carousel', Object.create(carousel).init(options, $this)); }); }; })(jQuery); Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] Smart slider - улучшенный слайдер для сайта Автор: Sunser, 6 жовтня 2020 slider sliders (і ще %d) Теги: slider sliders slick slider слайдер opencart ocstore multilang мультиязычный мультиязычность adaptive адаптивный адаптивность touch image video svg-image svg-format video background видео изо6ражения opencart2 opencart3 opencart2.1 opencart2.x opencart2.3 ocstore2.1 ocstore2.3 ocstore3 ocstore2x module images 5 відповідей 2 938 переглядів satt 10 грудня 2021 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Подключение slick slider Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Einshtein Опубліковано: 15 серпня 2019 Share Опубліковано: 15 серпня 2019 Регулярно использую этот слайдер, так как имхо - это самый беспроблемный плагин для слайдера из всех с которыми приходилось работать, Подключается элементарно, работает на последней версии jquery в том числе, имеет настройки для вертикальных слайдов и кучу гибких настроек, в том числе для адаптива Инструкций в сети полно, если кратко, то : 1) подключаете библиотеку слайдера 2) подключаете файл стилей 3) подключаете файл с темой (slick-theme.css) 4) инициализируете блок слайдов $(document).ready(function(){ $('.блок_со_слайдами).slick({ setting-name: setting-value //название настройки: значение настройки, через запятую }); }); Надіслати Поділитися на інших сайтах More sharing options...
GetWeb Опубліковано: 15 серпня 2019 Share Опубліковано: 15 серпня 2019 Всегда его подключаю, если по требованиям подходит. Версия opencart не имеет значения, если конечно не ищешь готовый модуль. Надіслати Поділитися на інших сайтах More sharing options...
HyperLabTeam Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 @Einshtein попробуй свайпер https://idangero.us/swiper/ в 3,1х встроен Надіслати Поділитися на інших сайтах More sharing options...
SooR Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 3 часа назад, AWARO сказал: @Einshtein попробуй свайпер https://idangero.us/swiper/ в 3,1х встроен 125kb в min для простого слайдера - да вы чо. Он больше для лендингов подходит, где один плагин можно повесить на пол страницы. slick тоже не совсем легкий, 50kb. Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 1 час назад, SooR сказал: 125kb в min для простого слайдера - да вы чо. Он больше для лендингов подходит, где один плагин можно повесить на пол страницы. slick тоже не совсем легкий, 50kb. ну так для слайдеров самое то. и функционален нормально. есть альтернатива полегче чем теже 50kb ? да и что мешает позже подгрузить его.. https://www.cat-in-web.ru/samyj-prostoj-slajder-na-jquery/ Надіслати Поділитися на інших сайтах More sharing options... sergeymaccar Опубліковано: 16 серпня 2019 Автор Share Опубліковано: 16 серпня 2019 (змінено) Подключаю в header.tpl стили и скрипты потом инициализирую слайдер на странице information в конце пишу $(document).ready(function(){ $('.блок_со_слайдами).slick({ setting-name: setting-value //название настройки: значение настройки, через запятую }); }); но ничего не происходит На обычной подключал этот слайдер неоднократно, все работало, а на opencart незнаю как правильно подключить Змінено 16 серпня 2019 користувачем sergeymaccar Надіслати Поділитися на інших сайтах More sharing options... Einshtein Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 6 часов назад, AWARO сказал: @Einshtein попробуй свайпер https://idangero.us/swiper/ в 3,1х встроен Пробовал когда-то, чет мне в нем не понравилось, не помню уже. Тоже для вертикального использовал Надіслати Поділитися на інших сайтах More sharing options... Einshtein Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 38 минут назад, sergeymaccar сказал: Подключаю в header.tpl стили и скрипты потом инициализирую слайдер на странице information в конце пишу $(document).ready(function(){ $('.блок_со_слайдами).slick({ setting-name: setting-value //название настройки: значение настройки, через запятую }); }); но ничего не происходит На обычной подключал этот слайдер неоднократно, все работало, а на opencart незнаю как правильно подключить Ну так вы ж думайте что пишите, я пример кода привел, а не готовый копипаст. Вместо ".блок_со_слайдами" - должен быть указан класс или id для инициализации слайдов. Вместо setting-name и setting-value указаны название настройки и сами настройки слайдера. Почитайте документацию по подключению, в сети этих инструкций полно, там все примитивно просто если есть хоть малейшее понимание как подключаются плагины. Если нет - не мучайте мертвую корову и обращайтесь в раздел услуг за помощью. Надіслати Поділитися на інших сайтах More sharing options... Einshtein Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 2 часа назад, SooR сказал: 125kb в min для простого слайдера - да вы чо. Он больше для лендингов подходит, где один плагин можно повесить на пол страницы. slick тоже не совсем легкий, 50kb. Я бы начал с того, что тогда сам jquery нужно выпиливать из двигла и делать все на чистом js. Плюс ко всему сейчас модно пихать кучу фреймворков, аля тот же bootstrap. Да и в век высокоскоростного интернета 50кб это пшик, когда один только баннер может весить от 100кб. На той же Розетке средний вес страницы 10мб, не лучший пример для подражания в плане оптимизации, но все же это никому не мешает. Надіслати Поділитися на інших сайтах More sharing options... sergeymaccar Опубліковано: 16 серпня 2019 Автор Share Опубліковано: 16 серпня 2019 (змінено) 15 хвилин назад, Einshtein сказав: Ну так вы ж думайте что пишите, я пример кода привел, а не готовый копипаст. Вместо ".блок_со_слайдами" - должен быть указан класс или id для инициализации слайдов. Вместо setting-name и setting-value указаны название настройки и сами настройки слайдера. Почитайте документацию по подключению, в сети этих инструкций полно, там все примитивно просто если есть хоть малейшее понимание как подключаются плагины. Если нет - не мучайте мертвую корову и обращайтесь в раздел услуг за помощью. причем тут, я тот же пример привел, естественно что я подставляю свои классы, я подлючал неоднократно этот слайдер на других сайтах, не на cms, а на opencart не получается, подключал скрипты и стили в <head> header.tpl Змінено 16 серпня 2019 користувачем sergeymaccar Надіслати Поділитися на інших сайтах More sharing options... Einshtein Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 посмотрите есть ли скрипты в исходном коде страницы - если нет - обновите модификаторы в админке Надіслати Поділитися на інших сайтах More sharing options... SooR Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 3 часа назад, Einshtein сказал: Я бы начал с того, что тогда сам jquery нужно выпиливать из двигла и делать все на чистом js. Плюс ко всему сейчас модно пихать кучу фреймворков, аля тот же bootstrap. Да и в век высокоскоростного интернета 50кб это пшик, когда один только баннер может весить от 100кб. На той же Розетке средний вес страницы 10мб, не лучший пример для подражания в плане оптимизации, но все же это никому не мешает. jQuery слишком плотно въелся в широкие массы, для индивидуальной разработки без подключения сторонних модулей только ванильный. Bootstrap с 5-й версии перейдут на чистый. Про высокоскоростной интернет - это заблуждение. Не забывайте про рендер объема скрипта, отжирание ОЗУ вкладки, трафик, мобильный интернет, задержки, pagespeed. Где можно сэкономить - надо экономить. Розетку даже не приводите они чуть ли не в штабе Гугл поселились. Да и посмотрите как она грузится на слабых машинах 2010-2014 годов, что в этом хорошего? Надіслати Поділитися на інших сайтах More sharing options... SooR Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 5 часов назад, AWARO сказал: есть альтернатива полегче чем теже 50kb ? glide - 24 kb https://glidejs.com/docs/ tiny-slider 2.0 - 31 kb http://ganlanyuan.github.io/tiny-slider/demo/ 1 Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 5 часов назад, SooR сказал: glide - 24 kb https://glidejs.com/docs/ tiny-slider 2.0 - 31 kb http://ganlanyuan.github.io/tiny-slider/demo/ а вот тут по ссылке если сваять то ваше нифига не весит)) https://www.cat-in-web.ru/samyj-prostoj-slajder-na-jquery/ Надіслати Поділитися на інших сайтах More sharing options... SooR Опубліковано: 17 серпня 2019 Share Опубліковано: 17 серпня 2019 10 часов назад, AWARO сказал: а вот тут по ссылке если сваять то ваше нифига не весит)) Да, и я в свое время писал карусэл, 2012-й год, responsive еще не соблюдался Спойлер (function($){ var carousel = { init: function(options, element) { this.options = $.extend({ delay: 400, visibled: 5, scrolled: 5, effect: 'slide', onInit: function(){}, onStart: function(){}, onStop: function(){} }, options); this.checkOptions(); this.element = element; this.box = { prev: $('.carousel-prev', element), next: $('.carousel-next', element), container: $('.carousel-container', element), ul: $('ul', element), li: $('li', element) }; this.transitionCSS = { 'transition': 'all ' + this.options.delay + 'ms ease-in-out' }; if (this.options.effect == 'slide') { this.box.animated = this.box.ul.css(this.transitionCSS); } else { this.options.scrolled = this.options.visibled; this.box.animated = this.box.li.css(this.transitionCSS); } this.liCount = this.box.li.length; this.liLeft = 0; this.getWidth().setWidth().setControlsStatus().initEvents().options.onInit.apply(this); }, initEvents: function() { var $this = this; $(window).resize(function(e) { $this.getWidth().setWidth(); }); this.box.next.on('click', function(e) { $this.action('next'); return false; }); this.box.prev.on('click', function(e) { $this.action('prev'); return false; }); this.box.animated.on('transitionend', function(){ $this.options.onStop($this); }); return this; }, action: function(direction) { if (this.options.effect == 'slide') { this.calculateLeft(direction).effect.slide.call(this); } else if (this.options.effect == 'fade') { this.calculateLeft(direction).effect.fade.call(this); } }, calculateLeft: function(direction) { if (direction == 'prev') { if (this.liLeft < 0) { if (this.liLeft + this.options.scrolled <= 0) { this.liLeft += this.options.scrolled; } else { this.liLeft += Math.abs(this.liLeft); } this.options.onStart(this); } } else { if (Math.abs(this.liLeft) + this.options.visibled < this.liCount) { /* if not end of carousel */ if (Math.abs(this.liLeft) + this.options.visibled + this.options.scrolled < this.liCount) { this.liLeft -= this.options.scrolled; } else { this.liLeft -= this.liCount - (Math.abs(this.liLeft) + this.options.visibled); } this.options.onStart(this); } } this.setControlsStatus().left = this.liLeft * this.width.li; return this; }, setControlsStatus: function() { if (this.liLeft == 0) { this.box.prev.addClass('disabled'); } else { this.box.prev.removeClass('disabled'); } if ((Math.abs(this.liLeft) + this.options.visibled == this.liCount) || this.liCount <= this.options.visibled) { this.box.next.addClass('disabled'); } else { this.box.next.removeClass('disabled'); } return this; }, effect: { slide: function() { this.box.ul.css({'margin-left': this.left}); return this; }, fade: function() { var $this = this, visibled = this.box.li.slice(Math.abs(this.liLeft) - this.options.visibled, Math.abs(this.liLeft)), nexts = this.box.li.slice(Math.abs(this.liLeft), Math.abs(this.liLeft) + this.options.visibled).css({opacity: 0});; visibled.each(function(i, li) { setTimeout(function() { $(li).css({opacity: 0}); if ($this.options.visibled == i + 1) { setTimeout(function() { $this.box.ul.css({'margin-left': $this.left}); nexts.each(function(i, li) { setTimeout(function() { $(li).css({opacity: 1}); }, $this.options.delay * i); }); }, $this.options.delay); } }, $this.options.delay * i); }); } }, getWidth: function() { var hidden = false; if (this.element.is(':hidden')) { this.element.css('display', 'block'); hidden = true; } this.width = { carousel: this.element.width(), container: this.box.container.width() }; this.width.li = this.width.container / this.options.visibled; this.element.show(); if (hidden) { this.element.removeAttr('style'); } return this; }, setWidth: function() { this.box.li.css({width: this.width.li}); this.box.ul.css({'margin-left': this.liLeft * this.width.li}); return this; }, checkOptions: function() { if ('function' != typeof this.options.onInit) { this.options.onInit = function(){}; } if ('function' != typeof this.options.onStart) { this.options.onStart = function(){}; } if ('function' != typeof this.options.onStop) { this.options.onStop = function(){}; } return this; } }; /* IE6+ */ if (Object.create === undefined) { Object.create = function(object) { function f(){}; f.prototype = object; return new f(); }; } $.fn.carousel = function(options) { return this.each(function(){ var $this = $(this); if ($this.data('carousel')) { return $this.data('carousel'); } $this.data('carousel', Object.create(carousel).init(options, $this)); }); }; })(jQuery); Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] Smart slider - улучшенный слайдер для сайта Автор: Sunser, 6 жовтня 2020 slider sliders (і ще %d) Теги: slider sliders slick slider слайдер opencart ocstore multilang мультиязычный мультиязычность adaptive адаптивный адаптивность touch image video svg-image svg-format video background видео изо6ражения opencart2 opencart3 opencart2.1 opencart2.x opencart2.3 ocstore2.1 ocstore2.3 ocstore3 ocstore2x module images 5 відповідей 2 938 переглядів satt 10 грудня 2021 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Подключение slick slider Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV
HyperLabTeam Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 1 час назад, SooR сказал: 125kb в min для простого слайдера - да вы чо. Он больше для лендингов подходит, где один плагин можно повесить на пол страницы. slick тоже не совсем легкий, 50kb. ну так для слайдеров самое то. и функционален нормально. есть альтернатива полегче чем теже 50kb ? да и что мешает позже подгрузить его.. https://www.cat-in-web.ru/samyj-prostoj-slajder-na-jquery/ Надіслати Поділитися на інших сайтах More sharing options...
sergeymaccar Опубліковано: 16 серпня 2019 Автор Share Опубліковано: 16 серпня 2019 (змінено) Подключаю в header.tpl стили и скрипты потом инициализирую слайдер на странице information в конце пишу $(document).ready(function(){ $('.блок_со_слайдами).slick({ setting-name: setting-value //название настройки: значение настройки, через запятую }); }); но ничего не происходит На обычной подключал этот слайдер неоднократно, все работало, а на opencart незнаю как правильно подключить Змінено 16 серпня 2019 користувачем sergeymaccar Надіслати Поділитися на інших сайтах More sharing options...
Einshtein Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 6 часов назад, AWARO сказал: @Einshtein попробуй свайпер https://idangero.us/swiper/ в 3,1х встроен Пробовал когда-то, чет мне в нем не понравилось, не помню уже. Тоже для вертикального использовал Надіслати Поділитися на інших сайтах More sharing options...
Einshtein Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 38 минут назад, sergeymaccar сказал: Подключаю в header.tpl стили и скрипты потом инициализирую слайдер на странице information в конце пишу $(document).ready(function(){ $('.блок_со_слайдами).slick({ setting-name: setting-value //название настройки: значение настройки, через запятую }); }); но ничего не происходит На обычной подключал этот слайдер неоднократно, все работало, а на opencart незнаю как правильно подключить Ну так вы ж думайте что пишите, я пример кода привел, а не готовый копипаст. Вместо ".блок_со_слайдами" - должен быть указан класс или id для инициализации слайдов. Вместо setting-name и setting-value указаны название настройки и сами настройки слайдера. Почитайте документацию по подключению, в сети этих инструкций полно, там все примитивно просто если есть хоть малейшее понимание как подключаются плагины. Если нет - не мучайте мертвую корову и обращайтесь в раздел услуг за помощью. Надіслати Поділитися на інших сайтах More sharing options...
Einshtein Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 2 часа назад, SooR сказал: 125kb в min для простого слайдера - да вы чо. Он больше для лендингов подходит, где один плагин можно повесить на пол страницы. slick тоже не совсем легкий, 50kb. Я бы начал с того, что тогда сам jquery нужно выпиливать из двигла и делать все на чистом js. Плюс ко всему сейчас модно пихать кучу фреймворков, аля тот же bootstrap. Да и в век высокоскоростного интернета 50кб это пшик, когда один только баннер может весить от 100кб. На той же Розетке средний вес страницы 10мб, не лучший пример для подражания в плане оптимизации, но все же это никому не мешает. Надіслати Поділитися на інших сайтах More sharing options...
sergeymaccar Опубліковано: 16 серпня 2019 Автор Share Опубліковано: 16 серпня 2019 (змінено) 15 хвилин назад, Einshtein сказав: Ну так вы ж думайте что пишите, я пример кода привел, а не готовый копипаст. Вместо ".блок_со_слайдами" - должен быть указан класс или id для инициализации слайдов. Вместо setting-name и setting-value указаны название настройки и сами настройки слайдера. Почитайте документацию по подключению, в сети этих инструкций полно, там все примитивно просто если есть хоть малейшее понимание как подключаются плагины. Если нет - не мучайте мертвую корову и обращайтесь в раздел услуг за помощью. причем тут, я тот же пример привел, естественно что я подставляю свои классы, я подлючал неоднократно этот слайдер на других сайтах, не на cms, а на opencart не получается, подключал скрипты и стили в <head> header.tpl Змінено 16 серпня 2019 користувачем sergeymaccar Надіслати Поділитися на інших сайтах More sharing options...
Einshtein Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 посмотрите есть ли скрипты в исходном коде страницы - если нет - обновите модификаторы в админке Надіслати Поділитися на інших сайтах More sharing options...
SooR Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 3 часа назад, Einshtein сказал: Я бы начал с того, что тогда сам jquery нужно выпиливать из двигла и делать все на чистом js. Плюс ко всему сейчас модно пихать кучу фреймворков, аля тот же bootstrap. Да и в век высокоскоростного интернета 50кб это пшик, когда один только баннер может весить от 100кб. На той же Розетке средний вес страницы 10мб, не лучший пример для подражания в плане оптимизации, но все же это никому не мешает. jQuery слишком плотно въелся в широкие массы, для индивидуальной разработки без подключения сторонних модулей только ванильный. Bootstrap с 5-й версии перейдут на чистый. Про высокоскоростной интернет - это заблуждение. Не забывайте про рендер объема скрипта, отжирание ОЗУ вкладки, трафик, мобильный интернет, задержки, pagespeed. Где можно сэкономить - надо экономить. Розетку даже не приводите они чуть ли не в штабе Гугл поселились. Да и посмотрите как она грузится на слабых машинах 2010-2014 годов, что в этом хорошего? Надіслати Поділитися на інших сайтах More sharing options... SooR Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 5 часов назад, AWARO сказал: есть альтернатива полегче чем теже 50kb ? glide - 24 kb https://glidejs.com/docs/ tiny-slider 2.0 - 31 kb http://ganlanyuan.github.io/tiny-slider/demo/ 1 Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 5 часов назад, SooR сказал: glide - 24 kb https://glidejs.com/docs/ tiny-slider 2.0 - 31 kb http://ganlanyuan.github.io/tiny-slider/demo/ а вот тут по ссылке если сваять то ваше нифига не весит)) https://www.cat-in-web.ru/samyj-prostoj-slajder-na-jquery/ Надіслати Поділитися на інших сайтах More sharing options... SooR Опубліковано: 17 серпня 2019 Share Опубліковано: 17 серпня 2019 10 часов назад, AWARO сказал: а вот тут по ссылке если сваять то ваше нифига не весит)) Да, и я в свое время писал карусэл, 2012-й год, responsive еще не соблюдался Спойлер (function($){ var carousel = { init: function(options, element) { this.options = $.extend({ delay: 400, visibled: 5, scrolled: 5, effect: 'slide', onInit: function(){}, onStart: function(){}, onStop: function(){} }, options); this.checkOptions(); this.element = element; this.box = { prev: $('.carousel-prev', element), next: $('.carousel-next', element), container: $('.carousel-container', element), ul: $('ul', element), li: $('li', element) }; this.transitionCSS = { 'transition': 'all ' + this.options.delay + 'ms ease-in-out' }; if (this.options.effect == 'slide') { this.box.animated = this.box.ul.css(this.transitionCSS); } else { this.options.scrolled = this.options.visibled; this.box.animated = this.box.li.css(this.transitionCSS); } this.liCount = this.box.li.length; this.liLeft = 0; this.getWidth().setWidth().setControlsStatus().initEvents().options.onInit.apply(this); }, initEvents: function() { var $this = this; $(window).resize(function(e) { $this.getWidth().setWidth(); }); this.box.next.on('click', function(e) { $this.action('next'); return false; }); this.box.prev.on('click', function(e) { $this.action('prev'); return false; }); this.box.animated.on('transitionend', function(){ $this.options.onStop($this); }); return this; }, action: function(direction) { if (this.options.effect == 'slide') { this.calculateLeft(direction).effect.slide.call(this); } else if (this.options.effect == 'fade') { this.calculateLeft(direction).effect.fade.call(this); } }, calculateLeft: function(direction) { if (direction == 'prev') { if (this.liLeft < 0) { if (this.liLeft + this.options.scrolled <= 0) { this.liLeft += this.options.scrolled; } else { this.liLeft += Math.abs(this.liLeft); } this.options.onStart(this); } } else { if (Math.abs(this.liLeft) + this.options.visibled < this.liCount) { /* if not end of carousel */ if (Math.abs(this.liLeft) + this.options.visibled + this.options.scrolled < this.liCount) { this.liLeft -= this.options.scrolled; } else { this.liLeft -= this.liCount - (Math.abs(this.liLeft) + this.options.visibled); } this.options.onStart(this); } } this.setControlsStatus().left = this.liLeft * this.width.li; return this; }, setControlsStatus: function() { if (this.liLeft == 0) { this.box.prev.addClass('disabled'); } else { this.box.prev.removeClass('disabled'); } if ((Math.abs(this.liLeft) + this.options.visibled == this.liCount) || this.liCount <= this.options.visibled) { this.box.next.addClass('disabled'); } else { this.box.next.removeClass('disabled'); } return this; }, effect: { slide: function() { this.box.ul.css({'margin-left': this.left}); return this; }, fade: function() { var $this = this, visibled = this.box.li.slice(Math.abs(this.liLeft) - this.options.visibled, Math.abs(this.liLeft)), nexts = this.box.li.slice(Math.abs(this.liLeft), Math.abs(this.liLeft) + this.options.visibled).css({opacity: 0});; visibled.each(function(i, li) { setTimeout(function() { $(li).css({opacity: 0}); if ($this.options.visibled == i + 1) { setTimeout(function() { $this.box.ul.css({'margin-left': $this.left}); nexts.each(function(i, li) { setTimeout(function() { $(li).css({opacity: 1}); }, $this.options.delay * i); }); }, $this.options.delay); } }, $this.options.delay * i); }); } }, getWidth: function() { var hidden = false; if (this.element.is(':hidden')) { this.element.css('display', 'block'); hidden = true; } this.width = { carousel: this.element.width(), container: this.box.container.width() }; this.width.li = this.width.container / this.options.visibled; this.element.show(); if (hidden) { this.element.removeAttr('style'); } return this; }, setWidth: function() { this.box.li.css({width: this.width.li}); this.box.ul.css({'margin-left': this.liLeft * this.width.li}); return this; }, checkOptions: function() { if ('function' != typeof this.options.onInit) { this.options.onInit = function(){}; } if ('function' != typeof this.options.onStart) { this.options.onStart = function(){}; } if ('function' != typeof this.options.onStop) { this.options.onStop = function(){}; } return this; } }; /* IE6+ */ if (Object.create === undefined) { Object.create = function(object) { function f(){}; f.prototype = object; return new f(); }; } $.fn.carousel = function(options) { return this.each(function(){ var $this = $(this); if ($this.data('carousel')) { return $this.data('carousel'); } $this.data('carousel', Object.create(carousel).init(options, $this)); }); }; })(jQuery); Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] Smart slider - улучшенный слайдер для сайта Автор: Sunser, 6 жовтня 2020 slider sliders (і ще %d) Теги: slider sliders slick slider слайдер opencart ocstore multilang мультиязычный мультиязычность adaptive адаптивный адаптивность touch image video svg-image svg-format video background видео изо6ражения opencart2 opencart3 opencart2.1 opencart2.x opencart2.3 ocstore2.1 ocstore2.3 ocstore3 ocstore2x module images 5 відповідей 2 938 переглядів satt 10 грудня 2021 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Подключение slick slider
SooR Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 5 часов назад, AWARO сказал: есть альтернатива полегче чем теже 50kb ? glide - 24 kb https://glidejs.com/docs/ tiny-slider 2.0 - 31 kb http://ganlanyuan.github.io/tiny-slider/demo/ 1 Надіслати Поділитися на інших сайтах More sharing options... HyperLabTeam Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 5 часов назад, SooR сказал: glide - 24 kb https://glidejs.com/docs/ tiny-slider 2.0 - 31 kb http://ganlanyuan.github.io/tiny-slider/demo/ а вот тут по ссылке если сваять то ваше нифига не весит)) https://www.cat-in-web.ru/samyj-prostoj-slajder-na-jquery/ Надіслати Поділитися на інших сайтах More sharing options... SooR Опубліковано: 17 серпня 2019 Share Опубліковано: 17 серпня 2019 10 часов назад, AWARO сказал: а вот тут по ссылке если сваять то ваше нифига не весит)) Да, и я в свое время писал карусэл, 2012-й год, responsive еще не соблюдался Спойлер (function($){ var carousel = { init: function(options, element) { this.options = $.extend({ delay: 400, visibled: 5, scrolled: 5, effect: 'slide', onInit: function(){}, onStart: function(){}, onStop: function(){} }, options); this.checkOptions(); this.element = element; this.box = { prev: $('.carousel-prev', element), next: $('.carousel-next', element), container: $('.carousel-container', element), ul: $('ul', element), li: $('li', element) }; this.transitionCSS = { 'transition': 'all ' + this.options.delay + 'ms ease-in-out' }; if (this.options.effect == 'slide') { this.box.animated = this.box.ul.css(this.transitionCSS); } else { this.options.scrolled = this.options.visibled; this.box.animated = this.box.li.css(this.transitionCSS); } this.liCount = this.box.li.length; this.liLeft = 0; this.getWidth().setWidth().setControlsStatus().initEvents().options.onInit.apply(this); }, initEvents: function() { var $this = this; $(window).resize(function(e) { $this.getWidth().setWidth(); }); this.box.next.on('click', function(e) { $this.action('next'); return false; }); this.box.prev.on('click', function(e) { $this.action('prev'); return false; }); this.box.animated.on('transitionend', function(){ $this.options.onStop($this); }); return this; }, action: function(direction) { if (this.options.effect == 'slide') { this.calculateLeft(direction).effect.slide.call(this); } else if (this.options.effect == 'fade') { this.calculateLeft(direction).effect.fade.call(this); } }, calculateLeft: function(direction) { if (direction == 'prev') { if (this.liLeft < 0) { if (this.liLeft + this.options.scrolled <= 0) { this.liLeft += this.options.scrolled; } else { this.liLeft += Math.abs(this.liLeft); } this.options.onStart(this); } } else { if (Math.abs(this.liLeft) + this.options.visibled < this.liCount) { /* if not end of carousel */ if (Math.abs(this.liLeft) + this.options.visibled + this.options.scrolled < this.liCount) { this.liLeft -= this.options.scrolled; } else { this.liLeft -= this.liCount - (Math.abs(this.liLeft) + this.options.visibled); } this.options.onStart(this); } } this.setControlsStatus().left = this.liLeft * this.width.li; return this; }, setControlsStatus: function() { if (this.liLeft == 0) { this.box.prev.addClass('disabled'); } else { this.box.prev.removeClass('disabled'); } if ((Math.abs(this.liLeft) + this.options.visibled == this.liCount) || this.liCount <= this.options.visibled) { this.box.next.addClass('disabled'); } else { this.box.next.removeClass('disabled'); } return this; }, effect: { slide: function() { this.box.ul.css({'margin-left': this.left}); return this; }, fade: function() { var $this = this, visibled = this.box.li.slice(Math.abs(this.liLeft) - this.options.visibled, Math.abs(this.liLeft)), nexts = this.box.li.slice(Math.abs(this.liLeft), Math.abs(this.liLeft) + this.options.visibled).css({opacity: 0});; visibled.each(function(i, li) { setTimeout(function() { $(li).css({opacity: 0}); if ($this.options.visibled == i + 1) { setTimeout(function() { $this.box.ul.css({'margin-left': $this.left}); nexts.each(function(i, li) { setTimeout(function() { $(li).css({opacity: 1}); }, $this.options.delay * i); }); }, $this.options.delay); } }, $this.options.delay * i); }); } }, getWidth: function() { var hidden = false; if (this.element.is(':hidden')) { this.element.css('display', 'block'); hidden = true; } this.width = { carousel: this.element.width(), container: this.box.container.width() }; this.width.li = this.width.container / this.options.visibled; this.element.show(); if (hidden) { this.element.removeAttr('style'); } return this; }, setWidth: function() { this.box.li.css({width: this.width.li}); this.box.ul.css({'margin-left': this.liLeft * this.width.li}); return this; }, checkOptions: function() { if ('function' != typeof this.options.onInit) { this.options.onInit = function(){}; } if ('function' != typeof this.options.onStart) { this.options.onStart = function(){}; } if ('function' != typeof this.options.onStop) { this.options.onStop = function(){}; } return this; } }; /* IE6+ */ if (Object.create === undefined) { Object.create = function(object) { function f(){}; f.prototype = object; return new f(); }; } $.fn.carousel = function(options) { return this.each(function(){ var $this = $(this); if ($this.data('carousel')) { return $this.data('carousel'); } $this.data('carousel', Object.create(carousel).init(options, $this)); }); }; })(jQuery); Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Схожі публікації [Поддержка] Smart slider - улучшенный слайдер для сайта Автор: Sunser, 6 жовтня 2020 slider sliders (і ще %d) Теги: slider sliders slick slider слайдер opencart ocstore multilang мультиязычный мультиязычность adaptive адаптивный адаптивность touch image video svg-image svg-format video background видео изо6ражения opencart2 opencart3 opencart2.1 opencart2.x opencart2.3 ocstore2.1 ocstore2.3 ocstore3 ocstore2x module images 5 відповідей 2 938 переглядів satt 10 грудня 2021 Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
HyperLabTeam Опубліковано: 16 серпня 2019 Share Опубліковано: 16 серпня 2019 5 часов назад, SooR сказал: glide - 24 kb https://glidejs.com/docs/ tiny-slider 2.0 - 31 kb http://ganlanyuan.github.io/tiny-slider/demo/ а вот тут по ссылке если сваять то ваше нифига не весит)) https://www.cat-in-web.ru/samyj-prostoj-slajder-na-jquery/ Надіслати Поділитися на інших сайтах More sharing options...
SooR Опубліковано: 17 серпня 2019 Share Опубліковано: 17 серпня 2019 10 часов назад, AWARO сказал: а вот тут по ссылке если сваять то ваше нифига не весит)) Да, и я в свое время писал карусэл, 2012-й год, responsive еще не соблюдался Спойлер (function($){ var carousel = { init: function(options, element) { this.options = $.extend({ delay: 400, visibled: 5, scrolled: 5, effect: 'slide', onInit: function(){}, onStart: function(){}, onStop: function(){} }, options); this.checkOptions(); this.element = element; this.box = { prev: $('.carousel-prev', element), next: $('.carousel-next', element), container: $('.carousel-container', element), ul: $('ul', element), li: $('li', element) }; this.transitionCSS = { 'transition': 'all ' + this.options.delay + 'ms ease-in-out' }; if (this.options.effect == 'slide') { this.box.animated = this.box.ul.css(this.transitionCSS); } else { this.options.scrolled = this.options.visibled; this.box.animated = this.box.li.css(this.transitionCSS); } this.liCount = this.box.li.length; this.liLeft = 0; this.getWidth().setWidth().setControlsStatus().initEvents().options.onInit.apply(this); }, initEvents: function() { var $this = this; $(window).resize(function(e) { $this.getWidth().setWidth(); }); this.box.next.on('click', function(e) { $this.action('next'); return false; }); this.box.prev.on('click', function(e) { $this.action('prev'); return false; }); this.box.animated.on('transitionend', function(){ $this.options.onStop($this); }); return this; }, action: function(direction) { if (this.options.effect == 'slide') { this.calculateLeft(direction).effect.slide.call(this); } else if (this.options.effect == 'fade') { this.calculateLeft(direction).effect.fade.call(this); } }, calculateLeft: function(direction) { if (direction == 'prev') { if (this.liLeft < 0) { if (this.liLeft + this.options.scrolled <= 0) { this.liLeft += this.options.scrolled; } else { this.liLeft += Math.abs(this.liLeft); } this.options.onStart(this); } } else { if (Math.abs(this.liLeft) + this.options.visibled < this.liCount) { /* if not end of carousel */ if (Math.abs(this.liLeft) + this.options.visibled + this.options.scrolled < this.liCount) { this.liLeft -= this.options.scrolled; } else { this.liLeft -= this.liCount - (Math.abs(this.liLeft) + this.options.visibled); } this.options.onStart(this); } } this.setControlsStatus().left = this.liLeft * this.width.li; return this; }, setControlsStatus: function() { if (this.liLeft == 0) { this.box.prev.addClass('disabled'); } else { this.box.prev.removeClass('disabled'); } if ((Math.abs(this.liLeft) + this.options.visibled == this.liCount) || this.liCount <= this.options.visibled) { this.box.next.addClass('disabled'); } else { this.box.next.removeClass('disabled'); } return this; }, effect: { slide: function() { this.box.ul.css({'margin-left': this.left}); return this; }, fade: function() { var $this = this, visibled = this.box.li.slice(Math.abs(this.liLeft) - this.options.visibled, Math.abs(this.liLeft)), nexts = this.box.li.slice(Math.abs(this.liLeft), Math.abs(this.liLeft) + this.options.visibled).css({opacity: 0});; visibled.each(function(i, li) { setTimeout(function() { $(li).css({opacity: 0}); if ($this.options.visibled == i + 1) { setTimeout(function() { $this.box.ul.css({'margin-left': $this.left}); nexts.each(function(i, li) { setTimeout(function() { $(li).css({opacity: 1}); }, $this.options.delay * i); }); }, $this.options.delay); } }, $this.options.delay * i); }); } }, getWidth: function() { var hidden = false; if (this.element.is(':hidden')) { this.element.css('display', 'block'); hidden = true; } this.width = { carousel: this.element.width(), container: this.box.container.width() }; this.width.li = this.width.container / this.options.visibled; this.element.show(); if (hidden) { this.element.removeAttr('style'); } return this; }, setWidth: function() { this.box.li.css({width: this.width.li}); this.box.ul.css({'margin-left': this.liLeft * this.width.li}); return this; }, checkOptions: function() { if ('function' != typeof this.options.onInit) { this.options.onInit = function(){}; } if ('function' != typeof this.options.onStart) { this.options.onStart = function(){}; } if ('function' != typeof this.options.onStop) { this.options.onStop = function(){}; } return this; } }; /* IE6+ */ if (Object.create === undefined) { Object.create = function(object) { function f(){}; f.prototype = object; return new f(); }; } $.fn.carousel = function(options) { return this.each(function(){ var $this = $(this); if ($this.data('carousel')) { return $this.data('carousel'); } $this.data('carousel', Object.create(carousel).init(options, $this)); }); }; })(jQuery); Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Recommended Posts