Горизонтальный слайдер для прокрутки с поддержкой jQuery и сенсорных устройств?

#javascript #jquery #jquery-plugins #css

#javascript #jquery #jquery-плагины #css

Вопрос:

Мне нужно создать слайдер продукта, подобный этому (см. красную область), с помощью слайдера momentum.

Он должен работать на настольном компьютере, iPad и мобильном браузере. Знаете ли вы какой-либо плагин jquery / jquery mobile для достижения этой цели.

введите описание изображения здесь

Эффект, который я хочу, почти похож на этотhttp://manos.malihu.gr/tuts/jquery_thumbnail_scroller.html (но он не совместим с сенсорным управлением)

и точно так же, как раздел «Top 25» в приложении Apple для iPad под названием «Трейлеры»

введите описание изображения здесь

Комментарии:

1. К вашему сведению: удален тег jquery-mobile, поскольку OP прокомментировал в ответе Филла Паффорда , что он не использует jquery-mobile в проекте.

Ответ №1:

На мой взгляд, iosSlider потрясающий. Это работает практически на любом устройстве и хорошо документировано. Это бесплатно для личного использования, но для коммерческих сайтов лицензия стоит 20 долларов.

Также отличным вариантом является touchCarousel или RoyalSlider того же автора. В этих двух есть все, что вам нужно, но они также не бесплатны и стоят 10-12 долларов

Ответ №2:

Я бы также рекомендовал http://cubiq.org/iscroll-4

НО если вы не вникаете в это, попробуйте этот плагин

http://www.zackgrossbart.com/hackito/touchslider/

он работает очень хорошо и по умолчанию использует горизонтальную полосу слайдов на рабочем столе — это не так элегантно на рабочем столе, как iscroll-4, но он очень хорошо работает на сенсорных устройствах

УДАЧИ!

Комментарии:

1. и мне также нужна совместимость с настольными компьютерами

2. У меня iScroll реализован на двух разных веб-сайтах, и ни один из них не требует просмотра сайта в полноэкранном режиме для работы прокрутки — и это отлично работает на настольных компьютерах и сенсорных устройствах, fwiw — и это также относится к методу touchslider

3. iScroll уже упоминался dSquared, и у него есть проблема с элементами формы, если они находятся на одной странице

Ответ №3:

На вашем месте я бы реализовал свое собственное решение на основе спецификаций события. По сути, что такое прокрутка — это обработка событий касания вниз, перемещения касания, касания вверх. вот выдержка из моей собственной библиотеки для обработки событий iPhone touch:

 touch_object.prototype.handle_touchstart = function(e){
    if (e.targetTouches.length != 1){
        return false;
    }
    this.obj.style.zIndex = 100;
    e.preventDefault();
    this.startX = e.targetTouches[0].pageX - this.geometry.x;
    this.startY = e.targetTouches[0].pageY - this.geometry.y;
    /* adjust for left /top */
    this.bind_handler('touchmove');
    this.bind_handler('touchend');
}
touch_object.prototype.handle_touchmove = function(e) {
    e.preventDefault();
    if (e.targetTouches.length != 1){
        return false;
    }
    var x=e.targetTouches[0].pageX - this.startX;
    var y=e.targetTouches[0].pageY - this.startY;
    this.move(x,y);

}
touch_object.prototype.handle_touchend = function(e){
    this.obj.style.zIndex = 10;
    this.unbind_handler('touchmove');
    this.unbind_handler('touchend');
}
  

Я использовал этот код, чтобы «перемещать объекты». Но вместо перемещения вы можете создать свой собственный алгоритм, например, для запуска перенаправления в какое-либо другое местоположение, или вы можете использовать это перемещение для «перемещения / пролистывания» элемента, по которому выполняется пролистывание, в другое местоположение.

итак, это действительно помогает понять основы того, как все работает, а затем создавать более сложные решения. это также может помочь.

Я использовал это для создания своего решения:

http://developer.apple.com/library/IOs/#documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html

Ответ №4:

Вы пробовали iosSlider? Он может делать именно то, что вам нужно.

http://iosscripts.com/iosslider-jquery-horizontal-slider-for-iphone-ipad-safari/

Комментарии:

1. Этот плагин бесплатный только для личного / некоммерческого использования, он стоит 20 долларов за один домен, имо, это слишком дорого. Я бы рекомендовал использовать iScroll или платную touchcarousel / royalslider от CodeCanyon.

2. @tMagwell Вы считаете, что 20 долларов — это слишком много? Держу пари, что только на кофе на этой неделе вы потратили больше, чем на это. Для чего-то, что избавит вас от необходимости писать это самостоятельно, я не понимаю, насколько это «слишком много». Извините за напыщенную речь, но я думаю, что нам, разработчикам, иногда нужно четко расставлять приоритеты. Давайте вознаградим за тяжелую работу некоторых людей — не все будет работать в идеале со свободным исходным кодом.

