js实现炫酷的左右轮播图

本文实例为大家分享了js左右轮播图的具体代码,供大家参考,具体内容如下

html代码

Document

主要css代码:

主要js代码(

slider.js

):

//生成控制轮播的span
for(var i = 0; i< imgs.length; i++){
var span = document.createElement("span");
span.className = "slider-ctrl-con";
span.innerHTML = imgs.length - i;
slider_ctrl.insertBefore(span,slider_ctrl.children[1]);
}
var spans = slider_ctrl.children;
spans[1].setAttribute("class","slider-ctrl-con current"); //设置第一个span增加current样式

//布局图片,第一张在正确位置,其余的在右边
var scrollWidth = js_slider.clientWidth; //获取大盒子的宽度,也就是后面动画走的距离
for(var i=1; i<imgs.length; i++){ //第一张图片在正确位置
imgs[i].style.left = scrollWidth + "px"; //其余图片在310px的位置
}

//遍历三个按钮--左、右和下面的span
var iNow = 0; //设置当前显示的图片的索引号
for(var k in spans){ //k是索引号
spans[k].onclick = function(){
if(this.className == "slider-ctrl-prev"){

//当前图片右移(从0 -> 310px)
animate(imgs[iNow],{left: scrollWidth});
iNow = --iNow < 0 ? imgs.length-1 : iNow;
imgs[iNow].style.left = -scrollWidth + "px";//快速执行,即将显示的一页立马走到左边,然后显示
animate(imgs[iNow],{left:0}); //下一张图片右移,从-310px->0
setSquare();
}else if(this.className == "slider-ctrl-next"){

//当前图片左移(从0 -> -310px)
animate(imgs[iNow],{left: -scrollWidth});
iNow = (++iNow) % imgs.length;
imgs[iNow].style.left = scrollWidth + "px";//快速执行,即将显示的一页立马走到右边,然后左移显示
animate(imgs[iNow],{left:0}); //下一张图片左移,从310px->0
setSquare();
//或者精简为函数
/autoPlay();/
}else{
/alert("点击了下面的span");/
var clickIndex = this.innerHTML - 1;
if(clickIndex > iNow){
//做法等同于右侧按钮
animate(imgs[iNow],{left: -scrollWidth});
imgs[clickIndex].style.left = scrollWidth + "px";//快速执行,即将显示的一页立马走到右边,然后左移显示
}else if(clickIndex < iNow){
//做法等同于左侧
animate(imgs[iNow],{left: scrollWidth});
imgs[clickIndex].style.left = -scrollWidth + "px";//快速执行,即将显示的一页立马走到左边,然后显示
}
iNow = clickIndex;
animate(imgs[iNow],{left:0});
setSquare();
}
}
}
//控制span小方块的样式 函数
function setSquare(){
//下面的span样式清空,将iNow设置为current,注意是下面的span,不包含左右控制按钮
for(var i=1; i<spans.length-1; i++){
spans[i].className = "slider-ctrl-con";
}
spans[iNow+1].className = "slider-ctrl-con current"; //注意iNow是索引号,要加1
}

//设置定时器 ,和右侧按钮功能一致
var timer =null;
timer = setInterval(autoPlay,2000);
function autoPlay(){
animate(imgs[iNow],{left: -scrollWidth});
iNow = (++iNow) % imgs.length;
imgs[iNow].style.left = scrollWidth + "px";//快速执行,即将显示的一页立马走到右边,然后左移显示
animate(imgs[iNow],{left:0}); //下一张图片左移,从310px->0
setSquare();
}

//清除定时器
js_slider.onmouseover = function(){
clearInterval(timer);
}
//开启定时器
js_slider.onmouseout = function(){
clearInterval(timer); //要执行定时器,先清除定时器
timer = setInterval(autoPlay,2000);
}
}

缓动动画js代码:(

animate.js

0 ? Math.ceil(step) : Math.floor(step); //判断透明度 if(attr == "opacity") // 判断用户有没有输入 opacity { if("opacity" in obj.style) // 判断 我们浏览器是否支持opacity { // obj.style.opacity,//支持opacity-----opacity:0.3 obj.style.opacity = (current + step) /100; } else { // obj.style.filter = alpha(opacity = 30) obj.style.filter = "alpha(opacity = "+(current + step)* 10+")";

}
}
else if(attr == "zIndex")
{
obj.style.zIndex = json[attr];
}
else
{
obj.style[attr] = current + step + "px" ;
}

if(current != json[attr]) // 只要其中一个不满足条件 就不应该停止定时器 这句一定遍历里面
{
flag = false;
}
}
if(flag) // 用于判断定时器的条件
{
clearInterval(obj.timer);
//alert("ok了");
if(fn) // 很简单 当定时器停止了。 动画就结束了 如果有回调,就应该执行回调
{
fn(); // 函数名 + () 调用函数 执行函数 暂且这样替代
}
}
},30)
}

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)