js侧滑显示删除按钮

news2024/9/22 7:40:22

效果图:
在这里插入图片描述

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <title>js侧滑显示删除按钮</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    html,
    body {
      height: 100%;
      font-size: .14rem;
      background: #e9e9e9;
    }

    li {
      list-style: none;
    }

    i {
      font-style: normal;
    }

    a {
      color: #393939;
      text-decoration: none;
    }
    .list_box{
      overflow: auto;
      height: 92vh;
    }
    .list {
      overflow: hidden;
      margin-top: .2rem;
      margin: .3rem;
    }

    .list .list_img {
      width: 1.8rem;
      height: 1.8rem;
      float: left;
      background: #000;
    }

    .list li {
      overflow: hidden;
      width: 128%;
      height: 1.8rem;
      border-bottom: 1px solid #eee;
      background: #fff;
      /* padding-left: 0.2rem; */
    }

    .list li a {
      display: block;
      height: 1.4rem;
      /* line-height: 1.4rem; */
      -webkit-transition: all 0.3s linear;
      transition: all 0.3s linear;
    }

    .list li i {
      float: right;
      width: 1.8rem;
      height: 1.9rem;
      line-height: 1.9rem;
      background: #E2421B;
      color: #fff;
      text-indent: 0.38rem;
    }

    .swipeleft {
      transform: translateX(-15%);
      -webkit-transform: translateX(-15%);
    }

    .top_box {
      height: 0.9rem;
      display: flex;
      justify-content: space-around;
      align-items: center;
      background: #fff;
    }

    .top_box span {
      display: inline-block;
      height: 0.8rem;
      line-height: 0.8rem;
      padding: 0 2px;
      font-family: Microsoft Yahei, sans-serif;
      font-size: 14px;

    }

    .text_size {
      float: left;
      width: 55%;
      font-size: 14px;
      padding: 10px 5px 0 5px;
    }

    .text_size .span {
      width: 100%;
      display: inline-block;
      font-weight: bold;
      overflow: hidden;
      text-overflow: ellipsis;
      /* 将对象作为弹性伸缩盒子模型显示 */
      display: -webkit-box;
      /* 限制在一个块元素显示的文本的行数 */
      /* -webkit-line-clamp 其实是一个不规范属性,使用了WebKit的CSS扩展属性,该方法适用于WebKit浏览器及移动端;*/
      -webkit-line-clamp: 2;
      /* 设置或检索伸缩盒对象的子元素的排列方式 */
      -webkit-box-orient: vertical;
    }

    .text_size p {
      padding-top: 10px;
    }
  </style>
  <script>
    //计算根节点HTML的字体大小
    function resizeRoot() {
      var deviceWidth = document.documentElement.clientWidth,
        num = 750,
        num1 = num / 100;
      if (deviceWidth > num) {
        deviceWidth = num;
      }
      document.documentElement.style.fontSize = deviceWidth / num1 + "px";
    }
    //根节点HTML的字体大小初始化
    resizeRoot();

    window.onresize = function () {
      resizeRoot();
    };
  </script>
</head>

<body>
  <div class="top_box">
    <span class="top_box_l">商品收藏</span>
    <span class="top_box_r" style="border-bottom: 2px solid red;">积分商品收藏</span>
  </div>
  <div class="list_box">
    <div class="list">
      <ul>
        <li>
          <a href="#">
            <div class="list_img">
              <img src="https://wanfeng-images.oss-cn-hangzhou.aliyuncs.com/fileupload/20220427/165104494531186.jpg"
                alt="" style="width:100%;height:100%;">
            </div>
            <div class="text_size">
              <span class="span">
                晚峰书屋清明上河图书签中国风创意古风纸质纪念品礼品制作小礼物
              </span>
              <p>
                <span style="text-decoration: line-through;color: #a5a5a5;
              font-size: 12px;">1.00</span> <span style="display: inline-block;color: #333;font-size: 14px;
              padding-left: 5px;font-weight: bold;">580积分+¥48.00</span>
              </p>
            </div>
            <i>删除</i>
          </a>
        </li>
      </ul>
      <p style="text-align: center;padding:15px 0;">没有更多内容了</p>
    </div>
  </div>
  <script>
    //侧滑显示删除按钮
    var expansion = null; //是否存在展开的list
    var container = document.querySelectorAll('.list li a');
    for (var i = 0; i < container.length; i++) {
      var x, y, X, Y, swipeX, swipeY;
      container[i].addEventListener('touchstart', function (event) {
        x = event.changedTouches[0].pageX;
        y = event.changedTouches[0].pageY;
        swipeX = true;
        swipeY = true;
        if (expansion) {   //判断是否展开,如果展开则收起
          expansion.className = "";
        }
      });
      container[i].addEventListener('touchmove', function (event) {

        X = event.changedTouches[0].pageX;
        Y = event.changedTouches[0].pageY;
        // 左右滑动
        if (swipeX && Math.abs(X - x) - Math.abs(Y - y) > 0) {
          // 阻止事件冒泡
          event.stopPropagation();
          if (X - x > 10) {   //右滑
            event.preventDefault();
            this.className = "";    //右滑收起
          }
          if (x - X > 10) {   //左滑
            event.preventDefault();
            this.className = "swipeleft";   //左滑展开
            expansion = this;
          }
          swipeY = false;
        }
        // 上下滑动
        if (swipeY && Math.abs(X - x) - Math.abs(Y - y) < 0) {
          swipeX = false;
        }
      });
    }
  </script>
