返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript实现简易轮播图最全代码解析(ES5)
  • 158
分享到

JavaScript实现简易轮播图最全代码解析(ES5)

2024-04-02 19:04:59 158人浏览 独家记忆
摘要

本文实例为大家分享了javascript实现简易轮播图效果的具体代码,供大家参考,具体内容如下 全部代码: <!DOCTYPE html> <html>

本文实例为大家分享了javascript实现简易轮播图效果的具体代码,供大家参考,具体内容如下

全部代码:


<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>ES5轮播图</title>
  <style>
   * {padding: 0;margin: 0;}
   #wrapper {
    position: relative;
    margin: 50px auto;
    padding: 0;
    width: 1000px;
    height: 300px;
   }
   #wrapper .content {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
   }
   #wrapper>.content>.imgs {
    position: absolute;
    margin: 0;
    padding: 0;
    left: 0;
    top: 0;
    width: 6000px;
    
    list-style: none;
   }
   #wrapper>.content>.imgs li {
    float: left;
    margin: 0;
    padding: 0;
    width: 1000px;
    height: 300px;
   }
   #wrapper>.content>.imgs>li img {
    width: 100%;
    height: 100%;
   }
   #wrapper>.content>.dots {
    width: 163px;
    position: absolute;
    right: 0;
    left: 0;
    margin: auto;
    bottom: 10px;
    list-style: none;
   }
   #wrapper>.content>.dots li {
    float: left;
    width: 20px;
    height: 20px;
    text-align: center;
    line-height: 20px;
    border-radius: 50%;
    margin-left: 10px;
    cursor: pointer;
   }
   li.active {
    background-color: white;
   }
   li.quiet {
    background-color: #5a5a58;
   }
   .btns {
    display: none;
   }
   .btns span {
    position: absolute;
    width: 25px;
    height: 40px;
    top: 50%;
    margin-top: -20px;
    line-height: 40px;
    text-align: center;
    font-weight: bold;
    font-family: Simsun;
    font-size: 30px;
    border: 1px solid #fff;
    opacity: 0.5;
    cursor: pointer;
    color: #fff;
    background: black;
   }
   .btns .left {
    left: 5px;
   }
   .btns .right {
    left: 100%;
    margin-left: -32px;
   }
  </style>
 </head>
 <body>
  <div id="wrapper">
   <div class="content">
    <ul class="imgs">
     <li><img src="img/s1.jpg" /></li>
     <li><img src="img/s2.jpg" /></li>
     <li><img src="img/s3.jpg" /></li>
     <li><img src="img/s4.jpg" /></li>
     <li><img src="img/s5.jpg" /></li>
    </ul>
    <ul class='dots'></ul>
   </div>
   <div class="btns">
    <span class="left">&lt;</span>
    <span class="right">&gt;</span>
   </div>
  </div>
 </body>
