我有一个我建立的滑块,它改变了它的宽度以将元素滑动到视图中。在桌面上有按钮来做到这一点。我希望能够通过触摸和拖动事件来使滑块工作,并使它像iosslider一样平滑。我发现了一种可行的方式,但它不稳定,并不总是回应。如何在触摸设备上检测到触摸和拖动时更改宽度和元素更改?
我的代码...
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
<script type="text/javascript">$(document).bind("mobileinit", function(){$.extend($.mobile , {autoInitializePage: false})});</script>
<script src="scripts/jquery.mobile-1.3.2.min.js"></script>
<script>
function clickNDrag(){
var mousePosition = event.pageX;
$(this).bind('vmousemove',function(){
var mouseCurrentPosition = event.pageX;
var positionNumber = mouseCurrentPosition - mousePosition;
if(positionNumber > 0){
var widthAppend = 20;
} else {
var widthAppend = -20;
}
$(this).css({width: '+=' + widthAppend});
});
$(this).vmouseup(function(){
$(this).unbind('mousemove');
});
$(this).vmouseleave(function(){
$(this).unbind('mousemove');
});
}
$(document).ready(function(){
$('.slider').bind('vmousedown',clickNDrag);
});
</script>
我所做的是我装jQuery Mobile的,只装了它的触摸事件。
该脚本检查虚拟鼠标的位置,然后移动时检查其是否向右或向左移动,然后添加20px或从滑块中减去20px。
我该如何以更自然的感觉和流畅的方式做到这一点?