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

yizhihongxing

移动手机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日

相关文章

  • 一个刚完成的layout(拖动流畅,不受iframe影响)

    实现一个拖动流畅、不受iframe影响的layout,可以采用以下方法: Step 1:在页面中添加待拖拽元素 首先,需要在页面中添加待拖拽的元素,可以使用HTML的 <div> 元素来作为待拖拽元素的容器。在待拖拽元素中,需要使用CSS样式设置元素的 position 为 absolute 或者 fixed,并设置元素的 left 和 top …

    css 2023年6月10日
    00
  • CSS省略号text-overflow超出溢出显示省略号

    下面我将详细讲解“CSS省略号text-overflow超出溢出显示省略号”的完整攻略。 1. text-overflow的基本概念 text-overflow是CSS的一个属性,它用于控制当溢出的文本超出容器宽度时,如何显示文本,常用的的属性值有 “clip” 和 “ellipsis”。 clip: 溢出的文本会被裁剪,被预设宽度外的部分隐藏; ellip…

    css 2023年6月9日
    00
  • React diff算法原理详细分析

    那么我将为您详细讲解”React diff算法原理详细分析”。 什么是React Diff算法? React中的Diff算法是一个优化策略,帮助我们减少页面重新渲染的次数。基于旧虚拟DOM,React会计算出新的虚拟DOM,通过比较两个虚拟DOM的不同,React会计算出最小化的操作,将更新反映到页面上。React为了提高性能,采用了一种叫做分层的优化策略。…

    css 2023年6月10日
    00
  • 浅谈webpack devtool里的7种SourceMap模式

    当我们使用webpack打包项目时,我们可以通过 devtool 选项来配置生成source map。 它们有不同的视觉效果(适用于不同的开发场景)和内存资源消耗(可能影响构建时间)。 下面我们来详细讲解webpack devtool里的7种source map模式。 1. eval 这种模式是将每个模块封装到 eval(…) 中,因此生成的source…

    css 2023年6月9日
    00
  • 使用bootstrap插件实现模态框效果

    让我们来详细讲解使用bootstrap插件实现模态框效果的完整攻略。 什么是bootstrap插件 Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 CSS、JavaScript 和 HTML 组成,用于为 Web 应用程序提供 UI 组件。Bootstrap 插件是Bootstrap框架中的组件,使用它可以快速实现诸如模态框…

    css 2023年6月10日
    00
  • chrome表单自动填充导致input文本框背景变成偏黄色问题解决

    针对这个问题,我将提供以下攻略,包括问题背景、原因探究、解决方案等。 问题背景 在使用Chrome浏览器自动填充表单时,有时可能会发现表单中的文本框背景变成了偏黄色,而且无法用css样式覆盖。 原因探究 造成这个问题的原因有很多,其中一种最常见的原因是Chrome浏览器表单自动填充功能的特殊性质。自动填充会在文本框内生成一个额外的元素,这个元素的样式不受cs…

    css 2023年6月11日
    00
  • jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)

    标题 首先需要明确本文的主题和结论,使用一级标题: jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载) 介绍 接着将内容扩充至简短的介绍,介绍文章的主要内容和意义: 在网页设计中,图片放大缩小是常见的操作,而鼠标滚动又是一种常见的交互方式。这篇文章将会介绍使用jQuery实现滚动鼠标放大缩小图片的方法,读者将能够在您的网站中使用此方法,提升用户…

    css 2023年6月10日
    00
  • 基于jQuery实现select下拉选择可输入附源码下载

    为了实现“基于jQuery实现select下拉选择可输入”,需要在HTML页面中增加以下代码结构: <label for="select-input">下拉选择可输入:</label> <select id="select-input" name="select-input&qu…

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