jQuery UI slider Touch & Drag/Drop support on Mobile devices
Asked Answered
P

3

119

I have already styled and implemented jQuery UI slider into a project. Though it's responsive, the slider does not respond to being touched and dragged. Instead, you have to touch where you want the slider to go. I'd like to avoid swapping to jQuery mobile UI, which supports touching and dragging, since we already extensively use jQuery (non-mobile) UI.

The functionality we want: Here
What we are using: Here

On a desktop you can't tell the difference. On a mobile device it is apparent.

Anyone know how to add this support to jquery UI?

$("#videographers").slider({
  value: 2,
  min: 1,
  max: 3,
  step: 1,
  slide: function(event, ui) {
    return calcTotal(ui.value);
  }
});
Pantaloons answered 10/12, 2012 at 20:28 Comment(1)
possible duplicate of jQuery UI sliders on touch devicesLilalilac
B
308

jQuery ui doesn't have touch support. You should use it with jQuery-ui touch punch.

Just add the script after jQuery ui:

<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script src="http://code.jquery.com/ui/1.8.21/jquery-ui.min.js"></script>
<script src="jquery.ui.touch-punch.min.js"></script>

You can also use cdnjs:

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js"></script>

Note: Better give this repo a star on Github.

Butterfat answered 10/12, 2012 at 20:34 Comment(4)
Yes, it also fixed a bug with the slider not choosing the right values.Ferwerda
works like a charme with rails5 android and ios devicesMiniaturist
great.. it works smoothly.. :) One observation is that in iOS devices when we slide the slider it's not sliding when we touched it but when we release the touch from it then it slides at that point. any idea why this happens? do you have any solution for this?Vinificator
This package last update was in 2014, so far it has been 10 years but it still works!Myelitis
K
6

You can just link this js.

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js"></script>

thanks.

Kennakennan answered 14/8, 2017 at 14:1 Comment(0)
W
1

if you are in Wordpress you can use this code in functions.php:

add_action( 'wp_head', function () {

    // jquery.ui.touch-punch
    wp_enqueue_script( 'jquery.ui.touch-punch', '//cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js', [], '0.2.3',false );

}, 999 );
Wharve answered 11/7, 2021 at 4:42 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.