</html>
<script>
 var wrapper = document.getElementById("wrapper");
 var imgs = document.getElementsByClassName("imgs")[0];
 var dots = document.getElementsByClassName("dots")[0];
 var btns = document.getElementsByClassName("btns")[0];
 var dotss = dots.children;
 var len = imgs.children.length; //图片张数
 var width = wrapper.offsetWidth; //每张图片的宽度
 var rate = 15; //一张图片的切换速度, 单位为px
 var times = 1; //切换速度的倍率
 var timer = null; //初始化一个定时器
 var imgSub = 0; //当前显示的图片下标
 var dotSub = 0; //当前显示图片的小圆点下标
 var temp;
 // 创建一个文档片段,此时还没有插入到 DOM 结构中
 const frag = document.createDocumentFragment()
 // 根据图片数量添加相应的小圆点到文档片段中
 for (let i = 0; i < len; i++) {
  const dot = document.createElement("li");
  dot.className = 'quiet';
  // 先插入文档片段中
  frag.appendChild(dot);
 }
 // 将小圆点片段统一插入到 DOM 结构中
 dots.appendChild(frag)
 // 第一个小圆点高亮显示
 dots.children[0].className = "active";
 // 滑动函数
 function Roll(distance) { //参数distance:滚动的目标点(必为图片宽度的倍数)
  clearInterval(imgs.timer); //每次运行该函数必须清除之前的定时器!
  //判断图片移动的方向
  var speed = imgs.offsetLeft < distance ? rate : (0 - rate);
  //设置定时器,每隔10毫秒,调用一次该匿名函数
  imgs.timer = setInterval(function() {
   //每一次调用滚动到的地方 (速度为 speed px/10 ms)         
   imgs.style.left = imgs.offsetLeft + speed + "px";
   //距目标点剩余的px值      
   var leave = distance - imgs.offsetLeft;
   
   if (Math.abs(leave) <= Math.abs(speed)) {
    clearInterval(imgs.timer);
    imgs.style.left = distance + "px";
   }
  }, 10);
 }
 
 imgs.appendChild(imgs.children[0].clonenode(true));
 function autoRun() {
  imgSub++;
  dotSub++;
  if (imgSub > len) { //滚动完克隆项后
   imgs.style.left = 0; //改变left至真正的第一项处
   imgSub = 1; //从第二张开始显示
  }
  // 调用滚动函数,参数为该下标的滚动距离
  Roll(-imgSub * width);
  // 如果圆点下标已滚动到最后,则将下标重置为0
  if (dotSub > len - 1) { //判断是否到了最后一个圆点
   dotSub = 0;
  }
  // 循环修改所有圆点默认样式
  for (var i = 0; i < len; i++) {
   dotss[i].className = "quiet";
  }
  // 给当前滚动到的圆点添加高亮样式
  dotss[dotSub].className = "active";
 }
 // 创建定时器,开始自动滚动
 timer = setInterval(autoRun,2000);
 // 循环添加小圆点的触发事件
 for (var i = 0; i < len; i++) {
  dotss[i].index = i;
  dotss[i].onmouseover = function() {
   for (var j = 0; j < len; j++) {
    dotss[j].className = "quiet";
   }
   this.className = "active";
   temp = dotSub;
   imgSub = dotSub = this.index;
   times = Math.abs(this.index - temp); //距离上个小圆点的距离
   rate = rate * times; //根据距离改变切换速率
   Roll(-this.index * width);
   rate = 15;
  }
 }
 // 添加事件:鼠标移动到wrapper上,左右切换按钮显示
 wrapper.onmouseover = function() {
  clearInterval(timer);
  btns.style.display = 'block';
 }
 // 添加事件:鼠标移出wrapper,左右切换按钮隐藏
 wrapper.onmouseout = function() {
  timer = setInterval(autoRun,2000);
  btns.style.display = 'none';
 }
 // 点击上一张按钮 触发事件
 btns.children[0].onclick = function() {
  imgSub--;
  dotSub--;
  if (imgSub < 0) { //滚动完第一项后
   imgs.style.left = -len * width + "px"; //改变left至克隆的第一项处
   imgSub = dotSub = len - 1;
  }
  Roll(-imgSub * width);
  if (dotSub < 0) {
   dotSub = len - 1;
  }
  for (var i = 0; i < len; i++) {
   dotss[i].className = "quiet";
  }
  dotss[dotSub].className = "active";
 }
 // 点击下一张按钮 触发事件
 btns.children[1].onclick = autoRun;
</script>

图片:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: JavaScript实现简易轮播图最全代码解析(ES5)

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

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

