前端知识笔记(十八)———页面首次滑动不可返回

简介: 前端知识笔记(十八)———页面首次滑动不可返回

移动端的一个常见的功能

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title></title>
    <style>
      .slider-container {
        width: 100%;
        overflow: hidden;
      }
      .slider-wrapper {
        display: flex;
        width: 200%;
        transition: transform 0.3s ease-in-out;
      }
      img {
        width: 50%;
        height: auto;
      }
    </style>
  </head>
  <body>
    <div class="slider-container">
      <div class="slider-wrapper">
        <img src="./img/641.png" alt="Image 1">
        <img src="./img/641.png" alt="Image 2">
      </div>
    </div>
    <script>
      var container = document.querySelector('.slider-container');
      var wrapper = document.querySelector('.slider-wrapper');
      var images = document.querySelectorAll('.slider-wrapper img');
      var imageWidth = images[0].clientWidth;
      var currentIndex = 0;
      // 监听手势滑动事件
      container.addEventListener('touchstart', handleTouchStart);
      container.addEventListener('touchmove', handleTouchMove);
      container.addEventListener('touchend', handleTouchEnd);
      var startX = 0;
      var currentX = 0;
      var threshold = 50; // 滑动触发切换的阈值
      function handleTouchStart(event) {
        startX = event.touches[0].clientX;
      }
      function handleTouchMove(event) {
        currentX = event.touches[0].clientX;
        var diffX = currentX - startX;
        // 根据手指滑动的距离实时更新图片容器的位置
        wrapper.style.transform = `translateX(${-currentIndex * imageWidth + diffX}px)`;
      }
      function handleTouchEnd() {
        var diffX = currentX - startX;
        // 根据滑动的距离和阈值判断应该切换到上一张或下一张图片
        if (diffX < -threshold && currentIndex < images.length - 1) {
          currentIndex++;
        }
        // 切换图片容器的位置到指定索引对应的图片
        wrapper.style.transform = `translateX(${-currentIndex * imageWidth}px)`;
        // 重置滑动变量
        startX = 0;
        currentX = 0;
      }
    </script>
  </body>
</html>
相关文章
|
3月前
|
开发框架 前端开发 JavaScript
循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查询,列表展示和字段转义处理
循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查询,列表展示和字段转义处理
|
3月前
|
前端开发 JavaScript Java
基于Vue+ElementUI框架实现学生管理系统前端页面设计
基于Vue+ElementUI框架实现学生管理系统前端页面设计
|
10天前
|
前端开发 JavaScript API
前端JS读取文件内容并展示到页面上
前端JavaScript使用FileReader API读取文件内容,支持文本类型文件。在文件读取成功后,可以通过onload事件处理函数获取文件内容,然后展示到页面上。
15 2
前端JS读取文件内容并展示到页面上
|
21天前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
2月前
|
开发框架 前端开发 Java
【前端学java】SpringBootWeb极速入门-实现一个简单的web页面01
【8月更文挑战第12天】SpringBootWeb极速入门-实现一个简单的web页面01
53 3
【前端学java】SpringBootWeb极速入门-实现一个简单的web页面01
|
9天前
|
前端开发 JavaScript
前端基础(一)_前端页面构成
本文介绍了前端页面的基本构成,包括HTML(负责页面的结构和语义)、CSS(负责页面的样式和表现)和JavaScript(负责页面的行为和动态效果)。文章通过示例代码展示了如何使用这三种技术来创建一个简单的网页,并解释了HTML文档的结构和语法。
17 0
|
3月前
|
开发框架 前端开发 JavaScript
循序渐进VUE+Element 前端应用开发(4)--- 获取后端数据及产品信息页面的处理
循序渐进VUE+Element 前端应用开发(4)--- 获取后端数据及产品信息页面的处理
|
3月前
|
存储 监控 前端开发
通用研发提效问题之前端页面高效支撑如何解决
通用研发提效问题之前端页面高效支撑如何解决
|
2月前
|
监控 前端开发 数据挖掘
微店商品详情数据接口:接入淘宝代购系统的连接桥梁,展示前端页面
微店API让开发者获取商品详尽信息,如名称、价格等。作为淘宝代购系统的桥梁,它支持数据同步、商品及订单管理。通过多平台API,实现实时商品数据抓取,提供一致购物流程。此外,还能进行价格比较、库存监控,提升用户交互体验,并辅助数据分析以优化采购策略。开发者需按规范对接API,并参考官方文档获取最新信息。
|
2月前
|
存储 前端开发 JavaScript
前端语言串讲 | 青训营笔记
前端语言串讲 | 青训营笔记
30 0
下一篇
无影云桌面