原生JS实现图片轮播切换效果

下面是“原生JS实现图片轮播切换效果”的完整攻略。

什么是图片轮播切换效果?

图片轮播切换效果是指在网页上展示一组图片,并在规定的时间间隔内自动切换图片或者在用户交互的作用下手动切换图片。图片轮播切换效果是Web前端页面设计中常用的一个功能。

使用原生JS实现图片轮播切换效果,需要做哪些工作?

使用原生JS实现图片轮播切换效果需要做以下几个步骤:

  1. 创建包含多个图片的HTML结构,并通过CSS样式对其进行布局和样式设置;
  2. 通过JS获取需要操作的DOM元素,例如图片容器、图片列表、左右切换按钮等;
  3. 给左右切换按钮绑定事件,实现图片的手动切换;
  4. 使用定时器设置图片自动切换功能;
  5. 编写JS函数实现图片的切换和初始化等功能。

示例一:原生JS实现基本图片轮播切换效果

以下代码实现了一个基本的图片轮播切换效果。点击左右切换按钮可以切换图片。其中,container为图片容器,imgs为图片列表,prev为上一页按钮,next为下一页按钮。该示例采用定位和透明度变化方案,使当前图片逐渐出现,未选中图片逐渐消失的效果。

<div class="container">
  <img src="img1.jpg" />
  <img src="img2.jpg" />
  <img src="img3.jpg" />
  <img src="img4.jpg" />
</div>

<button class="prev">上一页</button>
<button class="next">下一页</button>
.container {
  position: relative;
}

.container img {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: opacity 1s ease;
}

.container img.active {
  opacity: 1;
}

.prev,
.next {
  position: absolute;
  top: 50%;
  margin-top: -20px;
  width: 40px;
  height: 40px;
  background-color: rgba(0, 0, 0, 0.3);
  border: none;
  color: #fff;
  cursor: pointer;
}

.prev {
  left: 0;
}

.next {
  right: 0;
}
var container = document.querySelector('.container');
var imgs = container.querySelectorAll('img');
var prev = document.querySelector('.prev');
var next = document.querySelector('.next');

var activeIndex = 0;
var timer = null;

function setActive(index) {
  for (var i = 0; i < imgs.length; i++) {
    imgs[i].classList.remove('active');
  }
  imgs[index].classList.add('active');
}

function showPrev() {
  activeIndex--;
  if (activeIndex < 0) {
    activeIndex = imgs.length - 1;
  }
  setActive(activeIndex);
}

function showNext() {
  activeIndex++;
  if (activeIndex >= imgs.length) {
    activeIndex = 0;
  }
  setActive(activeIndex);
}

prev.addEventListener('click', function() {
  showPrev();
});

next.addEventListener('click', function() {
  showNext();
});

setActive(activeIndex);

timer = setInterval(function() {
  showNext();
}, 3000);

示例二:原生JS实现无限循环图片轮播切换

以下代码实现了无限循环图片轮播切换。在左右切换时,可以实现无限循环切换。

<div class="container">
  <img src="img1.jpg" />
  <img src="img2.jpg" />
  <img src="img3.jpg" />
  <img src="img4.jpg" />
  <img src="img1.jpg" />
  <img src="img2.jpg" />
  <img src="img3.jpg" />
  <img src="img4.jpg" />
</div>

<button class="prev">上一页</button>
<button class="next">下一页</button>
.container {
  position: relative;
  width: 400%;
  transform: translateX(0);
}

.container img {
  position: absolute;
  top: 0;
  left: 0;
  width: 25%;
  opacity: 0;
  transition: opacity 1s ease, transform 1s ease;
}

.container img.active {
  opacity: 1;
  transform: translateX(-25%);
}

.prev,
.next {
  position: absolute;
  top: 50%;
  margin-top: -20px;
  width: 40px;
  height: 40px;
  background-color: rgba(0, 0, 0, 0.3);
  border: none;
  color: #fff;
  cursor: pointer;
}

.prev {
  left: 0;
}

.next {
  right: 0;
}
var container = document.querySelector('.container');
var imgs = container.querySelectorAll('img');
var prev = document.querySelector('.prev');
var next = document.querySelector('.next');

var activeIndex = 0;
var timer = null;

function setActive(index) {
  for (var i = 0; i < imgs.length; i++) {
    imgs[i].classList.remove('active');
  }
  imgs[index].classList.add('active');
}

function showPrev() {
  activeIndex--;
  if (activeIndex < 0) {
    activeIndex = imgs.length / 4 - 1;
  }
  container.style.transform = 'translateX(-' + activeIndex * 25 + '%)';
  setActive(activeIndex);
}

