返回顶部
首页 > 资讯 > 精选 >使用JavaScript实现轮播图的方法有哪些
  • 384
分享到

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

2023-06-14 07:06:31 384人浏览 泡泡鱼
摘要

使用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实现轮播图的方法有哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 使用JavaScript实现轮播图的方法有哪些

本文链接: https://lsjlt.com/news/268883.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用JavaScript实现轮播图的方法有哪些
    使用JavaScript实现轮播图的方法有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。思想:在大的容器里,装着一个很长的表,表是容器宽度的整数倍。然后通过更改列表样式里的...
    99+
    2023-06-14
  • JS实现轮播图效果的方法有哪些
    这篇文章主要讲解了“JS实现轮播图效果的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS实现轮播图效果的方法有哪些”吧!Js实现轮播图01实现思路这可能是轮播图最简单点的实现之一...
    99+
    2023-06-25
  • 原生JavaScript轮播图实现方法
    本文实例为大家分享了JavaScript轮播图的实现方法,供大家参考,具体内容如下 效果截图: ​注:div容器大小和图片路径可以自行设置,添加img和a标签后浏览器可以...
    99+
    2024-04-02
  • 使用JavaScript实现轮播图特效
    本文实例为大家分享了JavaScript实现轮播图特效的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <hea...
    99+
    2024-04-02
  • 如何使用JavaScript实现轮播图
    这篇文章主要介绍了如何使用JavaScript实现轮播图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 wxml(使用官方的等等组件来展示...
    99+
    2024-04-02
  • 使用JavaScript实现轮播图效果
    本文实例为大家分享了JavaScript实现轮播图效果的具体代码,供大家参考,具体内容如下 纯js,不使用轮播图控件怎么做轮播图呢,往下看吧 效果图: 1.可点击小圆点切换图片 2...
    99+
    2024-04-02
  • 用JavaScript实现轮播图效果
    本文实例为大家分享了JavaScript实现轮播图效果的具体代码,供大家参考,具体内容如下 实现代码: <!DOCTYPE html> <html lang=...
    99+
    2024-04-02
  • 使用JavaScript实现循环轮播图的案例
    这篇文章主要介绍了使用JavaScript实现循环轮播图的案例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下案例演示:点击下面图标,图片进行轮播2.图片轮播完,接...
    99+
    2023-06-14
  • 关于JavaScript轮播图的实现
    今天又是一个非常实用的案例哟,听名字就觉得高级很难对吧,今天就来写一个案例,让你轻松学到轮播图的精髓!!  还是老规矩,来看一下实现效果!! 学习轮播图的首先是要把图片准...
    99+
    2024-04-02
  • css实现图片轮播的方法
    这篇文章主要介绍css实现图片轮播的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!css的选择器有哪些css的选择器可以分为三大类,即id选择器、class选择器、标签选择器。它们之间可以有多种组合,有后代选择器...
    99+
    2023-06-14
  • 如何使用原生的javascript来实现轮播图
    这篇文章主要介绍如何使用原生的javascript来实现轮播图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体代码如下所示:<!DOCTYPE html> &...
    99+
    2024-04-02
  • Android使用Recyclerview实现图片轮播效果的方法
    这篇文章将为大家详细讲解有关Android使用Recyclerview实现图片轮播效果的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图:思路:准备m张图片使用Recyclerview实现,返回无...
    99+
    2023-05-30
    android recyclerview 滚动效果
  • vue的轮播图插件有哪些
    vue中的轮播图插件有:1.concise-slider,轻量级的vue轮播图插件;2.VueSlideShow,基于vue实现的轮播图插件;3.awesome-swiper,使用javascript开发的滑动特效插件;vue中常见的轮播图...
    99+
    2024-04-02
  • jQuery轮播图功能实现方法
    本文实例为大家分享了jQuery轮播图功能的实现代码,供大家参考,具体内容如下 jQuery轮播(无animation) html布局 <!-- 整个轮播区域 -->...
    99+
    2024-04-02
  • js实现轮播图制作方法
    本文实例为大家分享了js实现轮播图展示的具体代码,供大家参考,具体内容如下 效果如图所示 代码如下: <!DOCTYPE html> <html> &...
    99+
    2024-04-02
  • Android使用RollViewPager实现轮播图
    记录Android中轮播图的学习与使用,供大家参考,具体内容如下 1、build.gradle(:app)文件里面加依赖 implementation 'com.jude:ro...
    99+
    2024-04-02
  • JavaScript实现简单的轮播图效果
    轮播图是什么? 轮播图:在一个模块或者说窗口,通过电脑上鼠标点击、手机上手指滑动后,可以看到多张图片。这些图片就都是轮播图,这个模块就叫做轮播模块。 如何实现轮播图 如何才能在js里...
    99+
    2024-04-02
  • android轮播图实现的方法是什么
    Android中轮播图的实现方法一般有以下几种: 使用ViewPager:ViewPager是Android提供的用于实现滑动切...
    99+
    2024-02-29
    android
  • 怎么使用vue轮播组件vue-awesome-swiper实现轮播图
    这篇文章主要讲解了“怎么使用vue轮播组件vue-awesome-swiper实现轮播图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用vue轮播组件vue-awesome-swipe...
    99+
    2023-07-04
  • JS原生实现轮播图的几种方法
    轮播图 主要思想就是: 在大的容器里,装着一个很长的表,表是容器宽度的整数倍。 然后通过更改列表样式里的left属性来实现左右滑动。 本文旨在控制滑动五张图片,但在html中使用了七...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作