明留

将何所持,将何所往?此刻惜之!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1、返回顶部(完全兼容各个浏览器,不含美化)

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 5 <title>无标题文档</title>
 6 <style type="text/css">
 7 #div1 {
 8     width:20px; 
 9     height:100px;
10     position:absolute;
11     top:0;
12     right:0;
13     background:#f00;
14 }
15 </style>
16 
17 <script>
18 //完全兼容所有浏览器
19 var bSys=null;//标志用户滚动了滚动条
20 var timer=null;
21 window.onload=window.onresize=window.onscroll=function() {    
22     var oDiv=document.getElementById("div1");
23     var sctop=document.body.scrollTop||document.documentElement.scrollTop;
24     var t=(document.documentElement.clientHeight-oDiv.offsetHeight)/2;  
25     oDiv.style.top=sctop+t+'px';
26     //检测用户滚动了滚动条    
27     if(!bSys) {
28         clearInterval(timer);    
29     }
30     bSys=false;
31     
32     oDiv.onclick=function() {
33         timer=setInterval(function() {
34                 var scrolltop=document.body.scrollTop||document.documentElement.scrollTop;
35                 var ispeed=Math.floor(-scrolltop/8);
36                 if(scrolltop==0) {
37                     clearInterval(timer);    //当scrolltop为0的时候,就停止这个定时器
38                 }
39                 bSys=true;
40                 document.documentElement.scrollTop=document.body.scrollTop=scrolltop+ispeed;
41         },30);        
42     };        
43 };
44 </script>
45 </head>
46 
47 <body>
48 1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>1<br>
49 <div id="div1">返回顶部</div>
50 </body>
51 </html>
View Code

2、返回顶部2(完全兼容各个浏览器,含美化+缓冲) 

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>返回顶部+缓冲</title>
 6 <style>
 7 #div1{width:100px; height:50px; position:absolute; right:0px; top:0px;background:red;}
 8 span{position: absolute; left:300px; top:0px;; display:inline-block; width:1px; height:200px; background:blue;}
 9 //运动缓冲:主要是在速度上,做了一个变速,利用:offsetLeft-iTarget/8; iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
10 </style>
11 <script>
12 
13 window.onload=window.onscroll=window.onresize=function() {
14     var oDiv=document.getElementById("div1");
15     var sct=document.documentElement.scrollTop||document.body.scrollTop;
16     var t=sct+(document.documentElement.clientHeight-oDiv.offsetHeight)/2; 
17     startMove(parseInt(t));  //scrolltop,ff/ie:document.documentElement   chrome:document.body获取
18 };
19 
20 
21 var timer=null;
22 function startMove(iTarget) {    
23     var oDiv=document.getElementById("div1");
24     var iSpeed=null;
25     clearInterval(timer);                
26     timer=setInterval(function() {
27         iSpeed=(iTarget-oDiv.offsetTop)/8;
28         iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed); //变速改变速度
29         if(oDiv.offsetTop==iTarget) {
30             clearInterval(timer);
31         }
32         else {
33             oDiv.style.top=oDiv.offsetTop+iSpeed+'px';
34         }        
35     },30);
36 }
37 </script>
38 </head>
39 <body style="height:2000px;">
40 </body>
41 </html>
View Code

3、拖拽(完全兼容各个浏览器,不含美化)

 1 function drag() {
 2     var oDiv=document.getElementById('div1');
 3     var disX=disY=0;
 4     oDiv.onmousedown=function(ev) {
 5         var oEvent=ev||event;
 6         disX=oEvent.clientX-oDiv.offsetLeft;
 7         disY=oEvent.clientY-oDiv.offsetTop;//保存物体以鼠标单击瞬间时的位置
 8         
 9         document.onmousemove=function(ev) {
10             var oEvent=ev||event;
11             var l=oEvent.clientX-disX;            
12             var t=oEvent.clientY-disY;
13             if(l<0)
14                 l=0;
15             else if(l>document.documentElement.clientWidth-oDiv.offsetWidth)
16                 l=document.documentElement.clientWidth-oDiv.offsetWidth;
17             if(t<0)
18                 t=0;
19             else if(t>document.documentElement.clientHeight-oDiv.offsetHeight)
20                 t=document.documentElement.clientHeight-oDiv.offsetHeight;
21             oDiv.style.left=l+'px';
22             oDiv.style.top=t+'px';    
23         };
24         
25         document.onmouseup=function() {
26             document.onmousemove=document.onmouseup=null;
27         };
28         return false;//解决ff早期的bug发生
29     };
30     
31     
32 }
View Code

