JS实现模拟新浪微博和腾讯微博首页滚动

来源:互联网 发布:造价师工程师网络教育 编辑:程序博客网 时间:2024/05/17 15:39
<!DOCTYPE html><html><head>    <meta charset="utf-8" />    <title>JS实现模拟新浪微博和腾讯微博首页滚动效果_www.phpernote.com</title>    <style type="text/css">    *{margin:0;padding:0}    body{font:12px/1.8 Arial;color:#666;margin:0;height:100%;background:#333}    .wrapper{padding:50px}    ul,li{margin:0;padding:0;list-style:none}    .wp{position:relative;width:800px;height:400px;overflow:hidden;margin:20px auto;border:4px solid #121212;background:#fff}    .slider{position:absolute;width:760px;padding:0 20px;left:0;top:0}    .slider li{padding:20px 0;border-bottom:1px dashed #ccc;overflow:hidden;width:100%}    </style>    <script type="text/javascript">        function H$(i) {            return document.getElementById(i)        }        function H$$(c, p) {            return p.getElementsByTagName(c)        }        var slider = function () {            function inits(o) {                this.id = o.id;                this.at = o.auto ? o.auto : 3;                this.o = 0;                this.pos()            }            inits.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)                    } else {                        var __t = Math.abs(_t) - Math.ceil(Math.abs(_t) * 0.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 inits        }();    </script></head><body>    <h1 class="tit-h1">JS实现模拟新浪微博大厅和腾讯微博首页滚动效果 www.phpernote.com</h1>    <div class="wrapper">        <div class="wp">            <ul id="slider" class="slider">                <li>入山又恐别倾城  世间安得双全 不负如来不负卿 </li>                <li>第一最好不相见,如此便可不相恋。 </li>                <li>那一天 闭目在经殿香雾</li>                <li>你见 或者不见我  我就在那里</li>            </ul>        </div>    </div>    <script type="text/javascript">new slider({ id: 'slider' });</script></body></html>

原创粉丝点击