原生JS实现轮播图的效果:

  只要缕清了全局变量index的作用,这个轮播图也就比较容易实现了;另外,为了实现轮这个效果,有几处clearInterval()必须写上。废话不多说,直接上代码,修复了几个比较诡异的bug:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
body,ul,p{margin:0;padding:0;}
#boxs{position: relative;width:100%;height:460px;}
#box{width:100%;height:460px;}
ul{position:relative;width:100%;height:460px;}
li{width:100%;height:460px;position:absolute;}
img{width:100%;height:100%}
#circle{position: absolute;bottom:0;left:50%;transform: translate(-50%,0);}
#circle span{display:inline-block;height:20px;width:20px;background:white;vertical-align: top;border:1px solid yellow;border-radius:10px;/*float:left;*/}
.on{background:red !important;}
#left{position: absolute;background:red;height:80px;width:50px;line-height:80px;text-align: center;color:white;left:0;top:40%;}
#right{position: absolute;background:red;height:80px;width:50px;line-height:80px;text-align: center;color:white;right:0;top:40%;}
</style>
<script type="text/javascript">
window.onload=function(){
var circle_span=document.getElementById("circle").children;
var list=document.getElementById("ul1").children;
var box1=document.getElementById("boxs");
var btn1=document.getElementById("left");
var btn2=document.getElementById("right");
var timer=null;
var index=0;
play();
box1.onmouseover=function(){
clearInterval(timer);
}
box1.onmouseout=function(){
clearInterval(timer);
play();
}
btn1.onclick=function(){
index--;
if(index<0){
index=5;
}
change(index);
}
btn2.onclick=function(){
index++;
if(index>5){
index=0;
}
change(index);
}
for(var i=0;i<circle_span.length;i++){
circle_span[i].index=i;
circle_span[i].onmouseover=function(){
clearInterval(timer);
change(this.index);
index=this.index;
}
}
function play(){
timer=setInterval(function(){
index++;
if(index>5){
index=0;
}
change(index);
},1000);
}
function change(index){
for(var i=0;i<circle_span.length;i++){
circle_span[i].setAttribute("class","");
list[i].style.display="none";
}
circle_span[index].className="on";
list[index].style.display="block";
}
}
</script>
</head>
<body>
<div id="boxs">
<div id="box">
<ul id="ul1">
<li><img src="img/11.jpg"/></li>
<li><img src="img/22.jpg"/></li>
<li><img src="img/33.jpg"/></li>
<li><img src="img/44.jpg"/></li>
<li><img src="img/55.jpg"/></li>
<li><img src="img/66.jpg"/></li>
</ul>
</div>
<div id="circle">
<span class="on"></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
<div id="left">向左</div>
<div id="right">向右</div>
</div>
</body>
</html>

