Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75904
  • 博文数量: 73
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 740
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-04 16:50
文章分类
文章存档

2014年(73)

我的朋友

分类: Html/Css

2014-08-04 10:30:21

  • JavaScript仿新浪微博首页的内容滚动,将推荐的几条微博按一定规律自行滚动,依次类推,大家先看看效果就明白了,然后在新浪微博首页仍然在使用哦,可能我写的代码还不是最佳优化状态,但是我觉得这已经不错了。

点击(此处)折叠或打开

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
  2. <html xmlns="">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title></title>
  6. <style type="text/css">
  7. body{background:#efc;}
  8. </style>
  9. </head>
  10. <body>

  11. <div class="col-act">
  12. <div class="colAct-list clear" id="actDbList" >

  13. <dl class="clear" >
  14.  <dt>-------------------------------------</dt>
  15.  <dd>---------------------------------------</dd>
  16.  <dd>---------------------------------------</dd>
  17. </dl>

  18. </div>
  19. </div>
  20. <script type="text/javascript">
  21. /*--------------新鲜事滚动----------------*/
  22. var _num=_n=0,
  23. _autohidden,_arrObj,_oHeight;
  24. function flilter(elem,i,t){
  25. var o=document.getElementById("actDbList");
  26. if(!o) return false;
  27. var elem=o.getElementsByTagName("dl")[0];
  28.   if (elem.movement) {
  29.     clearTimeout(elem.movement);
  30.   }
  31.   if (!_n===0) _n = parseInt(elem['style'][!-[1,]?'filter':'opacity']);
  32. if(_n>=i){
  33. return true;
  34. }
  35.     if (_n < i) {
  36.     var dist = Math.ceil((i - _n)/10);
  37.     _n = _n + dist;
  38.   }
  39.   if (_n > i) {
  40.     var dist = Math.ceil((i - _n)/10);
  41.     _n = _n - dist;
  42.   }
  43. elem['style'][!-[1,]?'filter':'opacity']=!-[1,]?'alpha(opacity='+_n+')':_n/100;
  44. var repeat = "flilter('"+elem+"',"+i+","+t+")";
  45.   elem.movement = setTimeout(repeat,t);
  46. }
  47. function moveElement(elem,final_y,interval) {
  48. var o=document.getElementById("actDbList");
  49. if(!o) return false;
  50. var elem=o.getElementsByTagName("dl")[0];
  51.   if (elem.movement) {
  52.     clearTimeout(elem.movement);
  53.   }
  54.   if (!elem.style.height) {
  55.     elem.style.height = "0";
  56.   }
  57.   var ypos = parseInt(elem.style.height);
  58.     
  59.   if (ypos == final_y) {
  60.   flilter(o.getElementsByTagName("dl")[0],100,40);
  61.     return true;
  62.   }
  63.     if (ypos < final_y) {
  64.     var dist = Math.ceil((final_y - ypos)/10);
  65.     ypos = ypos + dist;
  66.   }
  67.   if (ypos > final_y) {
  68.     var dist = Math.ceil((ypos - final_y)/10);
  69.     ypos = ypos - dist;
  70.   }
  71.   elem.style.height = ypos + "px";
  72.   var repeat = "moveElement('"+elem+"',"+final_y+","+interval+")";
  73.   elem.movement = setTimeout(repeat,interval);
  74. }
  75. function step(obj){
  76. var _arrO=document.getElementById("DB");
  77. if(!_arrO) return false;
  78. var _arr=_arrO.getElementsByTagName("dl");
  79. if (_autohidden) {
  80.         clearInterval(_autohidden);
  81.     }
  82. _n=0;
  83. _arrObj=_arr[_num];
  84. _max=_arr.length;
  85. var o=document.getElementById(obj);
  86. var newNode= document.createElement("dl");
  87. o.insertBefore(newNode,o.getElementsByTagName("dl")[0]);
  88. var s=o.getElementsByTagName("dl")[0];
  89. s.style.cssText="height:0;opacity:0;filter:Alpha(opacity=0);overflow:hidden";
  90. s.style.className="clear";
  91. s.innerHTML=_arrObj.innerHTML;
  92. _oHeight=_arrObj.offsetHeight;
  93. moveElement(s,_oHeight,10);
  94. var lastNode=o.getElementsByTagName("dl")[(o.getElementsByTagName("dl").length-1)];
  95. var reLastNode=o.removeChild(lastNode);
  96. _num++;
  97. if(_num>=_max){
  98. _num=0;
  99. }
  100.  stopMove("actDbList");
  101. _autohidden = setTimeout(function(){step(obj);},5000);
  102. }
  103.  function stopMove(o){
  104.  var o=document.getElementById(o);
  105.  if(!o) return false;
  106.   o.onmouseover=function(){
  107.   if (_autohidden) {
  108.           clearTimeout(_autohidden);
  109.       }
  110.   }
  111.   o.onmouseout=function(){
  112.   _autohidden = setTimeout(function(){step("actDbList");},5000);
  113.   }
  114.  }
  115. /*--------------新鲜事滚动结束----------------*/
  116. _autohidden = setInterval(function(){step("actDbList");},1000);
  117. stopMove("actDbList");
  118. </script>
  119. <div class="" id="DB">

  120. <dl >
  121.  <dt>我记得我爱过(电视剧《泡沫之夏》主题曲)-何润东</dt>
  122. </dl>

  123. <dl >
  124. <dd>#我最喜欢的书#绝对不是言情和校园谈恋爱的那种,就是无聊的,只有看那些书的时候,我也一个字看不进。其它的书还都蛮喜欢的,嘿嘿</dd>
  125. </dl>

  126. <dl >
  127.  <dt>等会儿又要飞了,好想死。旁边放把剪刀,实在写不出东西来,随时准备从天灵盖插下去……</dt>
  128. </dl>

  129. <dl >
  130.  <dt>有人质疑我“发福了,老了,唱不动了”。我早已不把这些话放在心上。</dt>
  131. </dl>

  132. <dl >
  133.  <dt>记录心情,记录生活点滴,欢迎走进腾讯微博。</dt>
  134.  <dd>欢乐无从,快乐从心!</a>
  135. </dd>
  136. </dl>

  137. </div>
  138. </body>
  139. </html>


阅读(290) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~