function showNext() {
  activeIndex++;
  if (activeIndex >= imgs.length / 4) {
    activeIndex = 0;
  }
  container.style.transform = 'translateX(-' + activeIndex * 25 + '%)';
  setActive(activeIndex);
}

prev.addEventListener('click', function() {
  showPrev();
});

next.addEventListener('click', function() {
  showNext();
});

setActive(activeIndex);

timer = setInterval(function() {
  showNext();
}, 3000);

以上就是使用原生JS实现图片轮播切换效果的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生JS实现图片轮播切换效果 - Python技术站

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

相关文章

  • CSS3 实现童年的纸飞机

    下面我将详细讲解如何用CSS3实现童年的纸飞机。 简介 本篇攻略将带你了解如何使用CSS3来创造一个可爱的纸飞机。纸飞机用时髦的CSS3动画,可以飞翔在你的网页中。 实现步骤 创建HTML结构 首先,我们需要在HTML中创建一个容器div,它将包含我们的纸飞机。以下是HTML代码: <div class="paper-plane"&…

    css 2023年6月10日
    00
  • 非常流行的所谓的气泡窗口

    关于“非常流行的所谓的气泡窗口”的攻略,我为你列出了以下步骤: 什么是气泡窗口 一种常见的 UI 技巧是将小型气泡窗口添加到网页中,以增强交互。这些气泡窗口可以在几乎任何地方出现,并为用户提供有用的信息。气泡窗口通常用于错误消息、提示、警告或更多信息的详细说明。 如何创建气泡窗口 使用 CSS 代码和 JavaScript 可以相对较容易地创建气泡窗口。 主…

    css 2023年6月10日
    00
  • 高频率Vue面试题汇总以及答案

    下面就为你详细讲解“高频率Vue面试题汇总以及答案”的完整攻略。 面试前的准备 在进行Vue面试前,建议你首先了解Vue的基础知识和流程。包括Vue的生命周期、组件、指令等。同时也要掌握一些基础的前端技能,例如HTML、CSS、JavaScript等。 除此之外,你还需要对常见的Vue面试题进行准备。下面就是一些高频率的Vue面试题。 高频率Vue面试题汇总…

    css 2023年6月9日
    00
  • HTML+CSS3 模仿Windows7 桌面效果

    HTML+CSS3 模仿Windows7 桌面效果是一项非常有趣的网页设计项目。它通过 HTML 和 CSS3 技术模拟了一个 Windows7 操作系统的桌面环境,让用户在网页上体验到桌面应用程序等交互体验。 以下是实现 HTML+CSS3 模仿Windows7 桌面效果的完整攻略: 第一步:准备HTML骨架 首先,我们需要搭建好 HTML 骨架,以便后面…

    css 2023年6月9日
    00
  • css3手动实现pc端横向滚动

    针对“css3手动实现pc端横向滚动”的完整攻略,我将从下面这几个部分来逐一讲解: 实现横向滚动的前提 实现原理介绍 实现步骤及示例说明 下面我们来逐一讲解。 1. 实现横向滚动的前提 在 CSS3 中,实现横向滚动需要使用到 overflow-x 属性,它的取值为 scroll 或 auto。 在实现横向滚动的时候,首先需要保证有足够的空间来容纳横向滚动的…

    css 2023年6月10日
    00
  • vue3组件库Shake抖动组件搭建过程详解

    我来详细讲解“vue3组件库Shake抖动组件搭建过程详解”的完整攻略。 1. 确定组件目标 首先,我们要明确抖动组件的目标:在特定情况下,使页面上的某些元素产生抖动效果。也就是说,我们需要一个组件来完成这样的功能。 2. 创建一个Vue3项目 接着,我们需要创建一个Vue3项目。我们可以使用 Vue CLI 这个官方工具来创建一个全新的Vue3项目。命令如…

    css 2023年6月9日
    00
  • 聊一聊Vue.js过渡效果

    下面是详细讲解“聊一聊Vue.js过渡效果”的完整攻略: 1. Vue.js过渡效果简介 在Vue.js中,过渡效果是指在DOM元素从显示状态变为隐藏状态(或反之)的时候,给元素添加一些过渡效果,使其显示或隐藏更加平滑,提高用户体验。Vue.js提供了<transition>和<transition-group>两个标签,用于实现过渡…

    css 2023年6月11日
    00
  • pyqt5 使用setStyleSheet设置单元格的边框样式操作

    当我们在使用PyQt5制作表格(QTableWidget)时,修改表格中单元格(QTableWidgetItem)的边框样式是一个非常常见的需求。我们可以通过使用setStyleSheet方法来设置单元格的边框样式,下面是详细的操作步骤: 1. 导入PyQt5模块 在开始使用PyQt5制作表格之前,第一步需要导入PyQt5模块,如下所示: from PyQt…

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