<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題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關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        來(lái)自騰訊的一個(gè)不固定高度得消息的滾動(dòng)特效_javascript技巧

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 20:54:46
        文檔

        來(lái)自騰訊的一個(gè)不固定高度得消息的滾動(dòng)特效_javascript技巧

        來(lái)自騰訊的一個(gè)不固定高度得消息的滾動(dòng)特效_javascript技巧: #msg_weibo {width:300px;height:186px;*height:186px;_height:170px;margin:10px auto 0;zoom:1; overflow:hidden;font-size:12px;line-height:20px;margin-bottom:4px;background:#ffffff;} #msg_weibo a{margin-right:6px;color:#003C71;text-decor
        推薦度:
        導(dǎo)讀來(lái)自騰訊的一個(gè)不固定高度得消息的滾動(dòng)特效_javascript技巧: #msg_weibo {width:300px;height:186px;*height:186px;_height:170px;margin:10px auto 0;zoom:1; overflow:hidden;font-size:12px;line-height:20px;margin-bottom:4px;background:#ffffff;} #msg_weibo a{margin-right:6px;color:#003C71;text-decor


        [Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
        看關(guān)鍵的js code:
        代碼如下:
        var $ = function (d){
        typeof d == "string" &&(d = document.getElementById(d));
        return $.fn.call(d);
        };
        $.fn = function (){
        this.addEvent = function (sEventType,fnHandler){
        if (this.addEventListener) {this.addEventListener(sEventType, fnHandler, false);}
        else if (this.attachEvent) {this.attachEvent("on" + sEventType, fnHandler);}
        else {this["on" + sEventType] = fnHandler;}
        }
        this.removeEvent = function (sEventType,fnHandler){
        if (this.removeEventListener) {this.removeEventListener(sEventType, fnHandler, false);}
        else if (this.detachEvent) {this.detachEvent("on" + sEventType, fnHandler);}
        else { this["on" + sEventType] = null;}
        }
        return this;
        };
        var Class = {create: function() {return function() { this.initialize.apply(this, arguments); }}};
        var Bind = function (obj,fun,arr){return function() {return fun.apply(obj,arr);}}
        var Marquee = Class.create();
        Marquee.prototype = {
        initialize: function(id,name,out,speed) {
        this.name = name;
        this.box = $(id);
        this.out = 3;//滾動(dòng)間隔時(shí)間,單位秒
        this.speed = speed;
        this.d = 1;
        this.box.style.position = "relative";
        this.box.scrollTop = 0;
        var _li = this.box.firstChild;
        while(typeof(_li.tagName)=="undefined")_li = _li.nextSibling;
        this.lis = this.box.getElementsByTagName(_li.tagName);
        this.len = this.lis.length;
        for(var i=0;ivar __li = document.createElement(_li.tagName);
        __li.innerHTML = this.lis[i].innerHTML;
        this.box.appendChild(__li);//cloneNode
        if(this.lis[i].offsetTop>=this.box.offsetHeight)break;
        }
        this.Start();
        this.box.addEvent("mouseover",Bind(this,function(){clearTimeout(this.timeout);},[]));
        this.box.addEvent("mouseout",Bind(this,this.Start,[]));
        },
        Start:function (){
        clearTimeout(this.timeout);
        this.timeout = setTimeout(this.name+".Up()",this.out*1000)
        },
        Up:function(){
        clearInterval(this.interval);
        this.interval = setInterval(this.name+".Fun()",10);
        },
        Fun:function (){
        this.box.scrollTop+=this.speed;
        if(this.lis[this.d].offsetTop <= this.box.scrollTop){
        clearInterval(this.interval);
        this.box.scrollTop = this.lis[this.d].offsetTop;
        this.Start();
        this.d++;
        }
        if(this.d >= this.len + 1){
        this.d = 1;
        this.box.scrollTop = 0;
        }
        }
        };
        $(window).addEvent("load",function (){
        marquee = new Marquee("msg_weibo","marquee",1,2);
        });

        實(shí)現(xiàn)思路與以前的文字滾動(dòng)是一樣的,都是先充滿當(dāng)前容器,再通過(guò)scrollTop++往上滾的,只不過(guò)他是每次滾動(dòng)的距離不是固定的,是取當(dāng)前滾動(dòng)消息的高度。由于scrollTop(滾出當(dāng)前可視區(qū)域的高度)和offsetTop(距離父節(jié)點(diǎn)頂部的距離,常用于取某元素在頁(yè)面的坐標(biāo)位置)的區(qū)別,所以通過(guò) if(this.lis[this.d].offsetTop <= this.box.scrollTop)來(lái)判斷是否滾動(dòng)完上條消息,需要停頓下了。

        我覺(jué)得亮點(diǎn)之處在于$的寫(xiě)法。通常Prototype里也就取下obj||document.getElementById('objId'),他這里除此外還幫obj綁定了一些方法。他的作用是不是類(lèi)似于原型擴(kuò)展String、Array等對(duì)象的方法呢。這個(gè)可以借鑒。
        另外,他初始化時(shí)填充容器時(shí)用document.createElement->賦innerHTML->appendChild來(lái)做,我覺(jué)的不如直接cloneNode(true)->appendChild好,如不對(duì),歡迎指正。

        主要還是填下這個(gè)月的坑,哈哈。

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        來(lái)自騰訊的一個(gè)不固定高度得消息的滾動(dòng)特效_javascript技巧

        來(lái)自騰訊的一個(gè)不固定高度得消息的滾動(dòng)特效_javascript技巧: #msg_weibo {width:300px;height:186px;*height:186px;_height:170px;margin:10px auto 0;zoom:1; overflow:hidden;font-size:12px;line-height:20px;margin-bottom:4px;background:#ffffff;} #msg_weibo a{margin-right:6px;color:#003C71;text-decor
        推薦度:
        標(biāo)簽: QQ 騰訊 消息的
        • 熱門(mén)焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門(mén)推薦

        專(zhuān)題
        Top
        主站蜘蛛池模板: 91精品国产免费久久久久久青草| 三级黄色免费观看| 大地资源二在线观看免费高清| 亚洲精品美女在线观看| 久9热免费精品视频在线观看| 亚洲AV无码一区二区二三区软件 | 亚洲精品黄色视频在线观看免费资源 | 和老外3p爽粗大免费视频| 亚洲国产成人VA在线观看| 免费的黄色的网站| 国产黄色一级毛片亚洲黄片大全 | 亚洲午夜无码片在线观看影院猛| 一级毛片视频免费观看| 国产国拍精品亚洲AV片| 久久国产精品萌白酱免费| 亚洲乱码一区av春药高潮| 天天干在线免费视频| 成人免费网站久久久| 亚洲色精品aⅴ一区区三区| 99精品视频在线视频免费观看 | 成年大片免费视频播放一级| 亚洲色图综合在线| 性色午夜视频免费男人的天堂| 亚洲日本国产精华液| 国产a级特黄的片子视频免费| 成人无码视频97免费| 久久精品国产亚洲AV无码偷窥| 成人毛片免费播放| 中文字幕乱理片免费完整的| 久久亚洲精品成人无码网站| 日韩精品免费一区二区三区| 久久不见久久见免费影院www日本| 亚洲成在人天堂一区二区| 天天摸天天操免费播放小视频| 国产线视频精品免费观看视频| 亚洲人成日本在线观看| 亚洲免费在线观看| 青青青免费国产在线视频小草| 一个人看的免费高清视频日本| 亚洲欧洲精品国产区| 亚洲日韩在线中文字幕第一页 |