Ответ №5:

Взгляните на iScroll v4 здесь:http://cubiq.org/iscroll-4

Возможно, это не jQuery, но он работает на настольных компьютерах, мобильных устройствах и iPad довольно хорошо; Я использовал его во многих проектах и объединил с jQuery.

Удачи!

Ответ №6:

Этот может соответствовать вашим потребностям:
http://caroufredsel.frebsite.nl/

Добавьте jquery Touchwipe для сенсорной поддержки

Затем в конфигурации добавьте

 scroll : {
wipe: true
}
  

Комментарии:

1.Для тех, кто просматривает эту тему, перейдите по следующим ссылкам, чтобы найти библиотеку: https://github.com/Codeinwp/carouFredSel-jQuery http://coolcarousels.frebsite.nl/c/48/ http://docs.themeisle.com/article/499-getting-started-with-the-caroufredsel-jquery-plugin

Ответ №7:

Вы видели FlexSlider от WooThemes? Я использовал его в нескольких недавних проектах с большим успехом. Он также поддерживает сенсорное управление, поэтому он будет работать как в браузерах на основе мыши, так и в браузерах на основе сенсорного управления в iOS и Android.

Ответ №8:

Я нашел это, надеюсь, это поможет http://www.zackgrossbart.com/hackito/touchslider

Комментарии:

1. Извините, я ответил со своего телефона и не понял, что это уже упоминалось

Ответ №9:

Я нашел другой:http://swipejs.com

кажется, работает хорошо, однако я сталкиваюсь с проблемой при сопряжении с bootstrap в версии Chrome для OS X. Если полная кроссбраузерная совместимость не является проблемой, то вы молодец.

Комментарии:

1. Я бы сказал, что это действительно лучшее решение.

Ответ №10:

Я придумал нечто подобное для одного из своих веб-сайтов, находящихся в стадии разработки.

Я использовал пошаговую карусель для карусели, потому что это единственная, которую я нашел, которая может принимать разные размеры изображений в одной и той же карусели.

В дополнение к этому, чтобы добавить эффект сенсорного свайпа, я использовал плагин jquery.touchswipe;

И пошаговая карусель перемещают панель вправо или влево с помощью шрифта, чтобы я мог сделать :

 $("#slider-actu").touchwipe({
    wipeLeft: function() {stepcarousel.stepBy('slider-actu', 3);},
    wipeRight: function() {stepcarousel.stepBy('slider-actu', -3);},
    min_move_x: 20
});
  

Вы можете просмотреть фактический рендеринг на этой странице

Надеюсь, это поможет вам.

Ответ №11:

Это выглядит аналогично и использует jQuery mobile http://www.irinavelychko.com/tutorials/jquery-mobile-gallery

И демонстрация этого http://demo.irinavelychko.com/tuts/jqm-dialog-gallery.html

Комментарии:

1. Обе ссылки не работают

Ответ №12:

Взгляните на jQuery scroll view (демонстрация здесь). Вот репозиторий git hub для этого экспериментального проекта. Посмотрите на их html, чтобы увидеть, какие файлы необходимо включить и какие атрибуты добавить к элементам, которые вы хотите прокручивать.

Я использовал это, чтобы иметь возможность прокручивать элементы div по горизонтали на сенсорных устройствах.

Комментарии:

1. но он основан на jquery mobile. и я не использую его для проекта

Ответ №13:

Вас может заинтересовать следующее:

Я понимаю, что это не решение jQuery, но Sencha Touch framework довольно хорош для создания вашего целевого пользовательского интерфейса. Пример (нажмите на ссылку в карусели на боковой панели): http://dev.sencha.com/deploy/touch/examples/kitchensink

Комментарии:

1. Я надеюсь, вы бы добавили некоторые визуальные подсказки, чтобы эта конкретная область могла скользить при касании; может быть, добавив стрелки влево / вправо? Это может показаться немного скучным, но это создало бы предположительно лучшую визуальную доступность .

Ответ №14:

Оформить заказ плагина Portfoliojs для jQuery:http://portfoliojs.com

Этот плагин поддерживает сенсорные устройства, настольные компьютеры и мобильные браузеры. Кроме того, у него есть функция предварительной загрузки.

Ответ №15:

По моему опыту, лучшим вариантом с открытым исходным кодом будет UIKIT с его компонентом uikit slider. и это очень легко реализовать, например, в вашем случае вы могли бы сделать что-то вроде этого.

 <div data-uk-slider>
<div class="uk-slider-container">
    <ul class="uk-slider uk-grid-width-medium-1-4"> // width of the elements
        <li>...</li> //slide elements
        ...
    </ul>
</div>