</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/377590.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

堡垒机采购注意事项说明

随着各大企业对数据安全的高度重视&#xff0c;堡垒机作为基础数据安全产品&#xff0c;被采购的也越来越多。但面对是棉厂众多的堡垒机品牌&#xff0c;采购者往往很蒙圈。这里我们行云管家小编就给大家汇总说明了几点堡垒机采购注意事项&#xff0c;希望对大家有用。 堡垒机…

在中外合作办学硕士领域似乎自己一直在纠结,也许是为了能遇见人大女王金融硕士

2023考研成绩如期而至&#xff0c;还记得考试时的一幕幕吗&#xff1f;在身体被高热侵蚀的情况下&#xff0c;我们似乎很难忘记这次考试所带给我们的经历。如今成绩下来了&#xff0c;可能与我们预期的几乎相同&#xff0c;但是在不断地寻找新的学习途径的过程中我们发现&#…

字节跳动青训营--Webpack

文章目录前言一、为什么要学习Webpack&#xff1f;二、什么是Webpack&#xff1f;1. 产生背景2. 基础概念三、使用Webpack1. 安装2. 编辑配置文件3. 执行编译命令核心流程四、如何使用Webpack流程类配置配置总览五、理解Loader六、理解插件插件钩子课外关注资料前言 此文章仅用…

华为OD机试题,用 Java 解【特异性双端队列】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

I.MX6ULL内核开发12:使用设备树插件实现RGB灯驱动

目录 一、引言 二、设备树插件格式 三、实验说明 四、实验准备 4.1 通过内核工具编译设备树插件 五、实验效果 5.1 uboot加载 5.2 加载RGB驱动 一、引言 Linux4.4以后引入了动态设备树&#xff08;Dynamic DevicesTree&#xff09;&#xff0c;这里翻译位“设备树插件…

【C++ | bug | 运算符重载】定义矩阵(模板)类时,使用 “友元函数” 进行 * 运算符重载时编译报错

作者&#xff1a;非妃是公主 专栏&#xff1a;《C》 博客地址&#xff1a;https://blog.csdn.net/myf_666 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录专栏推荐一、类的声明及函数定义二、错误信息三、问题…

MySQL数据库操作

查看数据库语法show databases——列出所有的数据库 show databases [ like wild ];——列出和字符串wild名字相同的数据库 这里可以配合SQl的 "%" 和 "_" 通配符使用来查找多个数据库在SQL语句中"%"代表任意字符出现任意次数,"_"代表…

无代码资讯 | 《低代码开发平台能力要求》发布;CADP列入Gartner《2022-2024 中型企业技术采用路线图》

栏目导读&#xff1a;无代码资讯栏目从全球视角出发&#xff0c;带您了解无代码相关最新资讯‍。TOP3 大事件1、《低代码开发平台能力要求》团体标准正式发布近日&#xff0c;中国电子工业标准化协会发布公告&#xff08;中电标【2022】037 号&#xff09;&#xff0c;由中国电…

Mysql数据查询

文章目录1 group by子句2 回溯统计3 having子句1 group by子句 group by子句**&#xff1a;分组统计&#xff0c;根据某个字段将所有的结果分类&#xff0c;并进行数据统计分析 分组的目的不是为了显示数据&#xff0c;一定是为了统计数据group by子句一定是出现在where子句之…

