js实现图片轮播效果学习笔记

yizhihongxing

下面是“js实现图片轮播效果学习笔记”的详细攻略。

什么是图片轮播效果?

图片轮播效果是一种常见的前端交互效果,它通常被用于网站首页的展示或者是产品推广的页面。通常,图片轮播效果由若干张图片组成,图片会在页面上自动进行轮播,并提供一些控制按钮供用户手动切换图片。

实现图片轮播效果的基本步骤

实现图片轮播效果的基本步骤大致如下:

  1. 编写HTML和CSS代码,实现轮播区域的基本布局和样式;
  2. 利用JavaScript代码实现图片的自动轮播功能;
  3. 利用JavaScript代码实现轮播区域的左右切换功能。

下面,我们就来一步步实现这些功能。

编写HTML和CSS代码

首先,我们需要在HTML文件中创建轮播区域的基本结构,例如:

<div class="slider">
  <ul class="slider-list">
    <li class="slider-item"><img src="img/1.png"></li>
    <li class="slider-item"><img src="img/2.png"></li>
    <li class="slider-item"><img src="img/3.png"></li>
  </ul>
  <div class="slider-arrow slider-arrow-left">&lt;</div>
  <div class="slider-arrow slider-arrow-right">&gt;</div>
</div>

上面这段代码创建了一个div元素,它包含了一个ul元素和两个div元素。ul元素包含了若干个li元素,每个li元素包含了一个img元素,这些img元素就是轮播的图片。两个div元素分别表示了左右切换按钮。

接下来,我们需要编写CSS样式,实现轮播区域的样式布局:

.slider {
  position: relative;
  width: 800px;
  height: 400px;
  margin: 0 auto;
  overflow: hidden;
}

.slider-list {
  position: absolute;
  left: 0;
  top: 0;
  width: 2400px;
  height: 400px;
}

.slider-item {
  float: left;
  width: 800px;
  height: 400px;
}

.slider-item img {
  display: block;
  width: 800px;
  height: 400px;
}

.slider-arrow {
  position: absolute;
  width: 50px;
  height: 50px;
  background: #fff;
  line-height: 50px;
  text-align: center;
  font-size: 25px;
  top: 50%;
  margin-top: -25px;
  cursor: pointer;
}

.slider-arrow-left {
  left: 0;
}

.slider-arrow-right {
  right: 0;
}

上面这段代码实现了轮播区域的基本样式,轮播区域的宽度为800px,高度为400px。ul元素设置为绝对定位,并设置宽度为2400px,表示三张图片宽度的累加值。li元素浮动后设定行为块容器和480像素的宽高。图片图片在高度和宽度上全部继承来自于和父ul标签的相同样式定义。

左右切换按钮是绝对定位于slider元素,并设置好位置和大小,为方便操作也都称为了圆角正方形。

JavaScript实现轮播功能

下面,我们需要编写JavaScript代码,实现图片的自动轮播功能。

var sliderList = document.querySelector('.slider-list');
var sliderItemWidth = document.querySelector('.slider-item').offsetWidth;
var index = 0;
var timer = null;
var animateDuration = 500;

function moveNext() {
  if (index === 2) {
    index = 0;
  } else {
    index++;
  }
  sliderList.style.transition = animateDuration + 'ms';
  sliderList.style.transform = 'translateX(' + (-index * sliderItemWidth) + 'px)';
}

function startAnimate() {
  timer = setInterval(moveNext, 3000);
}

function stopAnimate() {
  clearInterval(timer);
}
startAnimate();

上面的代码中,我们使用了querySelector获取到了.slider-list和.slider-item元素,同时计算了单个图片元素的宽度。在轮播图的程序中,我们开启了一个自动轮播函数和一个停止轮播的函数。在实现自动轮播的过程中,我们首先实现了切换的程序,并根据具体位置和尺寸计算了CSS的过渡时间和动画效果。

最后,我们使用setInterval函数和moveNext函数实现了自动切换图片的功能,并设置了3秒的切换时间,具体时间和事件间隔可以进行配置。

JavaScript实现左右切换功能

最后,我们还需要编写JavaScript代码,实现轮播区域的左右切换功能。

var sliderArrowLeft = document.querySelector('.slider-arrow-left');
var sliderArrowRight = document.querySelector('.slider-arrow-right');

sliderArrowLeft.addEventListener('click', function() {
  if (index === 0) {
    index = 2;
  } else {
    index--;
  }
  sliderList.style.transition = animateDuration + 'ms';
  sliderList.style.transform = 'translateX(' + (-index * sliderItemWidth) + 'px)';
});

sliderArrowRight.addEventListener('click', function() {
  moveNext();
});

