腾讯《活着》频道JS图片轮换效果解析

4 篇文章 0 订阅
3 篇文章 0 订阅

腾讯《活着》频道JS图片轮换效果解析

1.原理分析

总析:

包含内容的层->宽:900 高:400

主要显示层-> 宽800 高400 即最上面那层 z-index=100

中间层->宽- 800*5/6 高400*5/6 z-index=10

最下面的层->宽 800*2/3 高 400*2/3 z-index=1

通过不同宽/高/z-index 来达到层次感 然后通过定时器是层移动 但样式不同 即左中2移动到最上面 左中2的样式变为最上面的样式 原来最上面的样式变为右2 依次类推

1.层z-index属性的运用 上面->下面层z-index依次是:100-10-1

2.margin-top 的运用 最上面与中间,中间与下面的递减 主要是通过这个属性实现的

3.定时器的运用


2.文档构建

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>《活着》汇总页_图片频道_新闻中心_腾讯网</title>

    <style type="text/css">
    .wrapper_zt {
    background: url("http://img1.gtimg.com/news/pics/hv1/244/23/1028/66851809.png") repeat-x scroll 0 0 transparent;
    font-family: Microsoft YaHei,SimHei,STHeiti;
    width: 100%;
}
.main {
    clear: both;
    margin: 0 auto;
    overflow: hidden;
    width: 960px;
}
.slider {
    height: 400px;
    padding: 30px 0;
    width: 960px;
}
.scrollBox {
    height: 400px;
    margin: 0 auto;
    position: relative;
    width: 900px;
}
.scrollPic {
    height: 400px;
    margin: 0 auto;
    width: 800px;
}
.scrollPic .item {
    background: url("http://mat1.gtimg.com/news/2011baronxiong/inc/sm_loader.gif") no-repeat scroll center center #000000;
    position: absolute;
    z-index: 10;
}
.scrollPic .item img {
    border: 1px solid #666666;
    opacity: 0.8;
}
.scrollPic .current img {
    height: 400px;
    opacity: 1;
    width: 800px;
}
.scrollPic .iText {
    display: none;
}
.scrollPic .current .iText {
    background: url("http://img1.gtimg.com/news/pics/hv1/233/9/1032/67108328.png") no-repeat scroll 0 0 transparent;
    display: block;
    height: 100px;
    left: -5px;
    position: absolute;
    top: -5px;
    width: 100px;
}
.prevCur {
    cursor: pointer;
    display: block;
    height: 27px;
    left: -30px;
    position: absolute;
    top: 185px;
    width: 22px;
}
.nextCur {
    cursor: pointer;
    display: block;
    height: 27px;
    position: absolute;
    right: -30px;
    top: 185px;
    width: 22px;
}
.scrollDot {
    bottom: 0;
    left: 100px;
    position: absolute;
}
.scrollDot span {
    background: url("images/ico11.png") no-repeat scroll 0 0 transparent;
    cursor: pointer;
    display: inline-block;
    margin: 0 5px;
    padding: 6px;
}
.scrollDot span.on {
    background: url("images/ico112.png") no-repeat scroll 0 0 transparent;
}
.prevCur {
    background: url("http://img1.gtimg.com/news/pics/hv1/252/14/1031/67044597.png") no-repeat scroll 0 0 transparent;
}
.nextCur {
    background: url("http://img1.gtimg.com/news/pics/hv1/114/21/1031/67046244.png") no-repeat scroll 0 0 transparent;
}
</style>
</head>
<body>
    <div class="wrapper_zt">
        <div class="main">
            <div class="slider">
                <div id="scrollBox" class="scrollBox">
                    <div id="scrollPic" class="scrollPic">
                        <!-- 初始化插入的数据 -->
                        <!--<div class="item" style="left: 208px; width: 666px; height: 333px; margin-top: 33px;
                            z-index: 10;">
                            <a href="http://news.qq.com/zt2012/living/12mother.htm" target="_blank">
                                <img src="http://mat1.gtimg.com/news/huozhe/collection/12suimama.jpg" style="width: 666px;
                                    height: 333px;"></a><div class="iText">
                                    </div>
                        </div>
                        <div class="item" style="left: 366px; width: 533px; height: 266px; margin-top: 66px;
                            z-index: 1;">
                            <a href="http://news.qq.com/zt2012/living/emergency.htm" target="_blank">
                                <img src="http://mat1.gtimg.com/news/huozhe/collection/jizhenshi2.jpg" style="width: 533px;
                                    height: 266px;"></a><div class="iText">
                                    </div>
                        </div>
                        <div class="item" style="left: 0px; width: 533px; height: 266px; margin-top: 66px;
                            z-index: 1;">
                            <a href="http://news.qq.com/zt2012/living/zengchengjie.htm" target="_blank">
                                <img src="http://mat1.gtimg.com/news/huozhe/collection/zengchengjie.jpg" style="width: 533px;
                                    height: 266px;"></a><div class="iText">
                                    </div>
                        </div>
                        <div class="item" style="left: 25px; width: 666px; height: 333px; margin-top: 33px;
                            z-index: 10;">
                            <a href="http://news.qq.com/zt2012/living/shuangfei.htm" target="_blank">
                                <img src="http://mat1.gtimg.com/news/huozhe/collection/shuangfei.jpg" style="width: 666px;
                                    height: 333px;"></a><div class="iText">
                                    </div>
                        </div>
                        <div class="item current" style="left: 50px; width: 800px; height: 400px; margin-top: 0px;
                            z-index: 100;">
                            <a href="http://news.qq.com/zt2012/living/suiqian.htm" target="_blank">
                                <img src="http://mat1.gtimg.com/news/huozhe/collection/piaobo.jpg" style="width: 800px;
                                    height: 400px;"></a><div class="iText">
                                    </div>
                        </div>-->
                    </div>
                    <div id="scrollDot" class="scrollDot">
                        <!-- 初始化插入的数据 -->
                        <!--<span class=""></span><span class=""></span><span class=""></span><span class=""></span>
                        <span class="on"></span>-->
                    </div>
                    <div id="prevCur" class="prevCur">
                    </div>
                    <div id="nextCur" class="nextCur">
                    </div>
                </div>
            </div>
        </div>
    </div>
    
    
