zoukankan      html  css  js  c++  java
  • javascript实现渐隐渐现上下循环滚动

    用jquery无缝自适应高度隔时上下滚动一文中我们实现了用jquery来实现一种较为华丽的网站信息或公告的上下滚动,本文介绍一种用javascript代码实现的上下循环滚动,滚动时还能让被显示的第一条信息渐现效果。(在dscuzX2中工作,请看下文演示,不知道在wordpress中是否正常)

    <script type="text/javascript">
    function H$(i) {return document.getElementById(i)}
    function H$$(c, p) {return p.getElementsByTagName(c)}
    var slider = function () {
    function init (o) {
    this.id = o.id;
    this.at = o.auto ? o.auto : 3;
    this.o = 0;
    this.pos();
    }
    init.prototype = {
    pos : function () {
    clearInterval(this.__b);
    this.o = 0;
    var el = H$(this.id), li = H$$('li', el), l = li.length;
    var _t = li[l-1].offsetHeight;
    var cl = li[l-1].cloneNode(true);
    cl.style.opacity = 0; cl.style.filter = 'alpha(opacity=0)';
    el.insertBefore(cl, el.firstChild);
    el.style.top = -_t + 'px';
    this.anim();
    },
    anim : function () {
    var _this = this;
    this.__a = setInterval(function(){_this.animH()}, 20);
    },
    animH : function () {
    var _t = parseInt(H$(this.id).style.top), _this = this;
    if (_t >= -1) {
    clearInterval(this.__a);
    H$(this.id).style.top = 0;
    var list = H$$('li',H$(this.id));
    H$(this.id).removeChild(list[list.length-1]);
    this.__c = setInterval(function(){_this.animO()}, 20);
    //this.auto();
    }else {
    var __t = Math.abs(_t) - Math.ceil(Math.abs(_t)*.07);
    H$(this.id).style.top = -__t + 'px';
    }
    },
    animO : function () {
    this.o += 2;
    if (this.o == 100) {
    clearInterval(this.__c);
    H$$('li',H$(this.id))[0].style.opacity = 1;
    H$$('li',H$(this.id))[0].style.filter = 'alpha(opacity=100)';
    this.auto();
    }else {
    H$$('li',H$(this.id))[0].style.opacity = this.o/100;
    H$$('li',H$(this.id))[0].style.filter = 'alpha(opacity='+this.o+')';
    }
    },
    auto : function () {
    var _this = this;
    this.__b = setInterval(function(){_this.pos()}, this.at*1000);
    }
    }
    return init;
    }();
    </script>
    <script type="text/javascript">
    new slider({id:'slider'})
    </script>

    你要做的就是在你想要该效果的地方增加<ul id="slider"><li>要滚动的信息</li></ul>


     


  • 相关阅读:
    chrome——关于chrome浏览器的奇葩问题
    vscode——配置终端集成bash和cmd
    AndroidStudio——Android SDK
    Navicat——如何导出所有的查询数据
    mpvue——实现点击数组内的某一元素进行置顶(排序第一)操作
    TP5.x——开启跨域访问
    TP5.x——聊天列表查询
    MarkDowm——语法篇
    写一个整数四则运算的解析器——语法分析部分
    写一个整数四则运算的解析器——词法分析部分
  • 原文地址:https://www.cnblogs.com/woohblog/p/2710815.html
Copyright © 2011-2022 走看看