移动手机APP手指滑动切换图片特效附源码下载

移动手机APP手指滑动切换图片特效是一种常见的图片展示方式。本攻略将提供完整的实现教程和附带源码下载,让读者能够轻松实现该特效。

实现步骤

  1. 在 HTML 文件中添加 DOM 结构,其中包含图片容器和小圆点指示器:

    html
    <div class="slider">
    <div class="slider-wrapper">
    <img src="image1.jpg" alt="图片1" />
    <img src="image2.jpg" alt="图片2" />
    <img src="image3.jpg" alt="图片3" />
    <img src="image4.jpg" alt="图片4" />
    </div>
    <div class="slider-dots"></div>
    </div>

  2. 添加 CSS 样式,包括图片容器和指示器的样式:

    ```css
    .slider {
    position: relative;
    overflow: hidden;
    width: 100%;
    }

    .slider-wrapper {
    white-space: nowrap;
    transition: transform 300ms ease-out;
    display: flex;
    }

    .slider-wrapper img {
    width: 100%;
    }

    .slider-dots {
    position: absolute;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    }

    .slider-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, .5);
    margin-right: 10px;
    cursor: pointer;
    }

    .slider-dot.active {
    background-color: rgba(0, 0, 0, .8);
    }
    ```

  3. 添加 JavaScript 代码,实现手指滑动切换和指示器联动效果:

    ```javascript
    const slider = document.querySelector('.slider');
    const wrapper = document.querySelector('.slider-wrapper');
    const slides = Array.from(wrapper.children);
    const dots = document.querySelector('.slider-dots');
    const dotList = slides.map((_, index) => {
    const dot = document.createElement('div');
    dot.classList.add('slider-dot');
    if (index === 0) {
    dot.classList.add('active');
    }
    dots.appendChild(dot);
    return dot;
    });

    function moveToSlide(index) {
    wrapper.style.transform = translateX(-${index / slides.length * 100}%);
    dotList.forEach((dot, i) => {
    if(i === index) {
    dot.classList.add('active');
    } else {
    dot.classList.remove('active');
    }
    })
    }

    let curIndex = 0;
    let touchStartX = 0;
    let touchEndX = 0;
    slider.addEventListener('touchstart', (event) => {
    touchStartX = event.touches[0].clientX;
    })
    slider.addEventListener('touchend', (event) => {
    touchEndX = event.changedTouches[0].clientX;
    if (touchStartX - touchEndX > 50) {
    if (curIndex === slides.length - 1) {
    curIndex = 0;
    } else {
    curIndex++;
    }
    moveToSlide(curIndex);
    } else if (touchEndX - touchStartX > 50) {
    if (curIndex === 0) {
    curIndex = slides.length - 1
    } else {
    curIndex--;
    }
    moveToSlide(curIndex);
    }
    })
    ```

    代码分三个部分:第一部分是获取 DOM 对象;第二部分是根据图片数量生成指示器元素;第三部分是绑定触摸事件,实现手指滑动切换效果和联动指示器。

示例说明

以下是两个实例,分别展示了不同的图片展示效果:

示例1

实现水平滚动切换效果,类似于手机相册:

水平滑动切换效果示例

示例代码:https://codepen.io/easy-ly/pen/KKqaOzg

示例2

实现垂直滚动切换效果,类似于新闻头条:

垂直滑动切换效果示例

示例代码:https://codepen.io/easy-ly/pen/VwKmRxK

