首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

手机滑动删除js touch

在移动开发中,实现类似手机上的“滑动删除”功能,通常会用到 JavaScript 的 Touch 事件。以下是关于这个问题的基础概念、优势、类型、应用场景以及实现方法的详细解答:

基础概念

Touch 事件:是移动设备上用于检测用户触摸行为的事件,包括 touchstarttouchmovetouchend 等。

滑动删除:用户通过在屏幕上滑动某个元素来触发删除操作。

优势

  1. 提升用户体验:滑动删除提供了一种直观且快捷的方式来删除列表项。
  2. 节省屏幕空间:不需要额外的按钮来触发删除操作。

类型

  1. 水平滑动删除:最常见的类型,用户向左或向右滑动来删除。
  2. 垂直滑动删除:较少见,但也可以实现,用户向上或向下滑动来删除。

应用场景

  • 消息列表:删除单条消息。
  • 任务列表:标记任务为完成或删除。
  • 联系人列表:删除联系人。

实现方法

以下是一个简单的示例代码,展示如何使用 JavaScript 和 CSS 实现水平滑动删除功能:

HTML

代码语言:txt
复制
<ul class="list">
  <li class="list-item">
    <div class="content">Item 1</div>
    <div class="delete">Delete</div>
  </li>
  <li class="list-item">
    <div class="content">Item 2</div>
    <div class="delete">Delete</div>
  </li>
</ul>

CSS

代码语言:txt
复制
.list {
  list-style: none;
  padding: 0;
}

.list-item {
  position: relative;
  overflow: hidden;
}

.content {
  position: relative;
  z-index: 1;
  background-color: #fff;
  padding: 15px;
}

.delete {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100px;
  background-color: #ff4d4f;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateX(100%);
  transition: transform 0.3s ease;
}

JavaScript

代码语言:txt
复制
document.querySelectorAll('.list-item').forEach(item => {
  let startX = 0;
  let currentX = 0;

  item.addEventListener('touchstart', e => {
    startX = e.touches[0].clientX;
  });

  item.addEventListener('touchmove', e => {
    currentX = e.touches[0].clientX;
  });

  item.addEventListener('touchend', () => {
    const deltaX = currentX - startX;
    if (deltaX > 50) {
      item.querySelector('.delete').style.transform = 'translateX(0)';
    } else {
      item.querySelector('.delete').style.transform = 'translateX(100%)';
    }
  });
});

解决常见问题

  1. 滑动不流畅:可以通过优化 CSS 过渡效果和减少 JavaScript 计算来提高性能。
  2. 误触:可以设置一个最小滑动距离阈值,只有超过这个距离才触发删除操作。

