美文网首页
js轮播图实现

js轮播图实现

作者: raining_804f | 来源:发表于2018-02-23 09:21 被阅读0次
* { margin: 0; padding: 0; } ul { list-style: none; } a { text-decoration: none; } .container { margin: 100px auto; position: relative; width: 600px; height: 400px; overflow: hidden; box-shadow: 0 0 5px #92ce36; } .container .wrap { width: 4200px; height: 400px; position: absolute; top: 0; z-index: 1; } .container .wrap img { float: left; width: 600px; height: 400px; } .container .buttons { position: absolute; right: 0; bottom: 20px; width: 146px; height: 10px; z-index: 2; } .container .buttons span { float: left; margin-right: 5px; display: inline-block; width: 20px; height: 20px; text-align: center; border-radius: 500%; color: #FFFFFF; background: #bfea7b; cursor: pointer; } .container .buttons .active { color: #ffed00; background: #1fd659; } .container .arrow { position: absolute; top: 42%; display: none; width: 60px; height: 60px; text-align: center; line-height: 60px; color: #FFFFFF; font-size: 24px; z-index: 2; } .container .arrow:hover { background: rgba(0, 0, 0, 0.5); } .container .arrow_left { left: 10px; } .container .arrow_right { right: 10px; } .container:hover .arrow { display: block; }

js:

////思路: 1 获取相关元素 2 左右箭头点击事件 3 圆点样式

////      4 圆点点击事件 5 自动播放  6 鼠标悬停事件

(function() {

var container = document.querySelector('.container'),

wrap = container.querySelector('.wrap'),

pre = container.querySelector('.arrow_left'),

next = container.querySelector('.arrow_right'),

dots = document.getElementsByTagName('span'),

timer = null,

movDis = 0,

index = 0;

//左右箭头点击效果

next.onclick = function() {

nextRun();

}

pre.onclick = function() {

preRun();

}

function nextRun() {

index++;

if(index > 4) {

index = 0;

}

dotShow();

if(wrap.style.left === '-3600px') {

movDis = -1200;

} else {

movDis = parseInt(wrap.style.left) - 600;

}

wrap.style.left = movDis + 'px';

}

function preRun() {

index--;

if(index < 0) {

index = 4;

}

dotShow();

if(wrap.style.left === '0px') {

movDis = -2400;

} else {

movDis = parseInt(wrap.style.left) + 600;

}

wrap.style.left = movDis + 'px';

}

//自动播放

function autoPlay() {

timer = setInterval(nextRun, 2000);

}

autoPlay();

//整体移动效果

container.onmouseover = function() {

clearInterval(timer);

}

container.onmouseout = function() {

autoPlay();

}

//原点换色

function dotShow() {

for(var i = 0; i < dots.length; i++) {

if(dots[i].className = 'active') {

dots[i].className = '';

}

}

dots[index].className = 'active';

}

//原点点击事件

for(var i = 0; i < dots.length; i++) {

(function(i) {

dots[i].onclick = function() {

var dis = index - i;

if(index == 4 && parseInt(wrap.style.left) !== -3000) {

dis = dis - 5;

}

if(index == 0 && parseInt(wrap.style.left) !== -600) {

dis = dis + 5;

}

wrap.style.left = parseInt(wrap.style.left) + dis * 600 + 'px';

index = i;

dotShow();

}

})(i)

}

})()

相关文章

  • 项目-轮播图

    整个轮播图分为三部分:轮播指标、轮播项目及轮播导航。用boostrap实现轮播图要比用js、jQuery方便的多,...

  • web常用库

    js retina.js 实现retina屏幕图片自动替换 slick.js jQuery插件,实现各种轮播图 w...

  • 简单轮播图(循环播放)

    效果图 原理 布局 样式 JS实现 以上就是用JS实现的自动循环轮播图,我又加上了鼠标移过停留的效果。

  • jquery+swiper实现三图轮播效果

    需求为了实现如图所示的轮播图效果: css代码: js代码: 实现demo下载

  • 原生js轮播图

    今天和大家分享的案例是轮播图 简书 由js实现的轮播图效果 代码展示: css部分: HTML部分: script...

  • 用js原生实现轮播图

    用jquery实现轮播图非常简单的啦!有没有想过用原生js实现轮播图呢???今天琢磨了一下,摸索出来一个,就和大家...

  • 实现轮播图

    实现轮播图 思路: 通过js来控制轮播的图片的样式,可以控制display:none or block 可以控制o...

  • 小程序利用swiper实现轮播图

    小程序实现轮播图比iOS简单很多 .wxml代码: .wxss代码: .js代码:

  • js轮播图实现

    js: ////思路: 1 获取相关元素 2 左右箭头点击事件 3 圆点样式 //// 4 圆点点击事件 5...

  • js实现轮播图

    目标效果(点击两边按钮切换图片) 涉及知识 1.html2.JavaScript3.css 准备素材 a.jpg、...

网友评论

      本文标题:js轮播图实现

      本文链接:https://www.haomeiwen.com/subject/nqbztftx.html