作者:随之爱_629 | 来源:互联网 | 2022-10-13 12:59
手机图片滑动切换,网上有很多这样的例子,但都借助于其他组件,让代码混乱的不行;还有就是用到css3里的 transform:translate(x,y);移动元素,不过发现在不支持css3的设备上马上完蛋了,所以下定决心自己做一个,谁知出现了很多的问题,其中最重要的是给图片加链接,网页中的上下滚动条不能在拖动图片的时候滚动,并且不能兼容pc机器上的拖动;在这里就简单介绍一下遇到的问题和解决的方法;
问题一:给图片加上链接后,在拖动的时候总是跳到其他页面
问题根源主要是不能判断是点击还是拖动,手机事件一般顺序是 touchstart-》mousedown-》mousemove-》touchmove-》mouseup-》touchend-》click,根据不同手机可能会有不同。触屏手机的事件一般都用 touchstart -》 touchmove -》 touchend -》 click,click事件是最后执行的,当我们有touchstart,touchmove,touchend处理完后,如果不进行return或取消默认就会触发click事件,这样网页就跳走了,解决办法是记录touchstart的坐标点和touchmove的坐标点,根据两个坐标点算出触点是否移动过,其中值得关注的是事件的Event参数,触屏一般是 event.touches,event.targetTouches,event.changedTouches。我在测试当中发现者三个参数的值时一样的,不过值得注意的是touchend事件不会得到触点坐标(也或许是设备问题),在移动的时候touchmove会不断出发,有时候touchmove会不触发,其中就是浏览器自带一下功能把触点(或鼠标)脱离了选中的元素,比如上时间按住会出现菜单,(pc上图片就会生成一个可以拖动的缩略图),这样就要在touchstart(mousedown)的时候先 event.preventDefault();取消默认。
问题二:网页中的上下滚动条不能在拖动图片的时候滚动
相信这个问题只要制作过得都会遇到,其实主要是在移动(touchmove,mousemove)的时候取消了默认事件event.preventDefault(),在这里我们需要做的是,是否移动获得触点和开始的触点是否一致,如果一致就直接返回,还要算出是移动的x轴多一点还是y轴移动的多一点,这样我们就可以做左右滑动的时候取消默认,在上学的时候不取消;
问题三: 并且不能兼容pc机器上的拖动
这是因为在绑定事件的时候不能完全考虑事件名称是touchstart还是mousedown ,从网上搜了一下,感觉做的不做,就直接抄过来了
推荐阅读
-
background:-webkit-gradient(linear,10%10%,100%100%, ...
[详细]
蜡笔小新 2023-09-25 18:49:33
-
本文小编为大家详细介绍“前端实用的CSS3技巧有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“前端实用的CSS3技巧有哪些”文章能帮助大家 ...
[详细]
蜡笔小新 2023-09-25 13:50:50
-
-
Bootstrapfontnotloadingcorrectlyglyphicons-halflings-regular.woff2.引导字体没有正确加载符号-halflingr ...
[详细]
蜡笔小新 2023-09-24 18:22:46
-
小编给大家分享一下怎么用css3实现图片的高斯模糊效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后 ...
[详细]
蜡笔小新 2023-09-24 14:56:09
-
本文主要介绍关于html5,css3的知识点,对【关于雾霾网站设计】和【你有什么见解】有兴趣的朋友可以看下由【-你在暮色中】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的【】相关技术问题。你有 ...
[详细]
蜡笔小新 2023-09-24 13:40:19
-
过往项目2018年9月份项目汇总(共26个项目)2018年8月份项目汇总(共29个项目)2018年7月份项目汇总(共29个项目)2018年6月份项目汇总(共27个项目)2018年5 ...
[详细]
蜡笔小新 2023-09-18 20:39:06
-
小编给大家分享一下CSS3如何实现loading预加载动画特效,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章 ...
[详细]
蜡笔小新 2023-09-16 12:05:33
-
这篇文章主要为大家展示了“html5+css3网站菜单的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习 ...
[详细]
蜡笔小新 2023-09-16 11:05:47
-
CSS3filter(滤镜)属性-原文链接:CSS3filter(滤镜)属性效果预览这里仅展示黑白效果。filter:grayscale(100%);定义和使用filter 属性定 ...
[详细]
蜡笔小新 2023-09-15 20:40:41
-
Ihaveafixed,100%heightmenuontheleftandIneedtocreateashadoweffectonitsrightside ...
[详细]
蜡笔小新 2023-09-15 20:35:05
-
微信红包曾经引爆过一系列的营销热潮,相信大家对于这种红包形式并不陌生,这里本着娱乐至上的精神用React简单地实现了拆红包的动画效果,供大家一起交流学习项目源码地址:https:g ...
[详细]
蜡笔小新 2023-09-15 14:59:28
-
这篇文章主要为大家展示了“CSS3中linear-gradient线性渐变生成加号和减号的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下 ...
[详细]
蜡笔小新 2023-09-15 11:50:30
-
欢迎提issues斧正:css小技巧业务代码中可用的CSS技巧兼容chrome下的10px字体p{font-size:10px;-webkit-transform:scale(.8 ...
[详细]
蜡笔小新 2023-09-14 16:19:54
-
这篇文章主要介绍CSS3中自定义滚动条样式的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!CSS3中可以通过给元素设置over ...
[详细]
蜡笔小新 2023-09-13 17:15:51
-
很多网站都有那种图片渐入的效果,如:http:www.mi.comminote,这种效果用css3和一些js实现起来特别简单。拿我之前做的页面来说一下怎么利用css3来实现图片渐入效果。 ...
[详细]
蜡笔小新 2023-09-12 17:06:41
-