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

发布时间 - 2026-01-11 02:33:14    点击率:

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

<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实现移动端左滑删除  # 基于JS实现移动端向左滑动出现删除按钮功能  # js仿QQ中对联系人向左滑动、滑出删除按钮的操作  # NodeJs的fs读写删除移动监听  # JavaScript实现删除  # 移动和复制文件的方法  # 给大家  # 拖动  # 小编  # 在此  # 说了  # 不多  # 所示  # 所述  # 给我留言  # 感谢大家  # 疑问请  # 有任何  # line  # GetSubstr  # middle  # span  # vertical  # align  # Title  # onclick 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  青岛网站建设如何选择本地服务器?  深入理解Android中的xmlns:tools属性  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  Android GridView 滑动条设置一直显示状态(推荐)  微信h5制作网站有哪些,免费微信H5页面制作工具?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  网站制作软件有哪些,制图软件有哪些?  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  新三国志曹操传主线渭水交兵攻略  如何在云主机快速搭建网站站点?  利用vue写todolist单页应用  如何彻底删除建站之星生成的Banner?  如何在宝塔面板创建新站点?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  如何快速搭建高效WAP手机网站?  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  PythonWeb开发入门教程_Flask快速构建Web应用  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  如何在景安云服务器上绑定域名并配置虚拟主机?  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  如何为不同团队 ID 动态生成多个独立按钮  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  php485函数参数是什么意思_php485各参数详细说明【介绍】  如何在香港免费服务器上快速搭建网站?  用v-html解决Vue.js渲染中html标签不被解析的问题  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  html5的keygen标签为什么废弃_替代方案说明【解答】  如何在企业微信快速生成手机电脑官网?  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Python图片处理进阶教程_Pillow滤镜与图像增强  Laravel如何使用Eloquent进行子查询  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  香港网站服务器数量如何影响SEO优化效果?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  bing浏览器学术搜索入口_bing学术文献检索地址  打造顶配客厅影院,这份100寸电视推荐名单请查收  如何用VPS主机快速搭建个人网站?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?