原声js 模拟微信滑动

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<title>微信滑动删除</title>
		<!--<link rel="stylesheet" type="text/css" href="base.css"/>-->
		<style>
			*{
				padding: 0;
				margin: 0;
			}
			html {
			  font-size: 20px;
			}
			body {
			  font-size: 16px;
			}
			@media only screen and (max-width: 320px) {    html { 
			        font-size: 42.7px !important; 
			    }} 
			@media only screen and (min-width: 321px) and (max-width: 360px) {    html { 
			        font-size: 48px !important; 
			    }} 
			@media only screen and (min-width: 361px) and (max-width: 375px) {    html { 
			        font-size: 50px !important; 
			    }} 
			@media only screen and (min-width: 376px) and (max-width: 384px) {    html { 
			        font-size: 52.1px !important; 
			    }} 
			 
			@media only screen and (min-width: 385px) and (max-width: 414px) {    html { 
			        font-size: 55.2px !important; 
			    }} 
			 
			@media only screen and (min-width: 415px) and (max-width: 480px) {    html { 
			        font-size: 64px !important; 
			    }} 
			 
			@media only screen and (min-width: 481px) and (max-width: 540px) {    html { 
			        font-size: 72px !important; 
			    }}
			@media only screen and (min-width: 750px) {    html { 
			        font-size: 100px !important; 
			    }}
			
			
			.line{
				width: 7.5rem;
				height: 1.35rem;
			}
			.line_move{
				width: 7.5rem;
				height: 100%;
				font-size: 0.28rem;
				padding-left: 0.3rem;
				padding-right: 0.3rem;
				border-bottom: 1px solid #E0E0E0;
				background-color: white;
				box-sizing: border-box;
				float: left;
				position: relative;
				z-index: 2;
			}
			.reimbu_top{
				padding-top: 0.2rem;
			}
			.reimbu_top>span:nth-child(2){
				float: right;
				color: #FFAA00;
			}
			
			.reimbu_bottom{
				margin-top: 0.2rem;
				margin-bottom: 0.2rem;
			}
			.reimbu_bottom>span:nth-child(2){
				float: right;
			}
			.line_right{
				position: relative;
				left: 4.3rem;
				height: 1.32rem;
				width: 3.2rem;
				
			}
			.line_right div{
				width: 1.6rem;
				height: 1.32rem;
				line-height: 1.32rem;
				text-align: center;
				font-size: 0.26rem;
				box-sizing: border-box;
			}
			.line_right>div:nth-child(1){
				background-color: #C2C2C2;
				position: absolute;
				top: 0;
				right: 1.6rem;
			}
			.line_right>div:nth-child(2){
				background-color: #D0011B;
				position: absolute;
				top: 0;
				right: 0;
			}
		</style>
	</head>
	<body>
		
		<div class="box-1">
			<div class="box_count">
				
				<div class="line">
					<div class="line_move" index="1">
						<div class="reimbu_top">
							<span>拜访客户</span>
							<span>986.00元</span>
						</div>
						<div class="reimbu_bottom">
							<span>2017-04-05</span>
							<span>未打印</span>
						</div>
					</div>
					<div class="line_right">
						<div>编辑</div>
						<div οnclick="test(1)">删除</div>
					</div>
				</div>
				
				<div class="line">
					<div class="line_move" index="1">
						<div class="reimbu_top">
							<span>拜访客户</span>
							<span>986.00元</span>
						</div>
						<div class="reimbu_bottom">
							<span>2017-04-05</span>
							<span>未打印</span>
						</div>
					</div>
					<div class="line_right">
						<div>编辑</div>
						<div οnclick="test(1)">删除</div>
					</div>
				</div>
				
				<div class="line">
					<div class="line_move" index="1">
						<div class="reimbu_top">
							<span>拜访客户</span>
							<span>986.00元</span>
						</div>
						<div class="reimbu_bottom">
							<span>2017-04-05</span>
							<span>未打印</span>
						</div>
					</div>
					<div class="line_right">
						<div>编辑</div>
						<div οnclick="test(1)">删除</div>
					</div>
				</div>
				
				<div class="line">
					<div class="line_move" index="1">
						<div class="reimbu_top">
							<span>拜访客户</span>
							<span>986.00元</span>
						</div>
						<div class="reimbu_bottom">
							<span>2017-04-05</span>
							<span>未打印</span>
						</div>
					</div>
					<div class="line_right">
						<div>编辑</div>
						<div οnclick="test(1)">删除</div>
					</div>
				</div>
				
				<div class="line">
					<div class="line_move" index="1">
						<div class="reimbu_top">
							<span>拜访客户</span>
							<span>986.00元</span>
						</div>
						<div class="reimbu_bottom">
							<span>2017-04-05</span>
							<span>未打印</span>
						</div>
					</div>
					<div class="line_right">
						<div>编辑</div>
						<div οnclick="test(1)">删除</div>
					</div>
				</div>
				
				<div class="line">
					<div class="line_move" index="1">
						<div class="reimbu_top">
							<span>拜访客户</span>
							<span>986.00元</span>
						</div>
						<div class="reimbu_bottom">
							<span>2017-04-05</span>
							<span>未打印</span>
						</div>
					</div>
					<div class="line_right">
						<div>编辑</div>
						<div οnclick="test(1)">删除</div>
					</div>
				</div>
				
				<div class="line">
					<div class="line_move" index="1">
						<div class="reimbu_top">
							<span>拜访客户</span>
							<span>986.00元</span>
						</div>
						<div class="reimbu_bottom">
							<span>2017-04-05</span>
							<span>未打印</span>
						</div>
					</div>
					<div class="line_right">
						<div>编辑</div>
						<div οnclick="test(1)">删除</div>
					</div>
				</div>
				
				<div class="line">
					<div class="line_move" index="1">
						<div class="reimbu_top">
							<span>拜访客户</span>
							<span>986.00元</span>
						</div>
						<div class="reimbu_bottom">
							<span>2017-04-05</span>
							<span>未打印</span>
						</div>
					</div>
					<div class="line_right">
						<div>编辑</div>
						<div οnclick="test(1)">删除</div>
					</div>
				</div>
				
				<div class="line">
					<div class="line_move" index="1">
						<div class="reimbu_top">
							<span>拜访客户</span>
							<span>986.00元</span>
						</div>
						<div class="reimbu_bottom">
							<span>2017-04-05</span>
							<span>未打印</span>
						</div>
					</div>
					<div class="line_right">
						<div>编辑</div>
						<div οnclick="test(1)">删除</div>
					</div>
				</div>
				
				<div class="line">
					<div class="line_move" index="1">
						<div class="reimbu_top">
							<span>拜访客户</span>
							<span>986.00元</span>
						</div>
						<div class="reimbu_bottom">
							<span>2017-04-05</span>
							<span>未打印</span>
						</div>
					</div>
					<div class="line_right">
						<div>编辑</div>
						<div οnclick="test(1)">删除</div>
					</div>
				</div>
				
				<div class="line">
					<div class="line_move" index="1">
						<div class="reimbu_top">
							<span>拜访客户</span>
							<span>986.00元</span>
						</div>
						<div class="reimbu_bottom">
							<span>2017-04-05</span>
							<span>未打印</span>
						</div>
					</div>
					<div class="line_right">
						<div>编辑</div>
						<div οnclick="test(1)">删除</div>
					</div>
				</div>
				
				<div class="line">
					<div class="line_move" index="1">
						<div class="reimbu_top">
							<span>拜访客户</span>
							<span>986.00元</span>
						</div>
						<div class="reimbu_bottom">
							<span>2017-04-05</span>
							<span>未打印</span>
						</div>
					</div>
					<div class="line_right">
						<div>编辑</div>
						<div οnclick="test(1)">删除</div>
					</div>
				</div>
				
				
			</div>
		</div>
		
		<script>
			
			var moveArr = document.getElementsByClassName('line_move');
			var startX=0;
			var moveX=0;
			var moveStatus=0; //0:未滑出 1:以划出
			var arr = [];     //判断手指触摸数量
			function handler() { return false;}
			for( var i=0; i<moveArr.length; i++ ){
				
				moveArr[i].addEventListener('touchstart',function(event){  
					startX = event.touches[0].clientX;  
					arr.push(this.getAttribute('index'));
					//arr.push(1); 不需要索引值就用这个
					//添加阻止默认行为
					this.addEventListener('touchmove', handler, false); 
	            })  
	            
				moveArr[i].addEventListener('touchmove',function(event){
					moveX = event.touches[0].clientX - startX; 
					moveXTO = moveX*0.01;
					// 向左滑动
					if( moveXTO > -1 && moveStatus==0 && arr.length==1){
						this.style.transform = "translate("+moveXTO+"rem)"; 
					}
					//向右滑动
					if( moveXTO > 1 && moveStatus==1){
						this.style.transform = "translate("+(-3.2+moveXTO)+"rem)"; 
					}
				})
				moveArr[i].addEventListener('touchend',function(event){
					moveEnd = moveX*0.01;
					//向左滑动
					if( moveEnd < 0 && moveStatus==0){ 
                    	if( Math.abs(moveEnd) > 1 ){
                    		this.style.transform = "translate("+-3.2+"rem)";  
                    		moveStatus=1;
	                    }else{
	                    	this.style.transform = "translate("+0+"rem)";  
	                    	moveStatus=0;
	                    }
	                }else if(moveEnd < 0 && moveStatus==1){
							moveArr[this.getAttribute('index')].style.transform = "translate("+0+"rem)";  
                    		moveStatus=0;
	                // 向右滑动    
					}else if(moveEnd>0 && moveEnd > 1){ 
                    	this.style.transform = "translate("+0+"rem)";  
                    	moveStatus=0;
					}
					this.style.transitionDuration ="0.5s";
					moveX=0;
					// 解绑事件
					this.removeEventListener('touchmove', handler, false);
			  	})
			}
			for( var i=0; i<moveArr.length; i++ ){
				moveArr[i].addEventListener("touchstart", function(e){  
					arr = [];
					moveStatus=0;
			        for(var j=0; j<moveArr.length; j++){
	            		moveArr[j].style.transform = "translate("+0+"rem)";  
	            	}
			    }); 
			}
			
		</script>
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值