Jitendra Vyas
Jitendra Vyas

Reputation: 152657

Horizontal swipe slider with jQuery and touch devices support?

I need to make a product slider like this ( see red area ) swipe slider with momentum.

It should work on Desktop, iPad and Mobile browser. Do you know any jquery/jquery mobile plugin to achieve this.

enter image description here

The effect I want is almost similar to this http://manos.malihu.gr/tuts/jquery_thumbnail_scroller.html (but it's not touch compatible)

and exactly like "Top 25" section in Apple's iPad app named "Trailers"

enter image description here

Upvotes: 46

Views: 108709

Answers (15)

David Addoteye
David Addoteye

Reputation: 1641

With my experiance the best open source option will be UIKIT with its uikit slider component. and it is very easy to implement for example in your case you could do something like this.

<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>

Upvotes: 0

Yoann
Yoann

Reputation: 5077

I have made somthink like this for one of my website accualy in developpement.

I have used StepCarousel for the caroussel because it's the only one I found that can accept different image size in the same carrousel.

In addition to this to add the touch swipe effect, I have used jquery.touchswipe plugin;

And stepcarousel move panel rigth or left with a fonction so I can make :

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

You can view the actual render at this page

Hope that help you.

Upvotes: 1

MrShmee
MrShmee

Reputation: 175

Ive found another: http://swipejs.com/

seems to work nicely however I encounter an issue with it when paired with bootstrap on the OS X version of Chrome. If total cross-browser compatibility isn't an issue, then you're golden.

Upvotes: 1

Jaime Fernandez
Jaime Fernandez

Reputation: 920

In my opinion iosSlider is amazing. It works in almost any device and it is well documented. It's free for personal usage, but for commercial sites license costs $20.

Also a great option is touchCarousel or RoyalSlider from same author. These two have everything you'll need, but also not free and have a price of $10-12

Upvotes: 18

abhiomkar
abhiomkar

Reputation: 5038

Checkout Portfoliojs jQuery plugin: http://portfoliojs.com

This plugin supports Touch Devices, Desktops and Mobile Browsers. Also, It has pre-loading feature.

Upvotes: 0

DesignerBrent
DesignerBrent

Reputation: 21

Have you seen FlexSlider from WooThemes? I've used it on several recent projects with great success. It's touch enabled too so it will work on both mouse-based browsers as well as touch-based browsers in iOS and Android.

Upvotes: 2

Marcus
Marcus

Reputation: 230

Have you tried iosSlider? It can do exactly what you need.

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

Upvotes: 10

J&#246;rg Butzer
J&#246;rg Butzer

Reputation: 71

This one could fit your need:
http://caroufredsel.frebsite.nl/

Add jquery Touchwipe for touch support

Then in the configuration add

scroll : {
wipe: true
}

Upvotes: 2

moey
moey

Reputation: 10887

You might be interested in the following:

I realize this is not a jQuery solution, but Sencha Touch framework is pretty good for building your target UI. Example (click the Carousel sidebar link): http://dev.sencha.com/deploy/touch/examples/kitchensink/

Upvotes: 0

jancha
jancha

Reputation: 4967

If I was you, I would implement my own solution based on the event specs. Basically, what swipe is - it's handling of touch down, touch move, touch up events. here is excerpt of my own lib for handling iPhone touch events:

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');
}

I used that code to "move things around". But, instead of moving, you can create your own algorithm for e.g. triggering redirect to some other location, or you can use that move to "move/swipe" the element, on which the swipe is on to other location.

so, it really helps to understand basics of how things work and then create more complicated solutions. this might help as well.

I used this, to create my solution:

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

Upvotes: 15

Sergio Majluf
Sergio Majluf

Reputation: 1355

I found this, hope it helps http://www.zackgrossbart.com/hackito/touchslider/

Upvotes: 1

Challe
Challe

Reputation: 896

Have a look at jQuery scroll view (demo here). Here is the git hub repository for that experimental project. Look at their html to see what files need to be included and what attributes to add to the elements you want to be scrollable.

I have used this to be able to scroll div elements horizontally on touch devices.

Upvotes: 0

DBUK
DBUK

Reputation: 1373

This looks similar and uses jQuery mobile http://www.irinavelychko.com/tutorials/jquery-mobile-gallery

And, the demo of it http://demo.irinavelychko.com/tuts/jqm-dialog-gallery.html

Upvotes: 0

Thomas
Thomas

Reputation: 1079

I would also recommend http://cubiq.org/iscroll-4

BUT if you're not digging on that try this plugin

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

it works very well and defaults to a horizontal slide bar on desktop -- it's not as elegant on desktop as iscroll-4 is, but it works very well on touch devices

GOOD LUCK!

Upvotes: 16

dSquared
dSquared

Reputation: 9825

Take a look at iScroll v4 here: http://cubiq.org/iscroll-4

It may not be jQuery, but it works on Desktop Mobile, and iPad quite well; I've used it on many projects and combined it with jQuery.

Good Luck!

Upvotes: 4

Related Questions