移动端 jquery、zepto 长按触发移动事件

增加了对长按时间的判断,区分单击事件和长按事件


点击右边话筒


弹出相应的效果界面


CSS代码

.sound-recording {
	width: 150px;
	height: 143px;
	position: fixed;
	top: 50%;
	left: 50%;
	padding: 20px;
	margin-top: -71px;
	margin-left: -75px;
	background: rgba(0,0,0,.3);
	border-radius: 5px;
	display: none;
}
.sound-recording dl {
	width: 100%;
	font-size: 0;
}
.sound-recording dl i {
	width: 50px;
	height: 73px;
	display: inline-block;
	background: url(../images/bg/icon_home_speak.png) center center no-repeat;
	background-size: 100% 100%;
}
.sound-recording dl dt {
	width: 50%;
	display: inline-block;
}
.sound-recording dl dd {
	width: 50%;
	display: inline-block;
	padding-left: 10px;
	text-align: right;
}
.sound-recording dl dd span {
	max-width: 48px;
	background: #fff;
	display: block;
	margin-top: 10px;
	height: 2px;

	border-radius: 2px;
}
.sound-recording p {
	width: 100%;
	text-align: center;
	font-size: 1.2rem;
	color: #fffefe;
	padding-top: 15px;
}

html代码

<!DOCTYPE html>  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0" />  
<title>触摸事件</title>  
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script><!--或者 <script src="/themes/bqg/js/lib/zepto.min.js"></script>-->
<style>
</head>  
  
    <div class="sound-recording">
  	<dl>
     	<dt><i></i></dt>
          	<dd>
          		<span></span>
                <span></span>
                <span></span>
                <span></span>
                <span></span>
                <span></span>
           </dd>
      </dl>
      <p>2秒找到合适医生</p>
   </div> 
  
</html>
js代码:

<script>  
    /*设置一个长按的计时器,如果点击这个图层超过2秒则触发,mydiv里面的文字从out变in的动作*/    
    var timeout = undefined;  
    var x=0;  
    var y=0;  
    var state=0;  
    var lastTime=null;    
    var nowTime=null;  
  
    var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;  
    $(function () {  
        /*触摸移动*/  
        $("#sound-recording").on("touchmove", function (event) {  
            event.preventDefault();//阻止触摸时浏览器的缩放、滚动条滚动  
            if(state==1){  
                    //start_x=0;  
                    //var start_x = event.originalEvent.targetTouches[0].clientX + document.body.scrollLeft - document.body.clientLeft;  
              var start_y = event.originalEvent.targetTouches[0].clientY+ document.body.scrollTop - document.body.clientTop;  
                  
                    //x=start_x;  
                    y=start_y;  
                    //
$("#sound-recording").css("left",x);                    
$("#sound-recording").css("top",y);  
$("#sound-recording").html(y);  
var top=$("#sound-recording").css("top").substring(0,$("#sound-recording").css("top").length-2);
if(top <= 10){ $("#sound-recording").css("top",10);
return false; } if(top >= (h-10-$("#sound-recording").height())){
$("#sound-recording").css("top",h-10-$("#sound-recording").height());
} } }); $("#sound-recording").on("touchstart", function (event) {
lastTime=new Date().getTime(); event.preventDefault();//阻止触摸时浏览器的缩放、滚动条滚动 clearTimeout(timeout); state=0; timeout = setTimeout(function() { state=1; }, 1000); }); $("#sound-recording").on("touchend", function (event) {
event.preventDefault();//阻止触摸时浏览器的缩放、滚动条滚动 clearTimeout(timeout); state=0; nowTime=new Date().getTime(); var timeLength=nowTime-lastTime; if(timeLength<1000){ $("#loadLayer").show(); window.history.go(-1); } }); }); </script>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曲线人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值