js原生的轮播图
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="UTF-8"> | |
<title></title> | |
<style> | |
*{ | |
margin: 0; | |
padding: 0; | |
text-decoration: none; | |
} | |
#container{ | |
width: 600px; | |
height: 400px; | |
border: 3px solid gold; | |
position: relative; | |
margin: 300px auto; | |
overflow: hidden; | |
z-index: 2; | |
/*transition: all 0.5s ease;*/ | |
} | |
#list{ | |
width: 3600px; | |
height: 400px; | |
position: absolute; | |
z-index: 1; | |
left: -600px; | |
} | |
#list img{ | |
width: 600px; | |
height: 400px; | |
float: left; | |
} | |
span{ | |
position: absolute; | |
display: block; | |
width: 10px; | |
height: 10px; | |
border-radius: 50%; | |
z-index: 2; | |
background: gainsboro; | |
bottom: 10px; | |
} | |
p{ | |
z-index: 2; | |
width: 50px; | |
line-height: 50px; | |
background: rgba(0,0,0,0.3); | |
color: white; | |
position: absolute; | |
font-size: 40px; | |
text-align: center; | |
} | |
.p1{ | |
top: 175px; | |
left: 0; | |
} | |
.p2{ | |
top: 175px; | |
right: 0px; | |
} | |
#container:hover .p1,#container:hover .p2{ | |
background: rgba(0,0,0,0.7); | |
} | |
</style> | |
</head> | |
<body> | |
<div id="container"> | |
<div id="list"> | |
<img src="img/4.jpg" alt="" /> | |
<img src="img/1.jpg" alt="" /> | |
<img src="img/2.jpg" alt="" /> | |
<img src="img/3.jpg" alt="" /> | |
<img src="img/4.jpg" alt="" /> | |
<img src="img/1.jpg" alt="" /> | |
</div> | |
<p class="p1" onclick="lfClick(10)"><</p> | |
<p class="p2" onclick="lfClick(-10)">></p> | |
<span onclick="oClick(-600,0)"></span> | |
<span onclick="oClick(-1200,1)"></span> | |
<span onclick="oClick(-1800,2)"></span> | |
<span onclick="oClick(-2400,3)"></span> | |
</div> | |
</body> | |
<script type="text/javascript"> | |
var list = document.getElementById('list'); | |
var ps = document.querySelectorAll('p'); | |
var timer = null ; | |
var spans = document.querySelectorAll('span'); | |
var timeOut = null; | |
for(var i = 0 ;i<spans.length; i++){ | |
spans[i].style.left = 250 + i*20 + 'px'; | |
} | |
timer=setInterval(doMove,20); | |
function doMove(){ | |
var speed = parseInt(getStyle()) - 10; | |
list.style.left = speed +'px'; | |
if(speed %600 ==0){ | |
clearInterval(timer); | |
timeOut = setTimeout(function(){ | |
timer=setInterval(doMove,20); | |
},1000); | |
} | |
btnColor(speed); | |
} | |
//前后事件 | |
var setInter =null; | |
// ps[0].onclick = lfClick(10); | |
function lfClick(dir) { | |
clearInterval(timer); | |
clearInterval(setInter); | |
if(parseInt(getStyle()) < -600 && parseInt(getStyle())>-1200){ | |
list.style.left = -600 +'px'; | |
} | |
if(parseInt(getStyle()) < -1200 && parseInt(getStyle())>-1800){ | |
list.style.left = -1200 +'px'; | |
} | |
if(parseInt(getStyle()) < -1800 && parseInt(getStyle())>-2400){ | |
list.style.left = -1800 +'px'; | |
} | |
if(parseInt(getStyle()) < -2400 && parseInt(getStyle())>-3000){ | |
list.style.left = -2400 +'px'; | |
} | |
setInter = setInterval(function(){ | |
clearInterval(timer); | |
clearTimeout(timeOut); | |
var speed = parseInt(getStyle()) + dir ; | |
list.style.left = speed + 'px'; | |
btnColor(speed); | |
if(speed %600 == 0){ | |
clearInterval(setInter); | |
timeOut = setTimeout(function(){ | |
timer=setInterval(doMove,20); | |
},1000); | |
if(speed == 0){ | |
list.style.left = '-2400px'; | |
} | |
if(speed == -3000){ | |
list.style.left = '-600px'; | |
} | |
} | |
},10) | |
} | |
function getStyle(){ | |
return list.currentStyle? list.currentStyle.left:getComputedStyle(list).left; | |
} | |
function oClick(dir,index){ | |
clearInterval(timer); | |
clearTimeout(timeOut) | |
list.style.left = dir + 'px'; | |
for(var i = 0 ;i<spans.length; i++){ | |
spans[i].style.background='gainsboro'; | |
} | |
spans[index].style.background = 'red'; | |
timeOut = setTimeout(function(){ | |
timer=setInterval(doMove,20); | |
},1000); | |
} | |
function btnColor(speed){ | |
if(speed == -600 ){ | |
spans[0].style.background = 'red'; | |
spans[3].style.background = 'gainsboro'; | |
spans[1].style.background = 'gainsboro'; | |
} | |
if(speed == -1200 ){ | |
spans[1].style.background = 'red'; | |
spans[0].style.background = 'gainsboro'; | |
spans[2].style.background = 'gainsboro'; | |
} | |
if(speed == -1800){ | |
spans[2].style.background = 'red'; | |
spans[1].style.background = 'gainsboro'; | |
spans[3].style.background = 'gainsboro'; | |
} | |
if(speed == -2400 ||speed ==0){ | |
spans[3].style.background = 'red'; | |
spans[2].style.background = 'gainsboro'; | |
spans[0].style.background = 'gainsboro'; | |
} | |
if(speed == -3000){ | |
list.style.left = -600 +'px'; | |
spans[0].style.background = 'red'; | |
spans[3].style.background = 'gainsboro'; | |
} | |
} | |
</script> | |
</html> |
js原生的轮播图的更多相关文章
- js原生实现轮播图效果(面向对象编程)
面向对象编程js原生实现轮播图效果 1.先看效果图 2.需要实现的功能: 自动轮播 点击左右箭头按钮无缝轮播 点击数字按钮切换图片 分析:如何实现无缝轮播? 在一个固定大小的相框里有一个ul标签,其长 ...
- JS+css3焦点轮播图PC端
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- jQuery与原生js实现banner轮播图
jQuery与原生js实现banner轮播图: (jq需自己加载)(图片需自己加载) <!DOCTYPE html> <html> <head> <meta ...
- 原生JS实现简易轮播图
原生JS实现简易轮播图(渐变?) 最近做网页总是会用到轮播图,我就把之前写的轮播图单独拿出来吧,如果有...如果真的有人也需要也可以复制去用用啊..哈~.. window.onload = funct ...
- 原生 js 左右切换轮播图
使用方法: 可能很多人对轮播图感兴趣,下面奉上本人的 原生 js 轮播代码复制 js 到页面的最底部,样式在 css 里改,js 基本不用动,有什么不懂的可以 加本人 QQ172360937 咨询 或 ...
- 自己用原生JS写的轮播图,支持移动端触屏滑动,面向对象思路。分页器圆点支持click和mouseover。
自己用原生javascript写的轮播图,面向对象思路,支持移动端手指触屏滑动.分页器圆点可以选择click点击或mouseover鼠标移入时触发.图片滚动用的setInterval,感觉setInt ...
- 原生JS实现旋转木马轮播图特效
大概是这个样子: 首先来简单布局一下(emm...随便弄一下吧,反正主要是用js来整的) <!DOCTYPE html> <html lang="en"> ...
- photoSlider-html5原生js移动开发轮播图-相册滑动插件
简单的移动端图片滑动切换浏览插件 分别引用css文件和js文件 如: <link rel="stylesheet" type="text/css" hre ...
- 自己用原生JS写的轮播图,支持移动端触摸滑动,分页器圆点可以支持mouseover鼠标移入和click点击,高手看了勿喷哈
自己用原生JavaScript写的轮播图,分页器圆点按钮可支持click点击,也可支持mouseover鼠标悬浮触发,同时支持移动端触摸滑动,有兴趣的友友可以试试哈,菜鸟一枚,高手看了勿喷,请多多指正 ...
随机推荐
- 复杂的1秒--图解Google搜索技术
谷歌(Google),一个非常成功,但又十分神秘,而且带有几分理想化色彩的互联网搜索巨人,它还是一家相当了不起的广告公司,谷歌首页上的那个搜索按钮是其年赢利200亿美元的杀手级应用,也是Interne ...
- 解析jQuery中extend方法--用法《一》
extend方法在jQuery中是一个很重要的方法,jQuey内部用它来扩展属性方法.常用语jQuery插件开发. jQuery提供了两个方法,$.extend和$.fn.extend,两个方法内部实 ...
- Ant学习总结2
<?xml version="1.0" encoding="UTF-8"?> <project default= "compile& ...
- 基于nginx+lua+redis高性能api应用实践
基于nginx+lua+redis高性能api应用实践 前言 比较传统的服务端程序(PHP.FAST CGI等),大多都是通过每产生一个请求,都会有一个进程与之相对应,请求处理完毕后相关进程自动释放. ...
- Codeforce 水题报告
最近做了好多CF的题的说,很多cf的题都很有启发性觉得很有必要总结一下,再加上上次写题解因为太简单被老师骂了,所以这次决定总结一下,也发表一下停课一星期的感想= = Codeforces 261E M ...
- 不想当程序员的CEO不是好投资人:小米雷军23年前所写代码曝光
众所周知,雷军是小米创办人,董事长兼CEO,但是较少人知道,其实雷军是程序员出身,并且在程序员这个行业里一做就是十年.有网友曝光了一段23年前雷军所写的代码,一起来看下. 可以看出这段代码写于1994 ...
- 作为前端工程师,必须要学会的基本工具之一(AI)
由于之前工作中一直使用的都是photoshop,所以对AI软件的使用并不是很熟,导致使用过程中,遇到了困难----字体无法选中.作为前端工程师都知道,一张设计图中有很多文字,如果纯手打那简直是要累死人 ...
- css :target
花了半小时在找如果完成:target的问题 需求:点击<a href="#Main">Main</a>时,会触发:target 效果 结果在网络上没有找到, ...
- 每天一个linux命令(40)--route命令
Linux 系统的route 命令用于显示和操作IP路由表(show /manipulate the ip routing table).要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器, ...
- Node.js~在linux上的部署~外网不能访问node.js网站的解决方法
这是上一篇node.js部署到linux上的后续文章,当我们安装完node.js之后,建立了sailsjs的网站,然后在外面电脑上无法访问这个网站,这个问题我们如何去解决? 解决思路: 查看linux ...