MUI列表滑动操作

前言:通过MUI等目前流行的前端框架,我们可以生成接近原生APP体验的界面。

列表滑动操作,使用了mui-table-view和mui-slider两个组件。

1.界面部分:

注:需要引入mui的样式和脚本外链

<html>
  <head>
  	<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  	<link rel="stylesheet" href="css/mui.min.css" />
  	<script type="text/javascript" src="js/mui.min.js"></script>
  </head>
  <body> 
  	<div class="mui-content">
      <ul id="mtb" class="mui-table-view">
      	<li class="mui-table-view-cell mui-media">
      		<div class="mui-slider-left mui-disabled">
      			<a class="mui-btn mui-btn-yellow">左删除</a>
      		</div>
      		<div class="mui-slider-right mui-disabled">
      			<a class="mui-btn mui-btn-red">右删除</a>
      		</div>
      		<div class="mui-slider-handle">
      			<img class="mui-media-object mui-pull-left" src="./img/aboutme.png">
      			<div class="mui-media-body">
      				瑞恩·雷诺兹
      				<p class='mui-ellipsis'>加拿大,不列颠哥伦比亚省,温哥华</p>
      			</div>
      		</div>
      	</li>  	
      	
      	<li class="mui-table-view-cell mui-media">
      		<div class="mui-slider-left mui-disabled">
      			<a class="mui-btn mui-btn-yellow">左删除</a>
      		</div>
      		<div class="mui-slider-right mui-disabled">
      			<a class="mui-btn mui-btn-red">右删除</a>
      		</div>
      		<div class="mui-slider-handle">
      			<img class="mui-media-object mui-pull-left" src="./img/aboutme.png">
      			<div class="mui-media-body">
      				威尔·史密斯
      				<p class='mui-ellipsis'>美国,宾夕法尼亚州,费城</p>
      			</div>
      		</div>
      	</li>  
      </ul> 
    </div>
  </body>
</html>

2.JS部分:

事件绑定方法可以通过on()函数批量绑定,也可以通过addEventListene()函数绑定单个元素。

    <script type="text/javascript">
    	//定义mui.confirm提示框按钮内容
    	var btnArray = ['确认', '取消'];    	
    	
    	/* 
    	  【事件绑定方法1】
    	  1.通过JS匿名函数传参的形式:(function($){...})(mui); 其中实参为mui;
    	  2.通过$()方法返回匹配指定css选择器的元素;
    	  2.通过on()方法实现批量元素添加监听事件;
      */
    	(function($) {
    		$('#mtb').on('tap', '.mui-btn-yellow', function(event) {
    			//获取当前DOM对象<a>
    			var elem = this;
    			//获取当前DOM对象的父,父节点<li>
    			var li = elem.parentNode.parentNode;
    			mui.confirm('确认删除?', '提示', btnArray, function(e) {
    				if (e.index == 0) {
    					//确认:获取li节点的父节点,即<ul>,并调用removeChild()方法删除当前选中的子节点<li>
    					li.parentNode.removeChild(li);
    				} else {
    					//取消:关闭滑动列表
    					$.swipeoutClose(li);
    				}
    			});
    		});
    	})(mui);   

      /* 
    	  【事件绑定方法2】
    	  1.通过mui()方法返回匹配指定css选择器的元素;
    	  2.通过on()方法实现批量元素添加监听事件;
      */
    	mui('#mtb').on('tap', '.mui-btn-yellow', function(event) {
        //获取当前DOM对象<a>
    		var elem = this;
        //获取当前DOM对象的父,父节点<li>
    		var li = elem.parentNode.parentNode;
    		mui.confirm('确认删除?', '提示', btnArray, function(e) {
    			if (e.index == 0) {
            //确认:获取li节点的父节点,即<ul>,并调用removeChild()方法删除当前选中的子节点<li>
    				li.parentNode.removeChild(li);
    			} else {
            //取消:关闭滑动列表
    				mui.swipeoutClose(li);
    			}
    		});
    	});
    	   	
    	/*
    	  【事件绑定方法3】
    	  注:此方法只能绑定一个元素!
    	  1.通过querySelector()方法只能返回匹配指定CSS选择器的第一个元素;
    	  2.通过addEventListener()方法可为该元素添加监听事件;
      */
    	document.querySelector(".mui-btn-red").addEventListener("tap",function(){ 	
    		//获取当前DOM对象<a>
    		var elem = this;
    		//获取当前DOM对象的父,父节点<li>
      	var li=this.parentNode.parentNode;	
      	mui.confirm("确认删除?","提示",btnArray,function(e){
          if(e.index==0){
          	//确认:获取li节点的父节点,即<ul>,并调用removeChild()方法删除当前选中的子节点<li>
          	li.parentNode.removeChild(li);
          }else{
          	//取消:关闭滑动列表     	
          	mui.swipeoutClose(li);
          }
        });
      });
      
    </script>

实现界面如下:

  • 列表
  • 右滑“左删除”
  • 左滑“右删除”
  • 删除提示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值