我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用JavaScript实现轮播图的方法有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用JavaScript实现轮播图的方法有哪些

使用JavaScript实现轮播图的方法有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

思想:

在大的容器里,装着一个很长的表,表是容器宽度的整数倍。

然后通过更改列表样式里的left属性来实现左右滑动。

本文旨在控制滑动五张图片,但在html中使用了七张图片,第一张和最后一张是有重复的,至于原因会在下面解释。

使用JavaScript实现轮播图的方法有哪些

通过给容器设定overflow:hidden属性来保证只显示容器视口大小的一张图片。

<body> <div id="container">    <div id="wrap" >     <div class="item item5">l5</div>   <div class="item item1">1</div>   <div class="item item2">2</div>   <div class="item item3">3</div>   <div class="item item4">4</div>   <div class="item item5">5</div>   <div class="item item1">r1</div>  </div> </div> <div id="key">        <div id="list">   <div class="btn1 btnNum">1</div>   <div class="btn2 btnNum">2</div>   <div class="btn3 btnNum">3</div>   <div class="btn4 btnNum">4</div>   <div class="btn5 btnNum">5</div>  </div>  <div id="btn">        <button class="left">←</button>   <button class="right">→</button>  </div> </div></body>

CSS:

可以给wrap列表设置flex属性,让图片在一行显示。其他布局可以按自己需求来做。

注意在定义id="wrap"d的节点中设置了内联样式left。因为在切换图片的时候我用到的是left属性,而如果不设置left的话,在DOM设置style时是找不到left属性的。

<style>  #container {   width: 400px;   height: 300px;   border: 8px rgb(8, 8, 8) solid;   margin: 0 auto;   margin-top: 150px;   overflow: hidden;   position: relative;  }  #wrap {   width: 2800px;   height: 300px;   display: flex;   position: relative;  }  .item {   flex: 1;   width: 400px;   height: 300px;  }  .item1 {   background-color: rosybrown;  }  .item2 {   background-color: rgb(12, 226, 37);  }  .item3 {   background-color: rgb(212, 221, 29);  }  .item4 {   background-color: rgb(61, 27, 182);  }  .item5 {   background-color: rgb(221, 23, 145);  }  #key {   width: 400px;   height: 300px;   margin: 0 auto;  }  #list {   width: 400px;   height: 40px;   display: flex;   justify-content: center;  }  #list div {   margin-top: 10px;   margin-left: 10px;   width: 20px;   height: 20px;   background-color: rgb(13, 162, 221);   text-align: center;   border-radius: 45%;   opacity: 0.6;  }  #list div:hover {   cursor: pointer;   opacity: 1;  }  #btn {   width: 400px;   text-align: center;  } </style>

这是完整的样式

使用JavaScript实现轮播图的方法有哪些

每种颜色代表一张图片,且按序标了序号。起始位置是第二张图片。

至于为什么第一张和最后一张有额外重复的一张放在两端,是为了在做滑动效果的时候,最后一张(倒数第二张,粉紫色)可以继续向右顺滑的滑到第一张(其实是本图的第二张,浅棕色的)。第一张(本图第二张,浅棕色)向左滑动时可以顺滑的滑到最后一张(实则倒数第二张)。继续往下看。

1. 多种轮播方式

轮播必然离开不了定位,以及修改wrap列表的left属性,使其移动。

先初始化几个数据

var wrap = document.getElementById('wrap');var nowleft = -400;     //用于存放当前列表的left的值var currIndex = 1;//用于存放当前是第几个图片//定位到几个按钮var btnNum = document.getElementsByClassName('btnNum'); //小圆圈var right = document.getElementsByClassName('right')[0]; //向右滑的按钮var left = document.getElementsByClassName('left')[0];//向左滑的按钮

1.1 定时自动轮播效果

只讲向左自动滑动的效果

既然是自动轮播的,那必然少不了setInterval()定时器让其持续轮播。