上述代码中,我们首先使用querySelector获取到了左右切换按钮,然后使用addEventListener为按钮添加了click事件,分别实现了向左和向右切换的功能。

示例说明

以上就是实现图片轮播效果的完整攻略了。除了上述基础部分,具体的代码和效果可以过实例来说明:

示例1:https://codepen.io/pen/?editors=1010

示例2:https://codesandbox.io/s/interesting-https-0u8dw?file=/src/index.js

以上两个实例均已实现了自动轮播和左右切换的功能,可以进行参考学习。如果需要更多的细节,欢迎观看与研究。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现图片轮播效果学习笔记 - Python技术站

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

相关文章

  • 浅谈JavaScript中等号、双等号、 三等号的区别

    浅谈 JavaScript 中等号、双等号、三等号的区别 JavaScript 中等号、双等号、三等号都是用来进行值比较的运算符。但是它们之间有着不同的运算规则,下面我们来一一介绍它们的区别。 等号 = 等号 = 是 JavaScript 中的赋值运算符,用来将一个值赋给一个变量。例如: let a = 10; // 将 10 赋值给变量 a 双等号 == …

    JavaScript 2023年6月10日
    00
  • 【谷歌插件开发】获取当前网站COOKIE并上报HTTP-API

    一 背景 由于本人每天需要登录网站查看数据并分析统计汇总,而每次机械式地搜索和简单计算,十分繁琐。我们可以写个定时任务,每天根据cookie获取网站数据并遍历统计。 脚本得以成功执行的关键是需要获取到COOKIE 故,写了个谷歌插件用来上报COOKIE 二 代码总目录 三 上代码 manifest.json { “manifest_version”: 3, …

    JavaScript 2023年4月25日
    00
  • JSON中key动态设置及JSON.parse和JSON.stringify()的区别

    JSON中key动态设置指的是在JavaScript中向JSON对象动态添加属性名(key),这样的JSON对象在另一个需要使用这些属性的函数或者方法中外部作用域仍然可以进行访问。但在正常情况下,我们无法使用字符串拼接的方式来动态设置JSON中的key,这时候就需要借助ES6中的计算属性名(Computed Property Names)来实现。 计算属性名…

    JavaScript 2023年5月27日
    00
  • js最全的数组的降维5种办法(小结)

    下面是详细讲解”js最全的数组的降维5种办法(小结)”的内容。 1. 理解数组的降维 数组的降维是指将多维数组转化为一维数组的过程,使得数组的数据变得更加简洁、易于处理。在JavaScript中,我们可以使用一些方法来实现数组的降维,本文将会介绍5种方法。 2. 五种降维方法 2.1 concat方法 在JavaScript中,我们可以使用concat方法将…

    JavaScript 2023年5月27日
    00
  • JavaScript的内置对象Date详解

    JavaScript的内置对象Date详解 1. Date对象概述 Date对象是JavaScript的内置对象,它封装了时间和日期相关的方法。使用Date对象,可以获取当前的日期和时间,还可以进行日期和时间的运算以及格式化输出。该对象提供的方法非常丰富,能够满足大部分与时间有关的需求。 2. 创建Date对象 Date对象可以通过以下两种方式进行创建: 2…

    JavaScript 2023年5月27日
    00
  • javascript html5实现表单验证

    JavaScript HTML5实现表单验证 表单验证是Web应用程序中非常重要的功能,可以帮助我们避免用户输入无效或不正确的数据,提高用户体验和数据准确性。在HTML5中,JavaScript可以轻松实现表单验证而无需从头编写自定义验证规则。 设置HTML5表单验证规则 HTML5中,可以使用各种内置的验证规则来检查表单字段。这些验证规则基于HTML5表单…

    JavaScript 2023年6月10日
    00
  • js中的异常处理try…catch使用介绍

    下面是“JS中的异常处理try…catch使用介绍”的完整攻略。 概述 JavaScript 中的异常处理是许多开发者经常会遇到的问题,特别是在复杂、大型的应用程序中。如果没有适当的异常处理,运行时的错误可能会导致应用程序的崩溃,这对于用户来说是非常糟糕的体验。在 JavaScript 语言中,可以通过 try…catch 语句块来保护我们的程序如果…

    JavaScript 2023年5月28日
    00
  • UpdatePanel触发javascript脚本的方法附代码

    关于”UpdatePanel触发javascript脚本的方法”,我来详细讲解一下。 首先,我们需要了解一下UpdatePanel是什么。UpdatePanel在ASP.NET中是一个用来局部刷新页面的控件。当UpdatePanel中的内容需要更新时,ASP.NET会自动发送异步请求并更新指定部分的内容。而JavaScript脚本则是一种脚本语言,可以用来为…

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