最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JS幻灯片可循环播放可平滑旋转带滚动导航(自写)_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:12:33
文档

JS幻灯片可循环播放可平滑旋转带滚动导航(自写)_javascript技巧

JS幻灯片可循环播放可平滑旋转带滚动导航(自写)_javascript技巧:最近在帮别人改一些东西,在网上找了好久,但是没有相同的,自己改了下,拿出来分享下: 先展示下效果把: index.html 页面展示代码 代码如下: prev next 小乔,三国时期的主要女性人物之一。在三国时归属吴国,国色流离、资貌绝伦,是当时有名
推荐度:
导读JS幻灯片可循环播放可平滑旋转带滚动导航(自写)_javascript技巧:最近在帮别人改一些东西,在网上找了好久,但是没有相同的,自己改了下,拿出来分享下: 先展示下效果把: index.html 页面展示代码 代码如下: prev next 小乔,三国时期的主要女性人物之一。在三国时归属吴国,国色流离、资貌绝伦,是当时有名


最近在帮别人改一些东西,在网上找了好久,但是没有相同的,自己改了下,拿出来分享下:
先展示下效果把:

index.html 页面展示代码
代码如下:

















  • 小乔,三国时期的主要女性人物之一。在三国时归属吴国,国色流离、资貌绝伦,是当时有名的东吴美女。




  • 潘安,西晋文学家,本名潘岳。中国古代最著名的美男子之首、"金谷二十四友"之首。




  • 朱元璋,明王朝的开国皇帝,建立了全国统一的封建政权。




  • 吕雉,西汉开国皇帝高祖刘邦的原配夫人,中国历史上第一位掌权的女性统治者。




  • 诸葛亮,蜀汉丞相,三国时期杰出的政治家、战略家、发明家、军事家。
















  • 接下来是对应的JS文件内容:
    代码如下:
    //var tempi=0;
    function ZoomPic ()
    {
    this.initialize.apply(this, arguments);
    }
    ZoomPic.prototype =
    {
    initialize : function (id)
    {
    var _this = this;
    this.wrap = typeof id === "string" ? document.getElementById(id) : id;
    this.oUl = this.wrap.getElementsByTagName("ul")[0];
    this.aLi = this.wrap.getElementsByTagName("li");
    this.spans = this.wrap.getElementsByTagName("label");
    this.prev = this.wrap.getElementsByTagName("pre")[0];
    this.next = this.wrap.getElementsByTagName("pre")[1];
    this.timer = null;
    this.aSort = [];
    this.aSpan = [];
    this.iCenter = 2;
    this._doPrev = function () {return _this.doPrev.apply(_this)};
    this._doNext = function () {return _this.doNext.apply(_this)};
    this.options = [
    {width:50, height:212, top:55, left:0, zIndex:1},
    {width:90, height:252, top:35, left:50, zIndex:2},
    {width:400, height:292, top:10, left:140, zIndex:3},
    {width:90, height:252, top:35, left:540, zIndex:2},
    {width:50, height:212, top:55, left:630, zIndex:1}
    ];
    for (var i = 0; i < this.aLi.length; i++) this.aSort[i] = this.aLi[i];
    for (var i = 0; i < this.spans.length; i++) this.aSpan[i] = this.spans[i];
    this.aSort.unshift(this.aSort.pop());
    this.setUp();
    this.addEvent(this.prev, "click", this._doPrev);
    this.addEvent(this.next, "click", this._doNext);
    this.doImgClick();
    this.dospansClick();
    this.timer = setInterval(function ()
    {
    _this.doNext()
    }, 3000);
    this.wrap.onmouseover = function ()
    {
    clearInterval(_this.timer)
    };
    this.wrap.onmouseout = function ()
    {
    _this.timer = setInterval(function ()
    {
    _this.doNext()
    }, 3000);
    }
    },
    doPrev : function ()
    {
    this.aSort.unshift(this.aSort.pop());//删除数组最后一项,并且返回数组 获取最后一位
    this.setUp()
    },
    doNext : function ()
    {
    this.aSort.push(this.aSort.shift());//删除数组第一项,并且返回数组 删除第一位,然后把第一位push到最后一个上面
    this.setUp()
    },
    doImgClick : function ()
    {
    var _this = this;
    for (var i = 0; i < this.aSort.length; i++)
    {
    this.aSort[i].onclick = function ()
    { //alert(this.index);
    if (this.index > _this.iCenter)
    {
    for (var i = 0; i < this.index - _this.iCenter; i++) _this.aSort.push(_this.aSort.shift());
    _this.setUp()
    }
    else if(this.index < _this.iCenter)
    {
    for (var i = 0; i < _this.iCenter - this.index; i++) _this.aSort.unshift(_this.aSort.pop());
    _this.setUp()
    }
    }
    }
    },dospansClick:function(){
    var _this = this;
    for (var i = 0; i < this.aSpan.length; i++)
    {
    this.aSpan[i].onclick = function ()
    {
    //alert(this.id);
    //alert(_this.aSort[_this.iCenter].getElementsByTagName('img')[0].name);//获取到当前是第几个在中间
    var cruuNum=_this.aSort[_this.iCenter].getElementsByTagName('img')[0].name;
    // if (this.id > _this.iCenter)
    // {
    // for (var i = 0; i < this.id - _this.iCenter; i++) _this.aSort.push(_this.aSort.shift());//取
    // _this.setUp()
    //alert(this.id+'...'+cruuNum);
    if(this.id-cruuNum>0){
    for (var i = 0; i < this.id-cruuNum; i++) _this.aSort.push(_this.aSort.shift());//取
    _this.setUp()
    }else{
    //if(cruuNum==5){
    //if(this.id-cruuNum>0){
    for (var i = 0; i < -(this.id-cruuNum); i++) _this.aSort.unshift(_this.aSort.pop());//取
    _this.setUp();
    //}

    //}
    }
    // else{
    // for (var i = 0; i < -(this.id-cruuNum); i++) _this.aSort.push(_this.aSort.shift());//取
    // _this.setUp()
    //
    // }


    // }
    // else if(this.id < _this.iCenter)
    // {
    // for (var i = 0; i < _this.iCenter - this.id; i++) _this.aSort.unshift(_this.aSort.pop());
    // _this.setUp()
    // }

    // for (var i = 0; i <5; i++){
    // _this.aSort.push(_this.aSort.shift());//取第一个
    // alert(_this.aSort[_this.iCenter].getElementsByTagName('img')[0].name+'aaa'+this.id);
    // if(_this.aSort[_this.iCenter].getElementsByTagName('img')[0].name==(this.id+1)){
    // _this.setUp()
    // break;
    // }
    // }

    }
    }
    },
    setUp : function ()
    {
    var _this = this;
    var i = 0;
    for (i = 0; i < this.aSort.length; i++) this.oUl.appendChild(this.aSort[i]);//gebytagui0
    for (i = 0; i < this.aSort.length; i++)
    {
    this.aSort[i].index = i;
    //控制浮动层
    if (i < 5)
    {

    this.css(this.aSort[i], "display", "block");
    this.doMove(this.aSort[i], this.options[i], function ()
    {
    _this.doMove(_this.aSort[_this.iCenter].getElementsByTagName("img")[0], {opacity:100}, function ()
    {
    _this.doMove(_this.aSort[_this.iCenter].getElementsByTagName("img")[0], {opacity:100}, function ()
    {
    _this.aSort[_this.iCenter].onmouseover = function ()//鼠标放上去
    {
    _this.doMove(this.getElementsByTagName("div")[0], {bottom:0})
    };
    _this.aSort[_this.iCenter].onmouseout = function ()
    {
    _this.doMove(this.getElementsByTagName("div")[0], {bottom:-100})
    }
    })
    })
    });
    }
    else
    {
    this.css(this.aSort[i], "display", "none");
    this.css(this.aSort[i], "width", 0);
    this.css(this.aSort[i], "height", 0);
    this.css(this.aSort[i], "top", 37);
    this.css(this.aSort[i], "left", this.oUl.offsetWidth / 2)
    }
    if (i < this.iCenter || i > this.iCenter)//
    {
    this.css(this.aSort[i].getElementsByTagName("img")[0], "opacity", 30)
    this.aSort[i].onmouseover = function ()
    {
    _this.doMove(this.getElementsByTagName("img")[0], {opacity:100})
    };
    this.aSort[i].onmouseout = function ()
    {
    _this.doMove(this.getElementsByTagName("img")[0], {opacity:35})
    };
    this.aSort[i].onmouseout();
    }
    else
    {
    //中间 一直是2
    //alert(this.aSort[i].text);//取消变亮事件
    //alert(this.aSort[i].getElementsByTagName("img")[0].name);
    //变换颜色
    var ttSe=this.aSort[i].getElementsByTagName("img")[0].name;
    var numbuts= document.getElementsByName('numBut');
    //alert(numbuts.length);

    for(var t=0;tif(t==0){
    if(ttSe==5){
    numbuts[t].className ='numbutLeftCen';
    }else
    numbuts[t].className ='numbutLeft';
    }else if(t==ttSe){
    numbuts[t].className ='numbutCen';
    }else if(t==numbuts.length){
    //alert(t);
    numbuts[0].className ='numbutCen';
    }else{
    //全部修改class
    numbuts[t].className='numbut';
    }
    //var aObj = document.getElementById("a的ID");
    //添加事件
    //alert(tempi);
    // if(tempi==0){//alert(tempi);
    // if (window.addEventListener) {//Mozilla系列
    // numbuts[t].addEventListener('click', _this.addClick(t+1), false);
    // } else if (window.attachEvent) {//IE
    // numbuts[t].attachEvent('onclick', this.addClick(t+1));
    // }
    // }
    }
    //tempi++;
    this.aSort[i].onmouseover = this.aSort[i].onmouseout = null
    }
    }
    },addEvent : function (oElement, sEventType, fnHandler)
    {
    return oElement.addEventListener ? oElement.addEventListener(sEventType, fnHandler, false) : oElement.attachEvent("on" + sEventType, fnHandler)
    },
    css : function (oElement, attr, value)
    {
    if (arguments.length == 2)
    {
    return oElement.currentStyle ? oElement.currentStyle[attr] : getComputedStyle(oElement, null)[attr]
    }
    else if (arguments.length == 3)
    {
    switch (attr)
    {
    case "width":
    case "height":
    case "top":
    case "left":
    case "bottom":
    oElement.style[attr] = value + "px";
    break;
    case "opacity" :
    oElement.style.filter = "alpha(opacity=" + value + ")";
    oElement.style.opacity = value / 100;
    break;
    default :
    oElement.style[attr] = value;
    break
    }
    }
    },
    doMove : function (oElement, oAttr, fnCallBack)
    {
    var _this = this;
    clearInterval(oElement.timer);
    oElement.timer = setInterval(function ()
    {
    var bStop = true;
    for (var property in oAttr)
    {
    var iCur = parseFloat(_this.css(oElement, property));
    property == "opacity" && (iCur = parseInt(iCur.toFixed(2) * 100));
    var iSpeed = (oAttr[property] - iCur) / 5;
    iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);

    if (iCur != oAttr[property])
    {
    bStop = false;
    _this.css(oElement, property, iCur + iSpeed)
    }
    }
    if (bStop)
    {
    clearInterval(oElement.timer);
    fnCallBack && fnCallBack.apply(_this, arguments)
    }
    }, 30)
    },addClick:function (num){
    //alert(num);
    // if (this.index > _this.iCenter)
    // {
    // for (var i = 0; i < this.index - _this.iCenter; i++) _this.aSort.push(_this.aSort.shift());
    // _this.setUp()
    // }
    }
    };
    window.onload = function ()
    {
    new ZoomPic("box");
    };
    function tt(){
    //alert(1);

    }

    OK,最后加上一些样式上的东西,就可以跑起来了;
    代码如下:
    body {
    margin: 0px; padding: 0px;
    }
    div {
    margin: 0px; padding: 0px;
    }
    ul {
    margin: 0px; padding: 0px;
    }
    li {
    margin: 0px; padding: 0px;
    }
    h4 {
    margin: 0px; padding: 0px;
    }
    p {
    margin: 0px; padding: 0px;
    }
    body {
    no-repeat 50% 0px rgb(0, 0, 0); font: 12px/1.8 arial; color: rgb(255, 255, 255); font-size-adjust: none; font-stretch: normal;
    }
    a {
    background: rgb(102, 102, 102); padding: 2px 5px; color: rgb(255, 255, 255); text-decoration: none;
    }
    a:hover {
    background: rgb(255, 153, 0);
    }
    #box {
    margin: 1px auto 0px; width: 680px; height: 320px; position: relative;
    }
    #box ul {
    width: 680px; height: 320px; position: relative;
    }
    #box li {
    background: rgb(0, 0, 0); list-style: none; border-radius: 3px; border:0px solid rgb(0, 0, 0); left: 377px; top: 146px; width: 0px; height: 0px; overflow: hidden; position: absolute; z-index: 0; cursor: pointer;
    }
    #box li div {
    background: rgb(0, 0, 0); width: 100%; height:40px; bottom: -100px; position: absolute; opacity: 0.7;
    }
    #box li div h4 {
    font: 12px/24px arial; margin: 0px 10px; border-bottom-color: rgb(51, 51, 51); border-bottom-width: 1px; border-bottom-style: solid; font-size-adjust: none; font-stretch: normal;
    }
    #box li div h4 span {
    color: red; margin-left: 10px;
    }
    #box li div p {
    margin: 5px 10px 0px; text-indent: 2em;
    }
    .numbutLeft{width: 15px; height: 5px; background-color:#AFB7B6; float: left; cursor: pointer;}
    .numbut{width: 15px; height: 5px; background-color:#AFB7B6; float: left; margin-left: 5px; cursor: pointer;}
    .numbutCen{width: 15px; height: 5px; background-color:#FF0000; float: left; margin-left: 5px; cursor: pointer;}
    .numbutLeftCen{width: 15px; height: 5px; background-color:#FF0000; float: left; cursor: pointer;}
    .numbutdiv{height: 10px;width: 100%;color: red;margin-top: 0px; padding-top: 0px}
    .ndv{height: 10px;width: 95px; margin: 0 auto}
    #box .next {
    background-position: -39px 0px; right: -60px;
    }
    #copyright {
    text-align: center; padding-top: 10px;
    }

    OOOOOKKK 了,奇特的效果就要出来了 ,还有一些不完美的地方,懒得去改了,有高手可以改改看,但希望分享哦。
    效果如下:

    文档

    JS幻灯片可循环播放可平滑旋转带滚动导航(自写)_javascript技巧

    JS幻灯片可循环播放可平滑旋转带滚动导航(自写)_javascript技巧:最近在帮别人改一些东西,在网上找了好久,但是没有相同的,自己改了下,拿出来分享下: 先展示下效果把: index.html 页面展示代码 代码如下: prev next 小乔,三国时期的主要女性人物之一。在三国时归属吴国,国色流离、资貌绝伦,是当时有名
    推荐度:
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top