function next() {  setInterval(function() {      //设置每两秒切换一次图片    wrap.style.transition = 'left 1s' //设定有过渡滑动的效果nowleft = parseInt(wrap.style.left) - 400;  //切换一次后nowleft应该减少(即向左滑)一个图片的宽度    wrap.style.left = nowleft + 'px';   //然后将nowleft赋值给wrap的left属性    if(parseInt(wrap.style.left) == -2400) { //判断到最后一个后,偷偷变回到最开头的位置      setTimeout(() => {       wrap.style.transition = 'none'  //因为是偷偷变回去,所以要取消过渡效果       nowleft = -400;       wrap.style.left = nowleft + 'px'      },1200) //保证定时器的时间大于过度的时间且小于每次轮换的时间     }  },2000)}

/由于wrap.style.left 返回的是带px的字符串,所以用parseInt可以取得前面的数值/

1.2 按向右滑动按钮

right.addEventListener('click',function() {  if(nowleft >= -2000){   //判断是否到最后一个图了,没有的话就开始滑动   nowleft -= 400;   wrap.style.transition = 'left 1s';   wrap.style.left = nowleft + 'px';  }  if(nowleft == -2400) {   //如果到最后一个图了,就偷偷换回第一张图   setTimeout(() => {    wrap.style.transition = 'none';    nowleft = -400;    wrap.style.left = nowleft + 'px';   },1020)  }})

1.3 小圆圈切换图片

for(let i = 0; i < btnNum.length; i++) {  btnNum[0].style.opacity = 1;  btnNum[i].addEventListener('click',function() {   wrap.style.transition = 'left 1s';   for(let j = 0; j < btnNum.length; j++) {    btnNum[j].style.opacity = '0.6';   }   btnNum[i].style.opacity = 1;   nowleft = nowleft - (i+1 - currIndex)*400;   currIndex = i + 1;   wrap.style.left = nowleft + 'px';})

看完上述内容,你们掌握使用JavaScript实现轮播图的方法有哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用JavaScript实现轮播图的方法有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用JavaScript实现轮播图的方法有哪些

使用JavaScript实现轮播图的方法有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。思想:在大的容器里,装着一个很长的表,表是容器宽度的整数倍。然后通过更改列表样式里的
2023-06-14

JS实现轮播图效果的方法有哪些

这篇文章主要讲解了“JS实现轮播图效果的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS实现轮播图效果的方法有哪些”吧!Js实现轮播图01实现思路这可能是轮播图最简单点的实现之一
2023-06-25

使用JavaScript实现循环轮播图的案例

这篇文章主要介绍了使用JavaScript实现循环轮播图的案例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下案例演示:1.点击下面图标,图片进行轮播2.图片轮播完
2023-06-14

css实现图片轮播的方法

这篇文章主要介绍css实现图片轮播的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!css的选择器有哪些css的选择器可以分为三大类,即id选择器、class选择器、标签选择器。它们之间可以有多种组合,有后代选择器
2023-06-14

Android使用Recyclerview实现图片轮播效果的方法

这篇文章将为大家详细讲解有关Android使用Recyclerview实现图片轮播效果的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图:思路:1.准备m张图片1.使用Recyclerview实现
2023-05-30

android轮播图实现的方法是什么

Android中轮播图的实现方法一般有以下几种:使用ViewPager:ViewPager是Android提供的用于实现滑动切换页面的控件,可以通过创建一个包含轮播图片的适配器,并设置ViewPager的切换效果为循环滚动,实现轮播图效果。
android轮播图实现的方法是什么
2024-02-29

css实现图片轮播的方法是什么

今天小编给大家分享一下css实现图片轮播的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.首先,在页面中创建对个
2023-07-04

Android中使用imageviewswitcher 实现图片切换轮播导航的方法

前面写过了使用ViewFlipper和ViewPager实现屏幕中视图切换的效果(ViewPager未实现轮播)附链接: ANDROID中使用VIEWFLIPPER类实现屏幕切换(关于坐标轴的问题已补充更改) Android 中使用 Vie
2022-06-06

Android实现图片轮播效果的两种方法

大家在使用APP的过程中,经常会看到上部banner图片轮播的效果,那么今天我们就一起来学习一下,android中图片轮询的几种实现方法: 第一种:使用动画的方法实现:(代码繁琐) 这种发放需要:两个动画效果,一个布局,一个主类来实现,不多
2022-06-06

如何使用MySQL和JavaScript实现一个简单的图片轮播功能

要实现一个简单的图片轮播功能,你可以使用MySQL存储图片的相关信息,然后使用JavaScript来实现轮播效果。下面是一个使用MySQL和JavaScript实现简单图片轮播的步骤:1. 创建一个MySQL数据库,包含一个图片表,其中包含
2023-10-20

如何使用MySQL和JavaScript实现一个简单的图片轮播功能

使用MySQL数据库和JavaScript实现图片轮播。教程涵盖了数据库表设置、JavaScript客户端脚本(获取图像URL、显示轮播图像、设置轮播功能)、PHP后端脚本(获取图像URL列表)以及CSS样式。完整HTML代码提供了示例页面。
如何使用MySQL和JavaScript实现一个简单的图片轮播功能
2024-04-11

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录