移动手机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经典实用技巧18招

    以下是“CSS经典实用技巧18招”的完整攻略: CSS经典实用技巧18招 CSS是前端开发中不可或缺的一部分,掌握一些实用的CSS技巧可以提高开发效率和代码质量。以下是18个CSS经典实用技巧: 使用CSS Reset:使用CSS Reset可以消除浏览器默认样式,避免样式不一致的问题。 使用CSS预处理器:使用CSS预处理器可以提高CSS代码的可维护性和可…

    css 2023年5月18日
    00
  • css样式优先级及层叠的顺序排序探讨

    下面是关于“CSS样式优先级及层叠的顺序排序探讨”的完整攻略。 什么是CSS的层叠和优先级? CSS层叠的原理是将多个样式作用于同一元素时,将不同来源的样式进行比较,决定哪个样式具有最高的优先级。 CSS样式的优先级由以下3个要素决定,优先级从高到低分别是: !important:拥有最高的优先级; 行内样式:直接在标签内部使用style属性定义的样式; 选…

    css 2023年6月9日
    00
  • css 优先级关系

    CSS 优先级关系决定了当多个 CSS 规则同时作用于同一个元素时,哪一条 CSS 规则会被优先应用。具体来说,CSS 优先级关系是根据优先级值进行比较的,优先级值越大的 CSS 规则越具有优先权。下面我将一步步为您介绍 CSS 优先级关系的完整攻略。 一、优先级值的计算规则 优先级值是由选择器中的各个组成部分共同组成的。下面是各个部分的优先级值: 选择器部…

    css 2023年6月10日
    00
  • 纯CSS绘制三角形(各种角度)

    当我们需要在网页上绘制一个三角形时,最常见的做法可能是通过使用背景图片或者使用canvas实现。但实际上,我们也可以通过CSS代码轻松地绘制出三角形,最大的好处是避免了使用图片带来的额外的HTTP请求和页面大小增加,同时也更加灵活和可控。下面将详细介绍如何用CSS绘制三角形。 方法一:使用边框 CSS中,通过设置一个元素的边框,我们可以使得这个元素的边缘具有…

    css 2023年6月10日
    00
  • css的核心内容 标准流、盒子模型、浮动、定位等分析

    CSS(Cascading Style Sheets)是网页设计中不可或缺的一部分。在CSS中,我们需要了解一些核心内容才能更好地使用它。 标准流 标准流(Normal Flow)是CSS中最基本的元素布局方式。在标准流中,元素按照其在HTML文档中出现的顺序依次排列。块级元素从上到下排列,行内元素从左到右排列。元素的宽度默认为其包含的内容的宽度。 示例1:…

    css 2023年6月9日
    00
  • element-plus 在vue3 中不生效的原因解决方法(element-plus引入)

    问题背景:在 Vue3 项目中,使用 Element Plus UI 库,但是页面中没有任何样式和交互效果。 问题原因:Element Plus 中的部分功能依赖于 Vue2 的写法,与 Vue3 有所不符,因此导致了 Element Plus 在 Vue3 中不生效。 解决方法:需要以下两个步骤: 第一步:安装 Element Plus 库在项目根目录下打…

    css 2023年6月9日
    00
  • 纯css实现的颜色扇附图

    下面是“纯CSS实现的颜色扇附图”的完整攻略: 什么是“纯CSS实现的颜色扇附图” “纯CSS实现的颜色扇附图”指的是通过 CSS 技术实现的颜色扇形渐变图形效果,不需要使用任何 JavaScript 或者图片素材等外部资源。该效果可以应用于网站制作中的背景图、按钮、进度条等多种场景。 如何实现“纯CSS实现的颜色扇附图” 要实现“纯CSS实现的颜色扇附图”…

    css 2023年6月9日
    00
  • python3 selenium自动化测试 强大的CSS定位方法

    Python3 Selenium自动化测试强大的CSS定位方法 简介 Selenium是使用web驱动程序测试web应用程序的框架。Python3提供了Selenium库,使得复杂的web自动化测试变得容易。CSS定位是Selenium中最强大的定位方法之一。 CSS选择器 CSS选择器是CSS框架中用于选择元素的表达式。Selenium可以使用CSS选择器…

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