两个示例均使用上述的 HTML 结构和 JS 样式,仅修改了 CSS 样式实现了不同的滑动方向。读者可以根据需要自行修改 CSS 样式实现不同的图片展示效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:移动手机APP手指滑动切换图片特效附源码下载 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • CSS的相邻兄弟选择器用法简单讲解

    当我们需要选中文档中一个元素旁边的另一个元素时,就可以使用CSS的相邻兄弟选择器。相邻兄弟选择器用“+”符号表示,是紧跟在某个元素后的第一个指定元素。下面来详细讲解一下相邻兄弟选择器的用法。 语法规则: element1 + element2 element1: 要选择元素的前一个兄弟元素。 +: 选择前一个兄弟元素紧随的下一个兄弟元素。 element2:…

    css 2023年6月9日
    00
  • angularjs实现时间轴效果的示例代码

    下面就是“angularjs实现时间轴效果的示例代码”的完整攻略。 介绍 时间轴是一种常见的页面元素,可以用于展示时间流逝的进程。本文将介绍如何使用AngularJS实现时间轴效果。 步骤 1. 构建HTML模板 我们首先需要构建HTML模板,用于展示时间轴中的内容。示例中我们使用如下的HTML结构,其中.timeline代表整个时间轴,.timeline_…

    css 2023年6月9日
    00
  • vue中引入第三方字体文件的方法示例

    下面是关于Vue中引入第三方字体文件的方法的攻略详解。 1.引入Google Font字体 Google Font是一个在Web中可以免费使用的字体库,可以方便地让我们引入自己想要的各种字体。下面详细介绍如何在Vue中引入Google Font字体。 首先,我们需要在html文件中引入Google Font的链接地址,具体代码如下: <link hre…

    css 2023年6月10日
    00
  • velocity.js实现页面滚动切换效果

    下面我将为您讲解如何使用velocity.js实现页面滚动切换效果。 Velocity.js简介 Velocity.js是一款轻巧、高速的Javascript动画库,拥有优秀的性能表现和兼容性。它使用CSS样式作为动画的起点和终点,从而可以轻松地实现复杂的交互动画效果。Velocity还拥有很多进阶的功能,比如支持SVG、滚动等等,可以说是一款非常优秀的动画…

    css 2023年6月10日
    00
  • IE下background背景图片无法显示问题解决方法

    IE下background背景图片无法显示问题解决方法 问题描述 在开发网页时,经常会遇到在IE浏览器下,使用CSS样式添加的background背景图片无法显示的问题。这个问题困扰了很多开发者,本文将提供解决方法。 解决方法 1. 去掉路径中的引号 首先,应该检查CSS文件中的背景图片路径是否正确。然后,应该尝试去掉路径中的引号,具体方法如下: backg…

    css 2023年6月9日
    00
  • 一行css代码解决图片统一大小后的拉伸问题(object-fit)

    下面就是关于“一行css代码解决图片统一大小后的拉伸问题(object-fit)”的完整攻略。 什么是object-fit 在处理图片布局的过程中,当要将不同尺寸的图片展示在同一个容器中时,会因为图片的不同宽高比例,而出现拉伸或压缩的情况,导致显示效果不够美观。而object-fit属性可以帮助我们解决这个问题,它可以通过自动调整图片的大小,让之适应他们的容…

    css 2023年6月10日
    00
  • CSS3中的常用选择器使用示例整理

    让我来详细解释一下“CSS3中的常用选择器使用示例整理”的完整攻略。 简介 在CSS3中,选择器是定义样式的重要组成部分。除了基本的元素选择器和类选择器外,CSS3还提供了许多新的选择器,比如属性选择器、伪类选择器等等。这些选择器可以极大地简化样式的编写过程,提高开发效率。 常用选择器示例 类选择器 类选择器是CSS中最基础的选择器之一,它使用class属性…

    css 2023年6月9日
    00
  • calc()实现满屏背景定宽内容

    要实现“calc()实现满屏背景定宽内容”的效果,需要进行如下步骤: 1. 使用calc()计算内容区域宽度 我们可以使用calc()进行宽度计算,计算的公式为:100% – 定宽内容区域宽度。例如,如果我们需要固定内容区域宽度为800px,那么公式就是:calc(100% – 800px)。 2. 设置内容区域的宽度 使用上一步计算好的数值,将其作为内容区…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部