4、缓冲运动(//运动缓冲:主要是在速度上,做了一个变速,利用:offsetLeft-iTarget/8; iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);)

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>无标题文档</title>
 6 <style>
 7 #div1{width:100px; height:50px; position:absolute; left:700px; top:50px;background:red;}
 8 span{position: absolute; left:300px; top:0px;; display:inline-block; width:1px; height:200px; background:blue;}
 9 //运动缓冲:主要是在速度上,做了一个变速,利用:offsetLeft-iTarget/8
10 </style>
11 <script>
12 window.onload=function() {
13     var oDiv=document.getElementById("div1");
14     var obt=document.getElementById("obt");
15     var timer=null;
16     var iSpeed=null;
17     var iTarget=300;
18     obt.onclick=function() {
19         clearInterval(timer);
20                 
21         timer=setInterval(function() {
22             iSpeed=(iTarget-oDiv.offsetLeft)/8;
23                 iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
24             if(oDiv.offsetLeft==iTarget) {
25                 clearInterval(timer);
26             }
27             else {
28                 oDiv.style.left=oDiv.offsetLeft+iSpeed+'px';
29             }        
30         },30);    
31     };
32 };
33 </script>
34 </head>
35 
36 <body>
37 <input type="button" value="开始运动" id="obt"/>
38 <div id="div1"></div>
39 <span></span>
40 </body>
41 </html>
View Code

5、多个定时器共同进行

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>无标题文档</title>
 6 <style>
 7 div{width:70px; height:30px; background:red; margin:20px; filter:alpha(opacity:30); opacity:0.3;}
 8 </style>
 9 <script>
10 window.onload=function() {
11     var divs=document.getElementsByTagName("div");
12     for(var i=0; i<divs.length; i++) {
13         divs[i].onmouseover=function() {startMove(this, 300);};
14         divs[i].onmouseout=function() {startMove(this, 70);};    
15     }    
16 };
17 //var timer=null; 此处用了一个共用的定时器timer 
18 function startMove(obj, iTarget) {
19     var iSpeed=null;
20     clearInterval(obj.timer);//这里为每个对象,分配单独的timer(定时器)
21     obj.timer=setInterval(function() {
22         iSpeed=(iTarget-obj.offsetWidth)/8;
23         iSpeed=iSpeed>0? Math.ceil(iSpeed): Math.floor(iSpeed);
24         if(obj.offsetWidth==iTarget) {
25             clearInterval(obj.timer);    
26         } else {
27             obj.style.width=obj.offsetWidth+iSpeed+'px';    
28         }
29     }, 30);
30 }
31 
32 </script>
33 </head>
34 
35 <body>
36 <div id="div1"></div>
37 <div id="div1"></div>
38 <div id="div1"></div>
39 <div id="div1"></div>
40 <div id="div1"></div>
41 </body>
42 </html>
View Code

6、多个淡入淡出

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>无标题文档</title>
 6 <style>
 7 div{width:100px; height:70px; background:red; margin:20px; filter:alpha(opacity:30); opacity:0.3;}
 8 </style>
 9 
10 <script>
11 //var alpha=30; //这个alpha不方便获取,这里采用变量存储,针对多个公用一个变量alpha,最好不要共用
12 //取html中标签中的行内样式:style
13 //取非行内样式:ff:getComputeStyle  ie:currentStyle
14 //取所有样式的通用写法
15 function getStyle(obj, attr) {
16     if(obj.currentStyle) 
17         return obj.currentStyle[attr];
18     else
19         return obj.getComputeStyle(obj, false)[attr];    
20 }
21 
22 function startMove(obj, iTarget) {
23     var iSpeed=null;
24     clearInterval(obj.timer);//这里为每个对象,分配单独的timer(定时器)
25     obj.timer=setInterval(function() {
26         iSpeed=(iTarget-obj.alpha)/8;
27         iSpeed=iSpeed>0? Math.ceil(iSpeed): Math.floor(iSpeed);
28         if(obj.alpha==iTarget) {
29             clearInterval(obj.timer);    
30         } else {
31             obj.alpha+=iSpeed;
32             obj.style.filter='alpha(opacity:'+obj.alpha+')';    
33             obj.style.opacity=obj.alpha/100;
34         }
35     }, 30);
36 }
37 
38 window.onload=function() {
39     var divs=document.getElementsByTagName("div");
40     for(var i=0; i<divs.length; i++) {
41         divs[i].alpha=30;
42         divs[i].onmouseover=function() {startMove(this, 100);};
43         divs[i].onmouseout=function() {startMove(this, 30);};    
44     }    
45 };
46 
47 
48 </script>
49 </head>
50 
51 <body>
52 <div></div>
53 <div></div>
54 <div></div>
55 <div></div>
56 
57 </body>
58 </html>
View Code

7、通用动画带渐变

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>无标题文档</title>
 6 <style>
 7 div{width:100px; height:70px; background:red; margin:20px; filter:alpha(opacity=30); opacity:0.3;}
 8 </style>
 9 
10 <script>
11 //var alpha=30; //这个alpha不方便获取,这里采用变量存储,针对多个公用一个变量alpha,最好不要共用
12 //取html中标签中的行内样式:style
13 //取非行内样式:ff:getComputeStyle  ie:currentStyle--->替换offsetXXX之类的获取
14 //,因为这个存在一个问题,当为自身块定义了border大小,减小,反而会以border指定大小增加XXX大小(offsetXXX包括xxx+padding+border)
15 //取所有样式的通用写法
16 function getStyle(obj, attr) {
17     if(obj.currentStyle) 
18         return obj.currentStyle[attr];
19     else
20         return obj.getComputeStyle(obj, false)[attr];    
21 }
22 
23 function startMove(obj, attr, iTarget) {
24     var iSpeed=null;
25     clearInterval(obj.timer);//这里为每个对象,分配单独的timer(定时器)
26     obj.timer=setInterval(function() {
27         var iCur=null;
28         if(attr=='opacity') {
29             iCur=parseInt(100*parseFloat(getStyle(obj, attr)));
30             //获得指定对象属性的值,小数很容易爆发问题存在,避免小数发生问题,这里采用抛出小数部分,parseInt
31         } else { 
32             iCur=parseInt(getStyle(obj, attr));
33             //取非行内样式:ff:getComputeStyle  ie:currentStyle--->替换offsetXXX之类的获取
34             //,因为这个存在一个问题,当为自身块定义了border大小,减小,反而会以border指定大小增加XXX大小(offsetXXX包括xxx+padding+border)
35             //取所有样式的通用写法
36         }
37         iSpeed=(iTarget-iCur)/8;
38         iSpeed=iSpeed>0? Math.ceil(iSpeed): Math.floor(iSpeed);
39         if(iCur==iTarget) {
40             clearInterval(obj.timer);    
41         } else {
42             if(attr=='opacity') {
43                 obj.style[attr]=(iCur+iSpeed)/100;
44                 obj.style.filter='alpha(opacity:'+(iCur+iSpeed)+')';
45                 document.getElementById('tct').value=obj.style[attr];
46             } else {
47                 obj.style[attr]=iCur+iSpeed+'px';
48             }
49         }
50     }, 30);
51 }
52 
53 window.onload=function() {
54     var divs=document.getElementsByTagName("div");
55     for(var i=0; i<divs.length; i++) {
56         divs[i].alpha=30;
57         divs[i].onmouseover=function() {startMove(this, 'opacity', 100);};
58         divs[i].onmouseout=function() {startMove(this, 'opacity', 30);};    
59     }    
60 };
61 </script>
62 </head>
63 
64 <body>
65 <input type="text" value="" id="tct"/>
66 <div></div>
67 <div></div>
68 <div></div>
69 <div></div>
70 
71 </body>
72 </html>
View Code

8、FLASH的图片轮换效果 — 兼容性不是很好,存在一些bug,后期修复

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5 <title>仿FLASH的图片轮换效果 — 兼容性不是很好,存在一些bug,后期修复</title>
  6 <link rel="stylesheet" type="text/css" href="miao_style.css">
  7 <script src="../move.js"></script>
  8 <script>
  9 function getClass(oParent, sClass) {
 10     var aEle=oParent.getElementsByTagName('*');    
 11     var aResult=[];    
 12     for(var i=0; i<aEle.length; i++) {
 13         if(aEle[i].className==sClass){
 14             aResult.push(aEle[i]);    
 15         }    
 16     }
 17     return aResult;
 18 }
 19 
 20 window.onload=function() {
 21     var oDiv=document.getElementById('playimages');
 22     //左右按钮
 23     var oBtnPrev=getClass(oDiv, 'prev')[0];    
 24     var oBtnNext=getClass(oDiv, 'next')[0];
 25     var oMarkLeft=getClass(oDiv, 'mark_left')[0];
 26     var oMarkRight=getClass(oDiv, 'mark_right')[0];
 27     //小图点击
 28     var oSmallUl=getClass(oDiv, 'small_pic')[0].getElementsByTagName('ul')[0];
 29     var aSmallLi=oSmallUl.getElementsByTagName('li');
 30     var oBigUl=getClass(oDiv, 'big_pic')[0];
 31     var aBigLi=oBigUl.getElementsByTagName('li');
 32     var iNow=0;
 33     var iMinZindex=2 ;
 34     oBtnPrev.onmouseover=oMarkLeft.onmouseover=function(){
 35         startMove(oBtnPrev, 'opacity', 100);
 36     };
 37     
 38     oBtnPrev.onmouseout=oMarkLeft.onmouseout=function(){
 39         startMove(oBtnPrev, 'opacity', 0);
 40     };
 41     
 42     oBtnNext.onmouseover=oMarkRight.onmouseover=function(){
 43         startMove(oBtnNext, 'opacity', 100);
 44     };
 45     
 46     oBtnNext.onmouseout=oMarkRight.onmouseout=function(){
 47         startMove(oBtnNext, 'opacity', 0);
 48     };    
 49     oSmallUl.style.width=aSmallLi[0].offsetWidth*aSmallLi.length+'px';
 50     for(var i=0; i<aSmallLi.length; i++) {
 51         aSmallLi[i].index=i;
 52         aSmallLi[i].onmouseover=function(){
 53             startMove(this, 'opacity', 100);
 54         };
 55         
 56         aSmallLi[i].onmouseout=function(){
 57             if(this.index!=iNow) {
 58                 startMove(this, 'opacity', 60);
 59             } 
 60         };        
 61         
 62         aSmallLi[i].onclick=function() {
 63             
 64             if(this.index==0) return;
 65             iNow=this.index;            
 66             tab();
 67         };
 68         
 69         function tab() {
 70             for(var j=0; j<aSmallLi.length; j++) {
 71                 startMove(aSmallLi[j], 'opacity', 60);    
 72             }
 73             startMove(aSmallLi[iNow], 'opacity', 100);
 74             aBigLi[iNow].style.zIndex=iMinZindex++;
 75             aBigLi[iNow].style.height=0+'px';
 76             //大图上下动
 77             startMove(aBigLi[iNow], 'height', oBigUl.offsetHeight);
 78             //小图左右动
 79             if(iNow==0) {
 80                 startMove(oSmallUl, 'left', 0);    
 81             } else if(iNow==aSmallLi.length-1) {
 82                 startMove(oSmallUl, 'left', -(iNow-2)*aSmallLi[0].offsetWidth); 
 83             } else {
 84                 startMove(oSmallUl, 'left', -(iNow-1)*aSmallLi[0].offsetWidth);
 85             }             
 86         }
 87         
 88         
 89         //向前
 90         oBtnPrev.onclick=function() {
 91             iNow--;
 92             if(iNow==-1)
 93                 iNow=aSmallLi.length-1;
 94             tab();
 95         };
 96         //向后
 97         oBtnNext.onclick=function() {
 98             iNow++;
 99             if(iNow==aSmallLi.length)
100                 iNow=0;
101             tab();
102         };
103     }
104     
105 };
106 </script>
107 </head>
108 
109 <body>
110 <div id="playimages" class="play">
111     <ul class="big_pic">
112         <div class="prev"></div>
113         <div class="next"></div>
114 
115         <div class="text">加载图片说明……</div>
116         <div class="length">计算图片数量……</div>
117         
118         <a class="mark_left" href="javascript:;"></a>
119         <a class="mark_right" href="javascript:;"></a>
120         <div class="bg"></div>
121         
122         <li style="z-index:1;"><img src="images/1.jpg" /></li>
123         <li><img src="images/2.jpg" /></li>
124         <li><img src="images/3.jpg" /></li>
125         <li><img src="images/4.jpg" /></li>
126         <li><img src="images/5.jpg" /></li>
127         <li><img src="images/6.jpg" /></li>
128     </ul>
129     <div class="small_pic">
130         <ul style="width:390px;">
131             <li style="filter: 100; opacity: 1;"><img src="images/1.jpg" /></li>
132             <li><img src="images/2.jpg" /></li>
133             <li><img src="images/3.jpg" /></li>
134             <li><img src="images/4.jpg" /></li>
135             <li><img src="images/5.jpg" /></li>
136             <li><img src="images/6.jpg" /></li>
137         </ul>
138     </div>
139 </div>
140 
141 </body>
142 </html>
View Code

 

posted on 2014-11-11 18:21  明留  阅读(1021)  评论(0编辑  收藏  举报