实例介绍
【实例简介】
【实例截图】
【实例截图】
【核心代码】
//手势滑动 (function($) { $.fn.move = function(setti) { var defaultSetti = { width: 200, //实际显示区域 height: 200, //实际显示区域 x: true, // 横向移动 y: true, //纵向移动 } setti = $.extend(true, {}, defaultSetti, setti); return this.each(function() { var _this = $(this), s = setti; var chil = $(".Slide", _this); //触控元素 var startX = 0, startY = 0; //触摸开始时手势横纵坐标 var temPos = []; //元素当前位置 var oPosition = {}; //触点位置 var wh = []; //元素宽高 var z = 0; //手指滑动时间 var d = {}; //总过滑动距离 var m = 0; //每毫秒滚动距离 //页面加载或发生改变 $(window).bind('resize load', function() { b(); wh.w = chil.width(); wh.h = chil.height(); if(wh.w < s.width) { s.width = wh.w } if(wh.h < s.height) { s.height = wh.h } }); if(_this.css("position") == "static") { //检测是否定位 _this.css("position", "relative") } //获取滑动时间 function autoMo() { z ; } //停止计算 function b() { //绑定三个事件 chil.get(0).addEventListener("touchstart", c, false) chil.get(0).addEventListener('touchmove', y, false); chil.get(0).addEventListener('touchend', t, false); } function h(e) { //获取触摸点 var touches = e.changedTouches, l = touches.length, touch, tagX, tagY; for(var i = 0; i < l; i ) { touch = touches[i]; tagX = touch.clientX; tagY = touch.clientY; } oPosition.x = tagX; oPosition.y = tagY; if(!z) { d.x = tagX; d.y = tagY; } } function c(e) { //触摸开始 h(e); startX = oPosition.x; startY = oPosition.y; temPos.x = chil.position(_this).left; temPos.y = chil.position(_this).top; animate(chil,0); } function y(e) { //触摸移动 e.preventDefault(); h(e); autoMo(); var moveX = oPosition.x - startX; var moveY = oPosition.y - startY; if(s.x) { chil.css({ left: temPos.x moveX }); } if(s.y) { chil.css({ top: temPos.y moveY }); } } function t(e) { //触摸结束 temPos.x = chil.position().left; temPos.y = chil.position().top; if(s.x) { var wwl = (d.x - oPosition.x) / z*20; _left(chil,wwl); } if(s.y) { var wwt = (d.y - oPosition.y) / z*20; _top(chil,wwt); } z = 0; //初始化触控时间 } function animate(obj, num) { clearInterval(obj.timer); clearInterval(obj.timers); if(!num){ return; } } function _top(obj,num){ clearInterval(obj.timer); if(!num){ return; } var ti=0; if(num>0){ obj.timer = setInterval(function() { var flag = true; //清楚定时器的标识 var step = num / 20; step = step > 0 ? Math.ceil(step) : Math.floor(step); obj.css("top",temPos.y - step - ti); ti=ti step; num=num-step; if(num<0 || -temPos.y step ti > wh.h - s.height){ clearInterval(obj.timer); } if(-temPos.y - step - ti > wh.h - s.height){ doAnimt(-wh.h s.height) } }, 10) }else{ obj.timer = setInterval(function() { var step = num / 20; step = step > 0 ? Math.ceil(step) : Math.floor(step); obj.css("top",temPos.y - step - ti); ti=ti step; num=num-step; if(num>0 || temPos.y - step - ti > 0){ clearInterval(obj.timer); } if(temPos.y - step - ti > 0){ doAnimt(0) } }, 10) } } function _left(obj,num){ clearInterval(obj.timers); if(!num){ return; } var til=0; if(num>0){ obj.timers = setInterval(function() { var stepl = num / 20; stepl = stepl > 0 ? Math.ceil(stepl) : Math.floor(stepl); obj.css("left",temPos.x - stepl - til); til=til stepl; num=num-stepl; if(num<0 || -temPos.x stepl til > wh.w - s.width){ clearInterval(obj.timers); } if(-temPos.x - stepl - til > wh.w - s.width){ doAniml(-wh.w s.width) } }, 10) }else{ obj.timers = setInterval(function() {console.log(num); var stepl = num / 20; stepl = stepl > 0 ? Math.ceil(stepl) : Math.floor(stepl); obj.css("left",temPos.x - stepl - til); til=til stepl; num=num-stepl; if(num>0 || temPos.x - stepl - til > 0){ clearInterval(obj.timers); } if(temPos.x - stepl - til > 0){ doAniml(0) } console.log(num); }, 10) } } function doAnimt(iTarget) { chil.animate({ top: iTarget }, { duration: 300, queue: false }); } function doAniml(iTarget) { chil.animate({ left: iTarget }, { duration: 300, queue: false }); } try { if(typeof(eval(_data)) == "function") { _data(); //可用于传输内部数据 } } catch(e) {} }); } })(jQuery);
好例子网口号:伸出你的我的手 — 分享!
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论