原生JS实现轮播图的效果的更多相关文章

  1. 原生js焦点轮播图

    原生js焦点轮播图主要注意这几点: 1.前后按钮实现切换,同时注意辅助图2.中间的button随着前后按钮对应切换,同时按button也能跳转到相应的index3.间隔调用与无限轮播.4.注意在动画时 ...

  2. 原生js实现轮播图

    原生js实现轮播图 很多网站上都有轮播图,但找到一个系统讲解的却很难,因此这里做一个简单的介绍,希望大家都能有所收获,如果有哪些不正确的地方,希望大家可以指出. 原理: 将一些图片在一行中平铺,然后计 ...

  3. 封装一个简单的原生js焦点轮播图插件

    轮播图实现的效果为,鼠标移入左右箭头会出现,可以点击切换图片,下面的小圆点会跟随,可以循环播放(为了方便理解,没有补2张图做无缝轮播).本篇文章的主要目的是分享封装插件的思路. 轮播图我一开始是写成非 ...

  4. 使用原生js将轮播图组件化

    代码地址如下:http://www.demodashi.com/demo/11316.html   这是一个轮播图组件,这里是代码地址,需要传入容器的id和图片地址,支持Internet Explor ...

  5. 用原生js封装轮播图

    原生js封装轮播图 对于初学js的同学来说,轮播图还是一个难点,尤其是原生js封装轮播图代码,下面是我之前做的一个轮播图项目中封装好的一些代码,有需要的同学可以看一下,有什么不懂的可以看注释,注释看不 ...

  6. 原生js焦点轮播图的实现

    继续学习打卡,武汉加油,逆战必胜!今日咱们主要探讨一下原生js写轮播图的问题, 简单解析一下思路: 1,首先写好css样式问题 2,考虑全局变量:自动播放的定时器,以及记录图片位置的角标Index 2 ...

  7. 前端基础功能,原生js实现轮播图实例教程

    轮播图是前端最基本.最常见的功能,不论web端还是移动端,大平台还是小网站,大多在首页都会放一个轮播图效果.本教程讲解怎么实现一个简单的轮播图效果.学习本教程之前,读者需要具备html和css技能,同 ...

  8. 第54天:原生js实现轮播图效果

    一.轮播图的原理: 一系列的大小相等的图片平铺,利用CSS布局只显示一张图片,其余隐藏.通过计算偏移量利用定时器实现自动播放,或通过手动点击事件切换图片. 二.Html布局 首先父容器containe ...

  9. 原生js封装轮播图

    个人实际开发中用到的效果问题总结出来便于自己以后开发查看调用,如果也适用其他人请随意拿走勿喷就行! 原生js对于思路要求比较高,在js代码我都写有备注,足够理解并使用,即使是小白或者刚入行的程序员也比 ...

随机推荐

  1. [javaSE] 基本数据类型对象包装类

    按照java面向对象的原则,每个基本类型都有对应的包装类 byte Byte short Short int Integer long Long boolean Boolean float Float ...

  2. 纯代码Autolayout的三种方法

    Autolayout讲解较多的就是xib和storyboard用法,本文主要记录纯代码的Autolayout使用方法: 方法1.苹果原生的方法,这种方法虽然简单但是太过繁杂,可用性很差 //宽度=su ...

  3. centos关闭selinux

    SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统.在这种访问控制体系的限制下,进程只能访问那 ...

  4. Java 锁机制总结

    锁的种类 独享锁 VS 共享锁 独享锁:锁只能被一个线程持有(synchronized) 共享锁:锁可以被多个程序所持有(读写锁) 乐观锁 VS 悲观锁 乐观锁:每次去拿数据的时候都乐观地认为别人不会 ...

  5. eclipse 更改背景颜色字体

    原文 切一个自己的图: 废话不说,直接入题. 方式一:替换Eclipse的配置文件 其实Eclipse的各种配置都是在文件设置里的,因此只要用一个配置好的模版来替换默认的配置文件,即可将所有配置克隆到 ...

  6. 如何使Wpf浏览器应用程序被完全信任运行

    原文地址链接:http://blogs.microsoft.co.il/maxim/2008/03/05/how-to-run-wpf-xbap-as-full-trust-application/ ...

  7. Python Django 路由分发

    mysite1 为一个django工程 cmdb为一个项目 dashboard为一个项目 在mysite1工程下的urls.py中定义如下: from django.conf.urls import ...

  8. Node.js学习(篇章一)

    <node.js的特点> 采用了异步式I/O与事件驱动的架构设计,架构为单线程模型. <supervisor包的作用> node.js开发项目,当修改项目时,需要终止进程重启N ...

  9. npm 更新至最新版本

    有时npm版本低了,一些操作有问题,要更新成最新. 官网中:  https://www.npmjs.com/get-npm     先查看对应的 node 版本 和 npm版本 Check that ...

  10. Architecture And Framework

    高屋建瓴 From Up to Down. Outside into inside. Interface-Oriented Framework with dynamic configuration. ...