jquery實現(xiàn)移動端按鈕組左右滑動
本文實例為大家分享了jquery實現(xiàn)移動端按鈕組左右滑動的具體代碼,供大家參考,具體內(nèi)容如下
學(xué)習(xí)移動端觸摸相關(guān)功能時寫了一個例子,共享一下,其中最不好理解的是screen、page、client相對坐標(biāo)的問題,我畫了一個簡圖幫助記憶:
jquery插件源碼:
//按鈕滑動插件 ? ? +(function ($, w, d, undefined) { ? ? ? ? ? jQuery.fn.slideLeftRight = function () { ? ? ? ? ? ? var start = null;//每一次觸屏的開始位置 ? ? ? ? ? ? var current = 0;//滑動過程中的位置 ? ? ? ? ? ? var end = 0;//滑動結(jié)束時的觸屏位置 ? ? ? ? ? ? var _this = null;//對象代理 ? ? ? ? ? ? $(this).css({ "white-space": "nowrap", "position": "absolute", "left": 0, "overflow": "hidden" }) ? ? ? ? ? ? ? ? ?.parent().css({ "position": "relative", "overflow": "hidden" }); ? ? ? ? ? ? _this = this; ? ? ? ? ? ? var ?wwidth=$(window).width();//瀏覽器的寬度 ? ? ? ? ? ? //對象left位置 ? ? ? ? ? ? var _obj_left = $(this).css("left") == "auto" ? 0 : parseInt($(this).css("left")); ? ? ? ? ? ? var objWidth = $(_this).width(); ? ? ? ? ? ? $(_this).on({ ? ? ? ? ? ? ? ? touchstart: function () { ? ? ? ? ? ? ? ? ? ? var target = event.changedTouches[0]; ? ? ? ? ? ? ? ? ? ? start = target.pageX; ? ? ? ? ? ? ? ? ? ? current = target.pageX; ? ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? ? touchmove: function () { ? ? ? ? ? ? ? ? ? ? var target = event.changedTouches[0]; ? ? ? ? ? ? ? ? ? ? $(_this).css("left", _obj_left + (target.pageX - start)); ? ? ? ? ? ? ? ? ? ? current = target.pageX ? ? ? ? ? ? ? ? }, touchend: function () { ? ? ? ? ? ? ? ? ? ? var target = event.changedTouches[0]; ? ? ? ? ? ? ? ? ? ? end = target.pageX; ? ? ? ? ? ? ? ? ? ? _obj_left = _obj_left + (target.pageX - start); ? ? ? ? ? ? ? ? ? ? ? if (start > end ) { ? ? ? ? ? ? ? ? ? ? ? ? //左 ? ? ? ? ? ? ? ? ? ? ? ? ? //瀏覽器的寬度 小于對象的寬度 ? ? ? ? ? ? ? ? ? ? ? ? if (objWidth > wwidth) { ? ? ? ? ? ? ? ? ? ? ? ? ? ? //對象的寬度 - ?對象left < 瀏覽器的寬度 ? ? ? ? ? ? ? ? ? ? ? ? ? ? if (objWidth - ?Math.abs( _obj_left) ?< wwidth) { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? var objLeft = objWidth - wwidth; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? $(_this).animate({ "left": -objLeft }); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? _obj_left = -objLeft; ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? ? ? ? ? ? ? //瀏覽器的寬度 >= ?對象的寬度 ? ? ? ? ? ? ? ? ? ? ? ? ? ? $(_this).animate({ "left": "0"}); ? ? ? ? ? ? ? ? ? ? ? ? ? ? _obj_left = 0; ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? } else if (start <= end) { ? ? ? ? ? ? ? ? ? ? ? ? //右 ? ? ? ? ? ? ? ? ? ? ? ? if (_obj_left > 0) { ? ? ? ? ? ? ? ? ? ? ? ? ? ? $(_this).animate({"left":"0"}); ? ? ? ? ? ? ? ? ? ? ? ? ? ? _obj_left = 0; ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? }); ? ? ? ? }; })(jQuery, window, document);
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery實現(xiàn)鼠標(biāo)劃過修改樣式的方法
這篇文章主要介紹了jQuery實現(xiàn)鼠標(biāo)劃過修改樣式的方法,涉及jQuery針對鼠標(biāo)事件及樣式操作的技巧,是jQuery鼠標(biāo)事件的典型應(yīng)用,非常具有實用價值,需要的朋友可以參考下2015-04-04JQuery中關(guān)于jquery.js與jquery.min.js的比較探討
jquery-1.4.2.min.js是優(yōu)化的,而query-1.4.2.js是易于開發(fā)著閱讀的,具體詳解祥看本文,希望對你有所幫助2013-05-05JQuery模板插件 jquery.tmpl 動態(tài)ajax擴展
在上一篇JQuery模板插件-jquery.tmpl中介紹了這款插件。有時我們需要去動態(tài)的ajax去加載模板,或者數(shù)據(jù),根據(jù)url參數(shù)或者其他信息加載不同的模板,數(shù)據(jù)2011-11-11Jquery選擇器中使用變量實現(xiàn)動態(tài)選擇例子
這篇文章主要介紹了Jquery選擇器中使用變量實現(xiàn)動態(tài)選擇例子,這樣做的好處我們可以動態(tài)選擇一些元素,核心思想其實就是用字符串組合,需要的朋友可以參考下2014-07-07jQuery實現(xiàn)花式輪播之圣誕節(jié)禮物傳送效果
這篇文章主要介紹了jQuery實現(xiàn)花式輪播之圣誕節(jié)禮物傳送效果,需要的朋友可以參考下2016-12-12jQuery Mobile框架中的表單組件基礎(chǔ)使用教程
jQuery Mobile框架主要針對移動端的Web UI設(shè)計,其中豐富的表單組件調(diào)用起來也是相當(dāng)方便,接下來就為大家整理了一份jQuery Mobile框架中的表單組件基礎(chǔ)使用教程,需要的朋友可以參考下2016-05-05