</body>
</html>

3.JS解析

function ScrollBox(Context,cScrollPic,sDot,pCur,nCur,cWidth,cHeight,itemWidth,speedTime,auto){
this.Context=[];
this.sDot={};
this.prevCur={};
this.nextCUr={};
this.cScrollPic={};
this.cWidth=800;
this.cHeight=400;
this.currentDot=2;
this._ready="ready";
this.scrollLength=0;
this.itemWidth=400;
this.itemHeight=200;
this.itemData=[];
this.itemData[5]=[];
this.itemData[3]=[];
this.speed=10;
this.tweenTime=30;
this.speedTime = 3000;
this.auto = false;
}
ScrollBox.prototype = {
//返回action后索引位置 参数依次是:当前索引位置,action,偏移量
funtureDot: function (currentNum, dir, spaceNum) {          //0,next,1
var funtureNode = 0;
if (dir == "prev") {                                        //向上翻
funtureNode = currentNum - spaceNum;
if (funtureNode < 0) {
funtureNode = funtureNode + this.scrollLength;
}
} else {                                                    //向下翻
funtureNode = currentNum + spaceNum;
if (funtureNode >= this.scrollLength) {
funtureNode = funtureNode - this.scrollLength;
}
}
return funtureNode;                                         //返回action后索引位置 参数依次是:当前索引位置,action,偏移量
},
//action后返回的值 参数依次是:原始位置,新旧位置差,action次数,允许action次数
tween: function (a, b, t, d) {
return a + b * t / d;
},
//changData重置图片的左边距,宽度,高度,上边距/下边距
changData: function () {
var spaceWidth = 0;
var spaceHeight = 0;
var spaceHeight2 = 0;
spaceWidth = this.cWidth - this.itemWidth;      //scrollBox-scrollPic 900-800=100
if (this.scrollLength == 3) {                   //当数组长度为3
spaceWidth = spaceWidth / 2;                    //获取scrollPic与scrollBox的边距    100/2=50
spaceHeight = this.itemHeight / 6 / 2;          //400/6/2=33        这里取6/1
} else if (this.scrollLength == 5) {            //当数组长度为5
spaceWidth = spaceWidth / 4;                    //获取scrollPic与scrollBox的边距    100/4=25
spaceHeight = this.itemHeight / 6 / 2;          //400/6/2=33        这里取6/1
spaceHeight2 = this.itemHeight / 3 / 2;         //400/3/2=66        这里取3/1
}
//参数依次为:左边距,宽度,高度,上边距/下边距
//PS:这里需要特别解释一下为什么下面会有2 / 3,5 / 6 建议:当看到这样变量反复操作的时候,最好反向逆推,算出结果,根据结果找规律,再回头看代码,你会发现豁然明了
//      先看上面:spaceHeight 取6/1
//               spaceHeight2 取3/1
//      那么图片所占的宽高就为:原始图片宽高的6/5,3/2
this.itemData[5] = [
{ dLeft: 0, dWidth: Math.floor(this.itemWidth * 2 / 3), dHeight: Math.floor(this.itemHeight * 2 / 3), dMarginTop: Math.floor(spaceHeight2), dZIndex: 1 }, 
{ dLeft: Math.floor(spaceWidth), dWidth: Math.floor(this.itemWidth * 5 / 6), dHeight: Math.floor(this.itemHeight * 5 / 6), dMarginTop: Math.floor(spaceHeight), dZIndex: 10 }, 
{ dLeft: Math.floor(spaceWidth * 2), dWidth: Math.floor(this.itemWidth), dHeight: Math.floor(this.itemHeight), dMarginTop: 0, dZIndex: 100 }, 
{ dLeft: Math.floor(this.itemWidth + spaceWidth * 3 - this.itemWidth * 5 / 6), dWidth: Math.floor(this.itemWidth * 5 / 6), dHeight: Math.floor(this.itemHeight * 5 / 6), dMarginTop: Math.floor(spaceHeight), dZIndex: 10 }, 
{ dLeft: Math.floor(this.cWidth - this.itemWidth * 2 / 3), dWidth: Math.floor(this.itemWidth * 2 / 3), dHeight: Math.floor(this.itemHeight * 2 / 3), dMarginTop: Math.floor(spaceHeight2), dZIndex: 1}
];
this.itemData[3] = [
{ dLeft: 0, dWidth: Math.floor(this.itemWidth * 5 / 6), dHeight: Math.floor(this.itemHeight * 5 / 6), dMarginTop: Math.floor(spaceHeight), dZIndex: 1 }, 
{ dLeft: Math.floor(spaceWidth), dWidth: Math.floor(this.itemWidth), dHeight: Math.floor(this.itemHeight), dMarginTop: 0, dZIndex: 10 }, 
{ dLeft: Math.floor(this.cWidth - this.itemWidth * 5 / 6), dWidth: Math.floor(this.itemWidth * 5 / 6), dHeight: Math.floor(this.itemHeight * 5 / 6), dMarginTop: Math.floor(spaceHeight), dZIndex: 1}
];
},
//selectClassName返回图片Div class等于className的项
selectClassName: function (o, className, tagName) {
var tag = o.getElementsByTagName("div");        //获取图片Div
var l = tag.length;                             //获取数组
var r = [];                                     //初始数组
for (var i = 0; i < l; i++) {                   //循环数组
var classTag = tag[i].className.split(" ");     //分割class数组
var ll = classTag.length;                       //获取class数组
for (var j = 0; j < ll; j++) {                  //循环数组
if (classTag[j] == className) {                 //如果循环项等于className,添加到数组中
r.push(tag[i]);
}
}
}
return r;                                       //返回图片Div class等于className的项
},
//当前索引位置数组
currentArr: function () {
var rArr = [];
var sPicBox = document.getElementById(this.cScrollPic);     //获取scrollPic
var sPicBoxItem = this.selectClassName(sPicBox, "item", "div"); //获取指定calss的图片Div
for (var i = 0; i < this.scrollLength; i++) {
for (var j = 0; j < this.scrollLength; j++) {
var tempLeft = sPicBoxItem[j].style.left;                       //图片Div左边距 如:0px
tempLeft = tempLeft.replace(/[^\d.]/g, '');                     //去除px 如:0px->0
if (this.itemData[this.scrollLength][i].dLeft == tempLeft) {    //左边距相等时,将j添加到数组中
rArr.push(j);
}
}
}
return rArr;                                                    //返回索引位置数组
},
//设置样式
whichDot: function (n) {
var m = n + 2;                                                  //移动后的索引都传进来了,这里还要取m值,不知何解?
if (n == 0) m = this.scrollLength - 1;
if (n == (this.scrollLength - 1)) m = 0;
if (n == (this.scrollLength - 2)) m = 1;
if (n == (this.scrollLength - 3)) m = 2;
var dot = document.getElementById(this.sDot);                   //获取scrollDot
var dotItem = dot.getElementsByTagName("span");                 //获取scrollDot下span
var splitBox = document.getElementById(this.cScrollPic);        //获取scrollPic
var split = this.selectClassName(splitBox, 'item', 'div');      //获取指定calss的图片Div
for (var i = 0; i < this.scrollLength; i++) {                   //循环数组
dotItem[i].className = "";                                      //初始样式
split[i].className = "item";                                    //初始样式
if (i == m) {
dotItem[i].className = "on";                                    //设置选中样式
split[i].className = "item current";                            //设置选中样式
}
}
m = null;                                                       //初始m值
},
//action 参数依次为:action,原始索引位置,新索引位置,当前项,偏移量,左边距差值,宽度差值,高度差值,上边距/下边距差值,z-index差值,原始左边距,原始宽度,原始高度,原始上边距/下边距,原始z-index
scrolling: function (dir, currentone, funtureNode, n, spaceNum, changeLeft, changeWidth, changeHeight, changeMarginTop, changeZIndex, tempLeft, tempWidth, tempHeight, tempMarginTop, tempZIndex) {
var flag = null;
if (flag) {         //flag!=null 强制清除定时器
clearTimeout(flag);
}
var sPicBox = document.getElementById(this.cScrollPic);     //获取scrollPic
var sPicBoxItem = this.selectClassName(sPicBox, "item", "div"); //获取指定calss的图片Div
var ctempLeft = ctempWidth = ctempHeight = ctempMarginTop = ctempZIndex = 0;
var _this = this;
var t = 0;
(function () {
ctempLeft = _this.tween(tempLeft, changeLeft, t, _this.speed);      //action后左边距
ctempWidth = _this.tween(tempWidth, changeWidth, t, _this.speed);   //action后宽度
ctempHeight = _this.tween(tempHeight, changeHeight, t, _this.speed);    //action后高度
ctempMarginTop = _this.tween(tempMarginTop, changeMarginTop, t, _this.speed);   //action后上/下边距
ctempZIndex = _this.tween(tempZIndex, changeZIndex, t, _this.speed);    //action后z-index
sPicBoxItem[n].style.cssText = "left:" + parseInt(ctempLeft) + "px;width:" + parseInt(ctempWidth) + "px;height:" + parseInt(ctempHeight) + "px;margin-top:" + parseInt(ctempMarginTop) + "px;z-index:" + parseInt(ctempZIndex); //设置图片Div样式
sPicBoxItem[n].getElementsByTagName("img")[0].style.cssText = "width:" + parseInt(ctempWidth) + "px;height:" + parseInt(ctempHeight) + "px";    //设置图片样式
t++;    //action操作次数
flag = setTimeout(arguments.callee, _this.tweenTime);   //定时任务
if (t > _this.speed) {      //action次数大于最大值
sPicBoxItem[n].style.cssText = "left:" + _this.itemData[_this.scrollLength][funtureNode].dLeft + "px;width:" + _this.itemData[_this.scrollLength][funtureNode].dWidth + "px;height:" + _this.itemData[_this.scrollLength][funtureNode].dHeight + "px;margin-top:" + _this.itemData[_this.scrollLength][funtureNode].dMarginTop + "px;z-index:" + _this.itemData[_this.scrollLength][funtureNode].dZIndex;
sPicBoxItem[n].getElementsByTagName("img")[0].style.cssText = "width:" + _this.itemData[_this.scrollLength][funtureNode].dWidth + "px;height:" + _this.itemData[_this.scrollLength][funtureNode].dHeight + "px";
t = 0;  //初始action次数
clearTimeout(flag); //清除计时器
flag = null;        //清除计时器对象
if (n == (_this.scrollLength - 1)) {
_this._ready = "ready";
}
}
})();
},
//action
act: function (current, dir) {
if (this._ready == "scrolling") {
return;
}
this._ready = "scrolling";
var rArr = this.currentArr();   //当前索引位置数组
var changeLeft = changeWidth = changeHeight = changeMarginTop = changeZIndex = 0;
var tempLeft = tempWidth = tempHeight = tempMarginTop = tempZIndex = 0;
var spaceNum = 1;
var tempCurrent = 0;
if (dir == "") {                                    //span点击事件 传入的current应该是span索引
var orgspaceNum = current - this.currentDot;
spaceNum = Math.abs(orgspaceNum);                   //获取绝对值
if (orgspaceNum > 0) {                              //3/4-2>0 向下翻
dir = "next";
} else if (orgspaceNum < 0) {                       //0/1-2<0 向上翻
dir = "prev";
}
}
for (var i = 0; i < this.scrollLength; i++) {               //循环数组
var funtureNode = this.funtureDot(i, dir, spaceNum);
changeLeft = this.itemData[this.scrollLength][funtureNode].dLeft - this.itemData[this.scrollLength][i].dLeft;       //左边距差值
changeWidth = this.itemData[this.scrollLength][funtureNode].dWidth - this.itemData[this.scrollLength][i].dWidth;    //宽度差值
changeHeight = this.itemData[this.scrollLength][funtureNode].dHeight - this.itemData[this.scrollLength][i].dHeight; //高度差值
changeMarginTop = this.itemData[this.scrollLength][funtureNode].dMarginTop - this.itemData[this.scrollLength][i].dMarginTop;    //上边距/下边距差值
changeZIndex = this.itemData[this.scrollLength][funtureNode].dZIndex - this.itemData[this.scrollLength][i].dZIndex; //z-index差值
tempLeft = this.itemData[this.scrollLength][i].dLeft;       //原始左边距
tempWidth = this.itemData[this.scrollLength][i].dWidth;     //原始宽度
tempHeight = this.itemData[this.scrollLength][i].dHeight;   //原始高度
tempMarginTop = this.itemData[this.scrollLength][i].dMarginTop; //原始上边距/下边距
tempZIndex = this.itemData[this.scrollLength][i].dZIndex;   //原始z-index
//参数依次为:action,原始索引位置,新索引位置,当前索引所在位置,偏移量,左边距差值,宽度差值,高度差值,上边距/下边距差值,z-index差值,原始左边距,原始宽度,原始高度,原始上边距/下边距,原始z-index
this.scrolling(dir, i, funtureNode, rArr[i], spaceNum, changeLeft, changeWidth, changeHeight, changeMarginTop, changeZIndex, tempLeft, tempWidth, tempHeight, tempMarginTop, tempZIndex);
}
tempCurrent = this.funtureDot(this.currentDot, dir, spaceNum);  //返回action后索引位置
this.whichDot(tempCurrent);     //设置样式
this.currentDot = tempCurrent;  //设置action后索引为当前索引
},
//loadAct初始化标签
loadAct: function () {
this.scrollLength = this.Context.length;        //当前数组长度
var sPicBox = document.getElementById(this.cScrollPic);     //存放图片Div
var elem = elemText = elemLink = elemImg = 0;
var sDotBox = document.getElementById(this.sDot);           //scrollDot
var dotElem = 0;
for (var i = 0; i < this.scrollLength; i++) {               //循环数组
//拼接Div
//<div class="item" style="left: 25px; width: 666px; height: 333px; margin-top: 33px;
//    z-index: 10;">
//    <a href="http://news.qq.com/zt2012/living/shuangfei.htm" target="_blank">
//        <img src="http://mat1.gtimg.com/news/huozhe/collection/shuangfei.jpg" style="width: 666px;
//            height: 333px;"></a><div class="iText">
//            </div>
//</div>
elem = document.createElement("div");                       //创建初始Div
elem.className = "item";                                    //class='item'
elemLink=document.createElement('a');                       //创建超链接
elemLink.href=this.Context[i].href;                         //获取数组参数:{"img":"http://mat1.gtimg.com/news/huozhe/collection/12suimama.jpg","href":"http://news.qq.com/zt2012/living/12mother.htm"}
elemLink.target="_blank";                                   //超链接打开方式
elem.appendChild(elemLink);                                 //将超链接添加到Div中
elemImg = document.createElement("img");                    //创建Img
elemImg.src = this.Context[i].img;                          //获取数组参数:{"img":"http://mat1.gtimg.com/news/huozhe/collection/12suimama.jpg","href":"http://news.qq.com/zt2012/living/12mother.htm"}
elemLink.appendChild(elemImg);                              //将图片添加到超链接中
elemText = document.createElement("div");                   //创建左上Icon图片Div
elemText.className = "iText";                               //class='iText'
elem.appendChild(elemText);                                 //将Div添加到初始Div中
sPicBox.appendChild(elem);                                  //将初始Div添加到图片Div
//拼接span
//<span class=""></span>
dotElem = document.createElement("span");                   //创建初始Span
sDotBox.appendChild(dotElem);                               //将初始Span添加到scrollDot中
}
var sPicBoxItem = this.selectClassName(sPicBox, "item", "div"); //返回图片Div class等于className的项
this.currentDot = Math.floor(this.scrollLength / 2);            //取中间数
sPicBoxItem[this.currentDot].className = "item current";        //设置中间数class='item current' 即选中状态
sDotBox.getElementsByTagName("span")[this.currentDot].className = "on"; //设置对应scrollDot里面的span class='on'
this.changData();                                                       //左边距,宽度,高度,上边距/下边距
for (var n = 0; n < this.scrollLength; n++) {                           //循环数组
var _tempData = this.itemData[this.scrollLength][n];                    //获取图片对象 this.itemData[this.scrollLength]=itemData[5]/itemData[3]
sPicBoxItem[n].style.cssText = "left:" + _tempData.dLeft + "px;width:" + _tempData.dWidth + "px;height:" + _tempData.dHeight + "px;margin-top:" + _tempData.dMarginTop + "px;z-index:" + _tempData.dZIndex;     //设置图片Div样式
sPicBoxItem[n].getElementsByTagName("img")[0].style.cssText = "width:" + _tempData.dWidth + "px;height:" + _tempData.dHeight + "px";                //设置图片样式
}
},
init: function () {
var flag1 = flag2 = flag3 = flag4 = flag5 = flag6 = null;
if (flag1 || flag2 || flag3) {
clearInterval(flag1);
clearTimeout(flag2);
clearTimeout(flag3);
flag1 = flag2 = flag3 = null;
}
var _this = this;
this.loadAct();             //初始化标签
window.onload = function () {   //清除定时器
clearTimeout(flag2);
clearTimeout(flag3);
flag2 = flag3 = null;
if (_this.auto == true) {       //this.auto=true 设置定时器
flag1 = setInterval(function () {
_this.act("", "next");
}, _this.speedTime);            //_this.speedTime 间隔时间
}
};
document.getElementById(this.pCur).onclick = function () {      //向上翻点击事件
if (flag1 || flag2 || flag3 || flag4 || flag5 || flag6) {
clearInterval(flag1);
clearTimeout(flag2);
clearTimeout(flag3);
clearTimeout(flag4);
clearTimeout(flag5);
clearTimeout(flag6);
flag1 = flag2 = flag3 = flag4 = flag5 = flag6 = null;
}
_this.act("", "prev");                                          //向上翻action
flag4 = setTimeout(function () {
if (_this.auto == true) {                                       //this.auto == true 设置定时任务
flag1 = setInterval(function () {
_this.act("", "next");
}, _this.speedTime);
}
}, 1000);
}
document.getElementById(this.nCur).onclick = function () {      //向下翻点击事件
if (flag1 || flag2 || flag3 || flag4 || flag5 || flag6) {
clearInterval(flag1);
clearTimeout(flag2);
clearTimeout(flag3);
clearTimeout(flag4);
clearTimeout(flag5);
clearTimeout(flag6);
flag1 = flag2 = flag3 = flag4 = flag5 = flag6 = null;
}
_this.act("", "next");                                          //向下翻action
flag4 = setTimeout(function () {
if (_this.auto == true) {                                       //this.auto == true 设置定时任务
flag1 = setInterval(function () {
_this.act("", "next");
}, _this.speedTime);
}
}, 1000);
}
var sDotBox = document.getElementById(this.sDot);               //获取scrollDot
var sDotBoxItem = sDotBox.getElementsByTagName("span");         //获取span
for (var i = 0; i < this.scrollLength; i++) {
sDotBoxItem[i].onclick = (function (m) {                        //设置span点击事件(这里由于样式问题span点击事件在这里起不到作用)
return function () {
if (flag1 || flag2 || flag3 || flag4 || flag5 || flag6) {
clearInterval(flag1);
clearTimeout(flag2);
clearTimeout(flag3);
clearTimeout(flag4);
clearTimeout(flag5);
clearTimeout(flag6);
flag1 = flag2 = flag3 = flag4 = flag5 = flag6 = null;
}
_this.act(m, "");                                               //猜测传入的应该是span索引
flag6 = setTimeout(function () {                                //设置定时任务
flag1 = setInterval(function () {
_this.act("", "next");
}, _this.speedTime);
}, 1000);
}
})(i);
}
}
}
/* |xGv00|4b6fb41690ab6674e5b100289265e74a */