通过以上方法,你可以实现一个基本的滑动删除功能,并根据具体需求进行调整和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • listview滑动删除

    今天还是给大家带来自定义控件的编写,自定义一个ListView的左右滑动删除Item的效果,这个效果之前已经实现过了,有兴趣的可以看下Android 使用Scroller实现绚丽的ListView左右滑动删除...Item效果,之前使用的是滑动类Scroller来实现的,但是看了下通知栏的左右滑动删除效果,确实很棒,当我们滑动Item超过一半的时候,item的透明度就变成了0,我们就知道抬起手指的时候item就被删除了...,当item的透明度不为0的时候,我们抬起手指Item会回到起始位置,这样我们就知道拖动到什么位置item会删除,什么位置Item不删除,用户体验更好了,还有一个效果,就是我们滑动删除了item的时候,...   public void onDismiss(int dismissPosition);       }   }   看过Android 使用Scroller实现绚丽的ListView左右滑动删除...好了,今天的讲解到这里结束了,有了NineOldAndroids我们可以在2.x的手机上面实现许多复杂的动画效果,文章也介绍了关于开源库NineOldAndroids使用的一些知识,文章有点长,希望读者还是先将文章看下

    1.8K70

    touch.js的使用总结

    Touch 手机端的操作 基本事件: touchstart  //手指刚接触屏幕时触发 touchmove    //手指在屏幕上移动时触发 touchend     //手指从屏幕上移开时触发 touchcancel...  //触摸过程被系统取消时触发(少用) 一、事件绑定 touch.on(element,types,callback); 参数描述: element   element或string    元素对象、...缩放手势起点 pinchend缩放手势终点 pinch缩放手势 pinchin收缩 pinchout放大 2、旋转 rotateleft向左旋转 rotateright向右旋转 rotate旋转 3、滑动...swipestart滑动手势起点 swiping滑动中 swipeend滑动手势终点 swipeleft向左滑动 swiperight向右滑动 swipeup向上滑动 swipedown向下滑动 swipe...滑动 4、拖动 拖动开始    dragstart拖动屏幕 拖动           drag拖动手势 拖动结束     dragend拖动屏幕 5、长按 hold    长按屏幕 6、敲击 tap单击屏幕

    1.8K10

    JS中的touch事件与canvas绘图

    不管有多少个手指放在了屏幕上,只要再触摸一下屏幕就会触发 touchmove:当手指在屏幕上滑动的时候触发该是事件,在这期间可以通过event.preventDefault()来阻止滚动 touchend...用两个手指同时接触屏幕,此时changedTouches有两个值,每一个手指的触摸点都有一个值 手指滑动时,三个值都会发生变化 一个手指离开屏幕,touches和targetTouches中对应的元素会同时移除...Touch对象属性 所有属性均为只读属性。 Touch.identifier 此 Touch 对象的唯一标识符. 一次触摸动作(我们指的是手指的触摸)在平面上移动的整个过程中, 该标识符不变....Touch.screenX 触点相对于屏幕左边沿的的X坐标. Touch.screenY 触点相对于屏幕上边沿的的Y坐标...., Touch.radiusY, 和 Touch.rotationAngle 描述了用户和触摸平面的接触面.

    7.6K41

    用于H5的移动开发框架

    框架   Sencha Touch框架是世界上第一个基于HTML5的Mobile App框架。...Sencha Touch可以让你的Web App看起来像Native App。...每种侧滑实现模式,有不同的侧滑动画效果,主要分为四类:   动画1:主界面移动、菜单不动   动画2:主界面不动、菜单移动   动画3:主界面和菜单同时移动   动画4:缩放式侧滑(类手机QQ)   •...滑动触发操作菜单   在手机应用中(特别是iOS平台),很多操作菜单都是滑动触发的,比如短信界面,左滑显示“删除”按钮,点击可以删除该短信对话;邮件列表界面,左滑可以删除,右滑可以标注为"已读/未读..."状态; mui的列表控件也支持滑动触发操作菜单功能,仅需按照特定格式拼装DOM结构即可;另外,滑动还支持事件触发,开发者可以通过监听滑动事件(slideleft/slideright),完成操作前的确认提醒工作

    5.1K40

    用于H5的移动开发框架

    框架   Sencha Touch框架是世界上第一个基于HTML5的Mobile App框架。...Sencha Touch可以让你的Web App看起来像Native App。...每种侧滑实现模式,有不同的侧滑动画效果,主要分为四类:   动画1:主界面移动、菜单不动   动画2:主界面不动、菜单移动   动画3:主界面和菜单同时移动   动画4:缩放式侧滑(类手机QQ)   •...滑动触发操作菜单   在手机应用中(特别是iOS平台),很多操作菜单都是滑动触发的,比如短信界面,左滑显示“删除”按钮,点击可以删除该短信对话;邮件列表界面,左滑可以删除,右滑可以标注为"已读/未读..."状态; mui的列表控件也支持滑动触发操作菜单功能,仅需按照特定格式拼装DOM结构即可;另外,滑动还支持事件触发,开发者可以通过监听滑动事件(slideleft/slideright),完成操作前的确认提醒工作

    4.9K10
    领券