2008.1.7更新v0.0.3
更新内容:修改代码结构,修改缓动算法。
演 示 下 载
更新内容:修改代码结构,修改缓动算法。
演 示 下 载
- /* ======================================================
- * 程序名: xc_SlidingAds xc滑动广告类
- * 当前版本: v0.0.3
- * 作者: xiaoc
- * 联系邮件: [email]calmer91#gmail.com[/email]
- * QQ: 77497426
- * 最后更新: 2009-1-7
- * 使用方法: new xc_SlidingAds(objID,scrollSpeed); objID为浮动层的ID,scrollSpeed滑动延时时间(数字越小,停留延时越短)
- 例:new xc_SlidingAds("obj1") 或 new xc_SlidingAds("obj1",62)
- * 此段注释不影响使用.
- * =======================================================
- */
- function xc_SlidingAds(objID,scrollSpeed)
- {
- var base=this;
- if(!objID)return;
- this.scrollSpeed=scrollSpeed;
- if(scrollSpeed==null)this.scrollSpeed=55;
- this.objID=document.getElementById(objID);
- this.objID.style.marginTop=this.objID.offsetTop+"px";
- this.objID.style.top="0px";
- this.timer1=null;
- if (window.addEventListener) {
- window.addEventListener("scroll", function(){base.bind()}, false);
- } else if (window.attachEvent) {
- window.attachEvent("onscroll", function(){base.bind()});
- } else {
- window["onscroll"] = function(){base.bind()};
- }
- }
- xc_SlidingAds.prototype.bind=function()
- {
- var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
- currentTop=parseInt(this.objID.style.top);
- if(currentTop<scrollTop)this.scrollto(scrollTop,currentTop,1,"down");
- if(currentTop>scrollTop)this.scrollto(scrollTop,currentTop,1,"up");
- }
- xc_SlidingAds.prototype.scrollto=function(topNum,btopNum,i,direction)
- {
- var objBase=this;
- clearTimeout(this.timer1);
- if(this.scrollSpeed==0){this.objID.style.top=topNum;return }
- currentTop=parseInt(this.objID.style.top);
- if(currentTop<topNum&&direction=="down"){
- this.timer1=setTimeout(function(){t=objBase.Sine.easeOut(i++,btopNum,topNum-btopNum,Math.ceil(objBase.scrollSpeed/2));objBase.objID.style.top=t+"px";objBase.scrollto(topNum,btopNum,i,"down");},25);
- }
- if(currentTop>topNum&&direction=="up"){
- this.timer1=setTimeout(function(){t=objBase.Sine.easeIn(i++,btopNum,topNum-btopNum,Math.ceil(objBase.scrollSpeed/2));objBase.objID.style.top=t+"px";objBase.scrollto(topNum,btopNum,i,"up");},25);
- }
- }
- xc_SlidingAds.prototype.Sine={
- easeIn: function(t,b,c,d){
- return -c * Math.cos(t/d * (Math.PI/2)) + c + b;},
- easeOut: function(t,b,c,d){
- return c * Math.sin(t/d * (Math.PI/2)) + b;},
- easeInOut: function(t,b,c,d){
- return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;}
- }

2万+

被折叠的 条评论
为什么被折叠?