4.添加JS初始化代码

在Html文档body底部添加

<script type="text/javascript" src="hzslider.js"></script>

    <script type="text/javascript" language="javascript">
var scrollBox0=new ScrollBox();
scrollBox0.Context=[
{"img":"http://mat1.gtimg.com/news/huozhe/collection/12suimama.jpg","href":"http://news.qq.com/zt2012/living/12mother.htm"},
{"img":"http://mat1.gtimg.com/news/huozhe/collection/jizhenshi2.jpg","href":"http://news.qq.com/zt2012/living/emergency.htm"},
{"img":"http://mat1.gtimg.com/news/huozhe/collection/zengchengjie.jpg","href":"http://news.qq.com/zt2012/living/zengchengjie.htm"},
{"img":"http://mat1.gtimg.com/news/huozhe/collection/shuangfei.jpg","href":"http://news.qq.com/zt2012/living/shuangfei.htm"},
{"img":"http://mat1.gtimg.com/news/huozhe/collection/piaobo.jpg","href":"http://news.qq.com/zt2012/living/suiqian.htm"}
];
scrollBox0.sDot="scrollDot";
scrollBox0.pCur="prevCur";
scrollBox0.nCur="nextCur";
scrollBox0.cScrollPic="scrollPic";
scrollBox0.cWidth=900;
scrollBox0.cHeight=400;
scrollBox0.itemWidth=800; //当前图片宽度
scrollBox0.itemHeight=400; //当前图片高度
scrollBox0.speedTime = 3000;
scrollBox0.auto = true;
scrollBox0.init();
    </script>


5.效果


6.完成

结语:看见好东西就忍不住想看看偷笑 下载Demo

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值