代码随想录算法训练营day45 |动态规划之背包问题 70. 爬楼梯 (进阶) 322. 零钱兑换 279.完全平方数

day4570. 爬楼梯 &#xff08;进阶&#xff09;1. 确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例来推导dp数组322. 零钱兑换1. 确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组279.完全平方数1. 确…

讯鸿喜讯丨民建广州市委科技与信息化委员会莅临讯鸿

2023年2月17日&#xff0c;民建广州市委科技与信息化委员会成员莅临广州讯鸿网络技术有限公司&#xff08;以下简称讯鸿网络&#xff09;&#xff0c;举办首期“星五分享汇”活动&#xff0c;并召开2023年第一次全体委员会议。此次活动主要围绕科技与信息化等领域的前沿、热点问…

防范网络钓鱼仍然很重要!

在众多网络攻击中&#xff0c;网络钓鱼可以说是攻击者最喜欢使用的攻击手段之一。据《2022年数据泄露成本报告》显示&#xff0c;网络钓鱼已成为数据泄露的第二大方式&#xff0c;占比达16%&#xff0c;给受访组织造成高达491万美元的泄露成本。钓鱼者可以攻击任何在线服务中的…

ProtoEditor - 如何在Unity中实现一个Protobuf通信协议类编辑器

文章目录简介Protobuf 语法规则Proto Editor实现创建窗口定义类、字段增删类编辑字段导入、导出Json文件生成.proto文件生成.bat文件简介 在Socket网络编程中&#xff0c;假如使用Protobuf作为网络通信协议&#xff0c;需要了解Protobuf语法规则、编写.proto文件并通过编译指令…

【编程思想】计算机领域的所有问题都可以通过增加一个间接的中间层来解决

文章目录计算机领域的所有问题都可以通过增加一个间接的中间层来解决一、间接中间层可以解决计算机领域的问题二、操作系统如何通过间接中间层解决计算机问题三 结论七层网络协议中体现的分层思想概述物理层数据链路层网络层传输层会话层表示层应用层代码实例计算机存储体系设计…

回归预测 | MATLAB实现GRU(门控循环单元)多输入单输出(多指标评价)

回归预测 | MATLAB实现GRU(门控循环单元)多输入单输出(多指标评价) 文章目录 回归预测 | MATLAB实现GRU(门控循环单元)多输入单输出(多指标评价)预测效果基本介绍程序设计参考资料预测效果 基本介绍 GRU神经网络是LST

git学习记录/菜鸟教程(基于Gitcode)

首先说明下为何使用Gitcode而不是hub或lab&#xff1a;只是因为国外的网站访问太慢了&#xff0c;而且还要翻译从初次使用开始说&#xff1a;首先安装Git&#xff0c;一路next就可以&#xff0c;安装好后打开&#xff0c;输入git version如果有显示版本号&#xff0c;说明安装成…

操作系统——9.进程控制

这篇文章&#xff0c;我们主要来讲一下操作系统中的进程控制功能 目录 1.概述 2.进程控制的定义 3.进程控制的实现 4.进程控制相关的原语 ​编辑​编辑​编辑​编辑5. 小结 1.概述 首先&#xff0c;我们一起来看一下这篇文章内容的大体框架&#xff1a; 2.进程控制的定…

MongoDB 类replace替换字符串指定内容

目录 需求介绍 技术分析 技术积累 1、replaceOne 语法 2、javascript语法 实战演示 1、查询满足条件的数据 2、在mongodb语法中融入javascript语法并执行 3、查看刚刚被修改的数据 需求介绍 根据业务发展&#xff0c;现在需要对已经存在的数据进行处理&#xff0c;需…

在线安装ESP32和ESP8266 Arduino开发环境

esp32和esp8266都是乐鑫科技开发的单片机产品&#xff0c;esp8266价格便宜开发板只需要十多块钱就可以买到&#xff0c;而esp32是esp8266的升级版本&#xff0c;比esp8266的功能和性能更强大&#xff0c;开发板价格大约二十多元就可以买到。 使用Arduino开发esp32和esp8266需要…

并发replace操作导致的死锁问题

背景 批量对一张表进行replace into操作&#xff0c;每个SQL操作1000条数据&#xff0c;最近有同事反馈使用并发replace操作的时候&#xff0c;遇到了死锁的问题。针对这个问题&#xff0c;我看了看表的结构&#xff0c;发现表中有一个主键&#xff0c;一个唯一索引&#xff0c…