移动端js手指滑动事件初体验

36 篇文章 0 订阅

今天在公司遇到做一个移动端手指滑动的效果,刚开始用了swiper.js插件发现效果不好(文字存在模糊效果)。后来查了一些资料,自己手写了一个使用原生js写的滑动效果。

下面直接上代码:

 <!doctype html>
 <html lang="en">
 <head>
 	<meta charset="UTF-8">
 	    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, minimal-ui" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <meta name="format-detection"content="telephone=no, email=no" />
 	<title>Document</title>
 	<style>
 	#id {
 		width: 1150px;
 		height: 150px;
 		background: red;
 		position: absolute;
 		left: 0px;
 	}
 	.id {
 		width: 40px;
 		height: 150px;
 		background: green;
 		border: solid 1px grey;
 		float: left;
 		
 	}
 	</style>
 </head>
 <body>
 	<div id="inp"></div>
 	<div id="id" style="left:0px;">
 		<div class="id">1</div>
<div class="id">2</div><div class="id"></div><div class="id"></div><div class="id"></div><div class="id"></div>
 	</div>
 </body>
 <script>
 	function load (){

 		/*单指拖动*/
	var obj = document.getElementById('id');
	obj.addEventListener("touchstart", function(event) {
		var touch = event.targetTouches[0];
		var left = parseInt(obj.style.left);
		// alert(left);
		var x = touch.pageX - left;
		var y = touch.pageY - left;
		obj.addEventListener('touchmove', function(event) {
			// 如果这个元素的位置内只有一个手指的话

			if (event.targetTouches.length == 1) {    
				event.preventDefault(); // 阻止浏览器默认事件,重要 
				var touch = event.targetTouches[0];
				// 把元素放在手指所在的位置

				obj.style.left = touch.pageX - x + 'px';
				// obj.style.top = touch.pageY + 'px';
			}
		}, false);

	});
	obj.addEventListener("touchend",function(){
		obj.removeEventListener("touchstart");
		obj.removeEventListener("touchmove");
	});   
}
window.addEventListener('load',load, false);
 </script>
 </html>

还有一个关于

【html5构建触屏网站】之touch事件

的链接地址,有兴趣的大家可以去看一下:
http://www.cnblogs.com/shawn-xie/archive/2012/12/07/2805582.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值