猜你喜欢
  • JavaScript实现简易轮播图最全代码解析(ES5)
    本文实例为大家分享了JavaScript实现简易轮播图效果的具体代码,供大家参考,具体内容如下 全部代码: <!DOCTYPE html> <html>...
    99+
    2024-04-02
  • JavaScript实现简易轮播图最全代码解析(ES6面向对象)
    本文实例为大家分享了JavaScript实现简易轮播图的具体代码,供大家参考,具体内容如下 完整代码: <!DOCTYPE html> <html> &...
    99+
    2024-04-02
  • JavaScript实现简易放大镜最全代码解析(ES5)
    本文实例为大家分享了JavaScript实现简易放大镜的具体代码,供大家参考,具体内容如下 完整代码: <!DOCTYPE html> <html> &...
    99+
    2024-04-02
  • JavaScript实现简易购物车最全代码解析(ES6面向对象)
    本文实例为大家分享了JavaScript实现简易购物车的具体代码,供大家参考,具体内容如下 代码: <!DOCTYPE html> <html> &...
    99+
    2024-04-02
  • 使用ViewPager2实现简易轮播图效果
    本文实例为大家分享了使用ViewPager2实现轮播图效果的具体代码,供大家参考,具体内容如下 0.实现效果 1.添加依赖 dependencies {     ...     i...
    99+
    2024-04-02
  • JavaScript实现无缝轮播图的示例代码
    目录上效果一、实现过程1)首先实现基本布局2)主要样式二、如何实现无缝呢 (重点来了)思路:主要代码完整代码花费一个下午从0到1实现的轮播图,当然还有很多需要改进的地方(欢迎提出需要...
    99+
    2024-04-02
  • JavaScript实现简单的轮播图效果
    轮播图是什么? 轮播图:在一个模块或者说窗口,通过电脑上鼠标点击、手机上手指滑动后,可以看到多张图片。这些图片就都是轮播图,这个模块就叫做轮播模块。 如何实现轮播图 如何才能在js里...
    99+
    2024-04-02
  • javascript实现图片轮播简单效果
    本文实例为大家分享了javascript实现图片轮播简单效果的具体代码,供大家参考,具体内容如下 这里是css样式  * {      margin: 0;  padding...
    99+
    2024-04-02
  • 两行IOS代码实现轮播图
    此篇文章讲述IOS轮播图,仅需要几步就可以完成,很简单了。 第一步:利用cocopods导入KJBannerView组件 #import "KJBannerView.h" 第二...
    99+
    2022-05-26
    IOS 轮播图
  • vue实现轮播图效果的代码
    这篇文章主要介绍“vue实现轮播图效果的代码”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue实现轮播图效果的代码”文章能帮助大家解决问题。1.原理:v-on:click="prev&q...
    99+
    2023-06-27
  • Android图片无限轮播的实现代码
    本文实例为大家分享了AnAndroid图片无限轮播的具体代码,供大家参考,具体内容如下 public class MainActivity extends Activity ...
    99+
    2022-06-06
    轮播 Android
  • js原生代码如何实现轮播图
    这篇文章主要介绍js原生代码如何实现轮播图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、现在我们来看看它是什么样的效果,截一张图给大家看:二、无论我们做什么特效,都要记住一个原则...
    99+
    2024-04-02
  • Android简易音乐播放器实现代码
    本文实例为大家分享了Android音乐播放器的具体代码,供大家参考,具体内容如下 1.播放项目内的音乐 package com.thm.g150820_android26_p...
    99+
    2022-06-06
    音乐 Android
  • Android实现图片轮播切换实例代码
    利用Android的ViewFlipper和AnimationUtils实现图片带有动画的轮播切换,其中当点击“上一张”图片时,切换到上一张图片;当点击“下一张”图片时,切换到...
    99+
    2022-06-06
    图片 轮播 Android
  • JavaScript+css+HTML实现移动端轮播图(含源码)
    目录1.移动轮播图2.案例分析3.关于anime.js1.移动轮播图 移动端轮播图与PC段轮播图,在技术选择上是有区别的,因为移动端的浏览器版本非常好,对于H5和CSS3的支持非常完...
    99+
    2024-04-02
  • C#实现图片轮播功能的示例代码
    目录实践过程效果代码实践过程 效果 代码 public partial class Form1 : Form { public Form1() { ...
    99+
    2022-12-19
    C#图片轮播功能 C#图片轮播 C# 轮播
  • Vue实现轮播图效果的代码怎么写
    今天小编给大家分享一下Vue实现轮播图效果的代码怎么写的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Vue 过渡Vue 的过...
    99+
    2023-07-04
  • 原生Js 实现的简单无缝滚动轮播图的示例代码
       简单无缝滚动轮播图存在很多漏洞,就是后期增加图片时会很不方便,需要改动的地方也很多,耦合性也很强,只适用于一部分程序,所以我们可以通过改动图片结构和计算...
    99+
    2024-04-02
  • JavaScript实现六种网页图片轮播效果详解
    目录1、当鼠标经过轮播图模块,左右按钮显示,离开隐藏左右按钮。2、动态生成小圆圈3、点击小圆圈,小圆圈变色4、点击小圆圈滚动图片5、点击右侧按钮一次,就让图片滚动一张。6、点击右侧按...
    99+
    2024-04-02
  • Android图片翻转动画简易实现代码
    下面给大家分享一个有趣的动画:这里比较适合一张图片的翻转,如果是多张图片,可以参考APIDemo里的例子,就是加个ArrayAdapter,还是简单的,也可以自己发挥修改,实现...
    99+
    2022-06-06
    动画 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作