扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
一、原理及实现方法如下:
在静宁等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、成都网站设计 网站设计制作按需定制,公司网站建设,企业网站建设,品牌网站制作,成都全网营销,成都外贸网站制作,静宁网站建设费用合理。
1、当开始一个touchstart事件的时候,获取此刻手指的横坐标startX和纵坐标startY;
2、当触发touchmove事件时,在获取此时手指的横坐标moveEndX和纵坐标moveEndY;最后,通过这两次获取的坐标差值来判断手指在手机屏幕上的滑动方向。
二、注意:
手指在滑动整个屏幕时,会影响浏览器的行为,比如滚动和缩放。所以在调用touch事件时,要注意禁止缩放和滚动。
1.禁止缩放
通过meta元标签来设置。
2.禁止滚动
preventDefault是阻止默认行为,touch事件的默认行为就是滚动。
event.preventDefault()。
通过对滑动事件(touchmove)设置e.preventDefault()和e.stopPropagation()函数实现功能。以及禁止解除,即把touchmove改成touchstart即可。
具体实现思路及代码如下:
1、打开一个HTML页面,页面只有一个h标签,并在浏览器打开开发者调试界面。安卓和IOS调试均正常。
2、添加关键函数,滑动时输出字符。(此时,将e.preventDefault()和e.stopPropagation()两个函数注释)
3、此时,开发者工具console输出:
4、此时,将第三步的注释去掉,将正常的console注释,如下:
5、此时的页面输出如下:(滑动时返回错误)
扩展资料:
js移动端事件:
1、touchstart:当手指触摸屏幕时触发;即使已经有一个手指放在了屏幕上也会触发
2、touchmove:当手指在屏幕上滑动时连续地触发。在这个世界发生期间,调用preventDefault()可以阻止滚动。
3、touchend:当手指在屏幕上移开时触发。
4、touchcancel:当系统停止跟踪触摸时触发。
上面这几个事件都会冒泡,也都可以取消。
虽然这些触摸事件没有在DOM规范中定义,但它们却是以兼容DOM的方式实现的。因此,每个触摸事件的event对象都提供了鼠标事件中常见的属性:
bubbles,cancelable,view,clientX,clientY,screenX,screenY,detail,altKey,shiftKey,ctrlKey和metaKey。
除了常见的DOM属性外,触摸世界还包含下列三个用于跟踪触摸的属性。
1、touches:表示当前跟踪的触摸操作的Touch对象的数组。
2、targetTouches:特定于事件目标的Touch对象的数组。
3、changedTouches:表示字上次触摸以来发生了什么改变的Touch对象的数组。
jquery手机触屏左右滑动切换栏目
$(function(){
TouchSlide({
slideCell:"#slideBox",
titCell:".myhd
ul",
//开启自动分页
autoPage:true
,此时设置
titCell
为导航元素包裹层
mainCell:".bd
ul",
effect:"leftLoop",
autoPage:true,//自动分页
autoPlay:true
//自动播放
});
div
id="slideBox"
class="slideBox"
div
class="bd"
ul
li
a
class="pic"
href="#"img
src="${ctxStatic}/img/mobile/news1.png"
//a
a
class="tit"
href="#"墨西哥教师罢工
与警察激烈冲突/a
/li
li
a
class="pic"
href="#"img
src="${ctxStatic}/img/mobile/news2.jpg"//a
a
class="tit"
href="#"日右翼游行纪念钓岛"国有化"周年/a
/li
li
a
class="pic"
href="#"img
src="${ctxStatic}/img/mobile/news3.jpg"//a
a
class="tit"
href="#"女兵竞选美国小姐鼓励女性自强/a
/li
li
a
class="pic"
href="#"img
src="${ctxStatic}/img/mobile/news4.jpg"//a
a
class="tit"
href="#"济南现“最窄人行道”
仅0.2米宽/a
/li
/ul
/div
div
class="myhd"
ul
style="height:
28px;"/ul
/div
/div
swipleft/right 是判断手指是向左还是向右滑动。
注意他只是个判断 ,没有那种拖动焦点图的那种效果。
不知道您是想用这个做什么效果?
$(document).bind('swiperight',function(){
config.$bookBlock.bookblock('prev');
}).bind('swipeleft',function(){
config.$bookBlock.bookblock('next');
});
如果您是想要滑动门的效果,那jquerymobile就办不到了。
可以搜索一下Swiper-master 这个插件,效果很棒的!
//声明一个为0的变量做记录值
doucument.body.addEvenetListener('touchstart',function(e){
//记录下按下时的e.touches[0].clientY或者e.touches[0].pageY;
});
document.body.addEventListener('touchmove',function(e){
//获取当前e.touches[0].clientY或者e.touches[0].pageY 并且与之前记录的值比较 当前值大于之前值的话就可以判断当前动作是在向上滑动 然后做翻页的操作即可
});
如果用现成的js框架做的话 有一个叫quo.js的框架非常不错
一个简单的解决方案:顶端固定一个DIV作为导航容器,该DIV左端和右端分别用DIV模拟向左和向右的按钮,中间区域呈现导航按钮,计算当前位置,用模拟的按钮控制左右滚动。
另,你说的手机端用手指滑动,在 HTML 中是由浏览器根据手势触控事件来支持的,jQuery 超越不了浏览器对 JS 的支持,因为 jQuery 就是 JS 的程序包。如果使用 Mouse 事件来实现,也不是不可以,因为手势触控的本质无非还是 Mouse 事件同源的衍生计算。费老鼻子劲使用 Mouse 事假实现一个有加速减速效果的导航滑动,不经济。供参考。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流