js移动端页面判断左右滑动事件

博客介绍了通过监听touchstart和touchmove事件,比较初始与结束时的x、y轴坐标来判断左右滑动的实现原理。还提到直接使用代码时控制台会报错,在样式文件里添加内容可解决问题,并给出原文档地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现原理:通过监听touchstart事件获取,初始的x轴、y轴坐标,在通过监听touchmove事件,获取结束时候的x轴、y轴坐标,他通过初始值与结束值比较,判断是左滑还是右滑。
代码:

var windowHeight = $(window).height(),
      $body = $("body");
      $body.css("height", windowHeight); //重要代码
      $("body").on("touchstart", function(e) {
        e.preventDefault();
        startX = e.originalEvent.changedTouches[0].pageX,
        startY = e.originalEvent.changedTouches[0].pageY;
      });
      $("body").on("touchmove", function(e) {
        e.preventDefault();
        moveEndX = e.originalEvent.changedTouches[0].pageX,
        moveEndY = e.originalEvent.changedTouches[0].pageY,
        X = moveEndX - startX,
        Y = moveEndY - startY;

        if ( Math.abs(X) > Math.abs(Y) && X > 0 ) {
          alert("left 2 right");
        }
        else if ( Math.abs(X) > Math.abs(Y) && X < 0 ) {
          alert("right 2 left");
        }
        else if ( Math.abs(Y) > Math.abs(X) && Y > 0) {
          alert("top 2 bottom");
        }
        else if ( Math.abs(Y) > Math.abs(X) && Y < 0 ) {
          alert("bottom 2 top");
        }
        else{
          alert("just touch");
        }
      });

直接使用时,控制台活报错
在这里插入图片描述
这个时候在样式文件里面加入:

    * {
        touch-action: pan-y;
    }

就解决了

原文档地址为:https://www.cnblogs.com/lijuntao/p/6479972.html

### 回答1: 移动端块级标签左右滑动可以通过以下步骤实现: 1. 给外层容器设置固定宽度和 `overflow-x: scroll`,使其可以水平滚动。 2. 内部的块级标签可以使用 `display: inline-block` 或 `float: left` 等样式让它们排列在一行。 3. 如果需要添加动效果,可以使用 JavaScript 监听 touch 事件,根据手指移动的距离调整容器的 `scrollLeft` 值,实现左右滑动的效果。 以下是一个示例代码: HTML: ``` <div class="wrapper"> <div class="block">Block 1</div> <div class="block">Block 2</div> <div class="block">Block 3</div> <div class="block">Block 4</div> <div class="block">Block 5</div> </div> ``` CSS: ``` .wrapper { width: 100%; overflow-x: scroll; white-space: nowrap; /* 让内部块级标签在一行中排列 */ } .block { display: inline-block; width: 100px; height: 100px; background-color: #ccc; } ``` JavaScript: ``` var wrapper = document.querySelector('.wrapper'); var startX, startY, moveX, moveY, distanceX, distanceY; wrapper.addEventListener('touchstart', function(e) { startX = e.touches[0].pageX; startY = e.touches[0].pageY; }); wrapper.addEventListener('touchmove', function(e) { moveX = e.touches[0].pageX; moveY = e.touches[0].pageY; distanceX = moveX - startX; distanceY = moveY - startY; if (Math.abs(distanceX) > Math.abs(distanceY)) { // 判断是水平动还是垂直动 e.preventDefault(); // 阻止默认事件,使页面不会滚动 wrapper.scrollLeft -= distanceX; // 调整容器的 scrollLeft 值 } }); ``` ### 回答2: 移动端块级标签左右滑动是指在移动设备上,通过手指动屏幕实现对块级标签的左右滑动操作。 实现移动端块级标签左右滑动有多种方式,以下是其中一种常见的实现方法: 首先,需要使用HTML和CSS创建一个具有滚动效果的容器,容器内放置需要左右滑动的块级标签。 其次,使用JavaScript监听触摸事件,并根据手指动的方向和距离,改变容器内块级标签的位置。 具体实现步骤如下: 1. HTML布局部分,创建一个div容器,设置样式为可滚动,并放置需要左右滑动的块级标签。例如: <div class="scroll-container"> <div class="scroll-content"> <!-- 块级标签内容 --> </div> </div> 2. CSS样式部分,对容器和块级标签进行样式设置,其中.scroll-container需要设置overflow属性为scroll或auto以实现滚动效果。 .scroll-container { overflow: scroll; } .scroll-content { /* 块级标签样式设置 */ } 3. JavaScript部分,监听触摸事件,并根据手指动的方向和距离,改变.scroll-container容器的滚动位置。例如: var container = document.querySelector('.scroll-container'); var startX; // 初始触摸位置 container.addEventListener('touchstart', function(e) { startX = e.touches[0].clientX; // 记录初始触摸位置 }); container.addEventListener('touchmove', function(e) { var moveX = e.touches[0].clientX; // 移动时的触摸位置 var distanceX = moveX - startX; // 动距离 // 根据动距离改变.scroll-container容器的滚动位置 container.scrollLeft -= distanceX; e.preventDefault(); // 阻止默认事件,避免页面滚动 }); 通过以上步骤实现了移动端块级标签的左右滑动效果。可以根据实际需求进行样式和交互的调整。 ### 回答3: 移动端块级标签左右滑动是指在移动设备上,通过手指动屏幕实现块级标签的切换或滚动效果。 要实现移动端块级标签左右滑动,可以使用一些现有的前端框架或库,如Swiper、Slick等。这些框架提供了丰富的API和功能,可以方便地实现移动端块级标签的左右滑动效果。 首先,需要将块级标签按照一定的布局方式排列,并提供导航按钮或指示器来切换不同的块级标签。在HTML文件中,可以使用div元素来包裹每个块级标签,并设置合适的CSS样式,使它们水平排列。 然后,使用JavaScript来实现动效果。通过绑定事件,监听用户手指在屏幕上的动方向和距离,根据动的方向来切换不同的块级标签。可以使用一些原生的JavaScript方法,如touchstart、touchmove、touchend等来实现手势的监听和处理。 当用户动屏幕时,可以通过计算手指动的距离和动的方向,来判断是否切换到下一个或上一个块级标签。在切换过程中,可以使用CSS3动画或过渡效果,来实现流畅的动过程。 此外,为了提高用户体验,可以为移动端块级标签左右滑动添加一些特效和动画效果。比如,在切换到下一个块级标签时,可以使用渐变效果或动动画,使切换过程更加平和自然。 总之,移动端块级标签的左右滑动可以通过使用前端框架或库以及一些JavaScript和CSS技术来实现,提供给用户更加流畅和友好的交互体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值