基于JS实现移动端左滑删除功能


Posted in Javascript onJuly 28, 2017

废话不多说了,直接给大家贴代码了,具体代码如下所示:

<div class="wrap pay-wrap" id="lists">
    @foreach (var item in Model)
    {
      <div class="pay-list" style="height:90px;margin: 10px 15px 10px 15px;" id="@item.UID">
        <div class="pay-each" style="height:90px;margin-bottom:0; border-radius: 5px;">
          <div class="pay-order-teacher" style="background-image:url(@item.DiseaseInformation.ListPicPath);height:70px;border-radius:0" onclick="Turn('@item.DiseaseInfoID')"></div><div class="detaildiv" style="padding:0;padding-top:10px" onclick="Turn('@item.DiseaseInfoID')">
            @(item.DiseaseInformation.Title.GetSubstr(60))
          </div>
          <div style="height:20px;margin-right:10px;line-height:20px;vertical-align:middle" onclick="Turn('@item.DiseaseInfoID')">
            <span style="float:left;color: #808080;line-height:2;vertical-align:bottom;width:70%">来源:@(item.DiseaseInformation.Source)</span>
            <span style="float:left;color: #808080;line-height:2;vertical-align:bottom;width:30%"><img src="~/Content/img/yueduliang.png" style="height:20px" /> @(item.DiseaseInformation.BrowseNum)</span>
          </div>
          <div class="pay-order-swiper" style="height:90px;margin-left:15px;width:80px"><a href="javascript:;" rel="external nofollow" onclick="del('@item.UID')" class="btn btn-red pay-order-btn pay-order-del" style="height:90px;line-height:90px;width:105px;font-size:18px">删除</a>
          </div>
        </div>
      </div>
    }
  </div>

jquery.productswipe.js代码

/********************
 * 基于jquery模拟移动端列表左右滑动删除
 * author:yaohuitao@100tal.com
 * ******************/
function prevent_default(e) {
  e.preventDefault();
}
function disable_scroll() {
  $(document).on('touchmove', prevent_default);
}
function enable_scroll() {
  $(document).off('touchmove', prevent_default);
}
var mytouch = function (obj) {
  //滑动删除
  var Drags = {};
  Drags.dragtag = false;//拖动状态
  Drags.dragstart = true;//拖动开始标志
  Drags.datatransx = 0;
  $(obj)
    .on('touchstart mousedown', function (e) {
      if (!($(e.target).hasClass("pay-order-swiper") || $(e.target).parents().hasClass("pay-order-swiper"))) {
        closeallswipe();   //点击还原
        if (e.originalEvent.targetTouches) {
          Drags.dragx = e.originalEvent.targetTouches[0].pageX;
          Drags.dragy = e.originalEvent.targetTouches[0].pageY;
        } else {
          Drags.dragx = e.pageX;
          Drags.dragy = e.pageY;
        }
        if ($(e.currentTarget).attr("data-transX")) {
          Drags.datatransx = parseInt($(e.currentTarget).attr("data-transX"));
        }
        Drags.dragtag = true;
        Drags.dragstart = true;
      }
    })
    .on('touchmove mousemove', function (e) {
      if (Drags.dragtag) {
        $(e.currentTarget).removeClass('animatedh');
        $(e.currentTarget).addClass('dragstart');  //添加禁止选择
        var change = 0;
        if (e.originalEvent.targetTouches) {
          change = e.originalEvent.targetTouches[0].pageX - Drags.dragx;
          changey = e.originalEvent.targetTouches[0].pageY - Drags.dragy;
        } else {
          change = e.pageX - Drags.dragx;
          changey = e.pageY - Drags.dragy;
        }
        if (Drags.dragstart) {
          if (Math.abs(changey) < 20) {
            showswiperfbn();
          }
        } else {
          showswiperfbn();
        }
        function showswiperfbn() {
          if (Math.abs(change) > 20) {
            Drags.dragstart = false;
            if (change < -20) {
              change = change + Drags.datatransx + 20;
            } else {
              change = change + Drags.datatransx - 20;
            }
            change = Math.min(Math.max(-300, change), 0);
            $(e.currentTarget).css('transform', 'translate3D(' + change + 'px,0px,0px)');
            $(e.currentTarget).attr("data-transX", change);
            disable_scroll();
          }
        }
      }
    })
    .on('touchend mouseup', function (e) {
      var left = parseInt($(e.currentTarget).attr("data-transX"));
      var new_left;
      if ($(e.currentTarget).hasClass("open")) {
        if (left > -110) {
          new_left = 0;
          $(e.currentTarget).removeClass('open');
        } else {
          new_left = -120;
        }
      } else {
        if (left < -20) {
          new_left = -120;
          $(e.currentTarget).addClass('open');
        } else {
          new_left = 0;
        }
      }
      $(e.currentTarget).removeClass('dragstart');
      $(e.currentTarget).css('transform', 'translate3D(' + new_left + 'px,0px,0px)');
      $(e.currentTarget).attr("data-transX", new_left);
      $(e.currentTarget).addClass('animatedh');
      Drags.dragtag = false;
      enable_scroll()
    });
}
function closeallswipe() {
  $('.pay-list .pay-each').css('transform', 'translate3D(0px,0px,0px)');
  $('.pay-list .pay-each').removeClass('open');
  $('.pay-list .pay-each').addClass('animatedh');
  $('.pay-list .pay-each').attr("data-transX", 0);
}

页面使用 执行mytouch($('.pay-list .pay-each'));

基于JS实现移动端左滑删除功能

总结

以上所述是小编给大家介绍的基于JS实现移动端左滑删除功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery中对表单的基本操作代码
Jul 29 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
Apr 19 Javascript
jQuery操作input type=radio的实现代码
Jun 14 Javascript
js实现select跳转菜单新窗口效果代码分享(超简单)
Aug 21 Javascript
浅谈Cookie的生命周期问题
Aug 02 Javascript
浅谈Web页面向后台提交数据的方式和选择
Sep 23 Javascript
微信小程序 教程之事件
Oct 18 Javascript
Sequelize中用group by进行分组聚合查询
Dec 12 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
Oct 31 Javascript
vue的列表交错过渡实现代码示例
May 05 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
May 07 Javascript
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
May 21 Javascript
Vue2.0 多 Tab切换组件的封装实例
Jul 28 #Javascript
webpack实现热更新(实施同步刷新)
Jul 28 #Javascript
BootStrap Fileinput上传插件使用实例代码
Jul 28 #Javascript
解决React Native端口号修改的方法
Jul 28 #Javascript
vue+vux实现移动端文件上传样式
Jul 28 #Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
Jul 28 #Javascript
vue使用vue-cli快速创建工程
Jul 28 #Javascript
You might like
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
php使用Jpgraph创建折线图效果示例
2017/02/15 PHP
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
Python实现竖排打印传单手机号码易撕条
2015/03/16 Python
Python对列表排序的方法实例分析
2015/05/16 Python
Python多进程机制实例详解
2015/07/02 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
python生成lmdb格式的文件实例
2018/11/08 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
使用Python实现跳一跳自动跳跃功能
2019/07/10 Python
Python实现时间序列可视化的方法
2019/08/06 Python
教你使用Canvas处理图片的方法
2017/11/28 HTML / CSS
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
应届生体育教师自荐信
2013/10/03 职场文书
阿德的梦教学反思
2014/02/06 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
2015年社区党务工作总结
2015/04/21 职场文书
2015年行政部工作总结
2015/04/28 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书
SQL中的连接查询详解
2022/06/21 SQL Server