IT学习者 | 文章大全 | 技术文档 | 桌面壁纸 | 实用查询 | 网络电台 | 成语 | 歇后语 | 网址 | 下载 | 周公解梦 | 生日密码 | 电视剧365 | Flash
 您现在的位置: IT学习者 >> 文章大全 >> 网页制作 >> HTML&CSS

图片无缝滚动的完美解决

【 来源:网络  更新时间:2005-4-17 | 字体:
  想必大家都注意到<marquee>的不循环滚动,所以出现了很多替代脚本,或iframe或JS输出<marquee>,不管怎么做,都略显麻烦。下面说一下这个相对简单的实现思路:一个设定宽度并且隐藏超出它宽度的内容的容器demo,里面放demo1和demo2,demo1是滚动内容,demo2为demo1的直接克隆,通过不断改变demo1的scrollTop或者scrollLeft达到滚动的目的,当滚动至demo1与demo2的交界处时直接跳回初始位置,因为demo1与demo2一样,所以分不出跳动的瞬间,从而达到“无缝”滚动的目的。

先了解一下对象的几个的属性:
innerHTML:设置或获取位于对象起始和结束标签内的 HTML
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
offsetWidth:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的宽度

好,先看这个向上滚动的代码:

 <base href="http://www.flash8.net">
 <div id=demo style=overflow:hidden;height:100;width:90;background:#214984;color:#ffffff><div id=demo1>
 <img src="images/flash8.gif">
 <img src="images/link/flashempire.gif">
 <img src="images/linklogo/shlogo.gif">
 <img src="images/link/deskcity.gif">
 <img src="images/linklogo/5dmeng.gif">
 <img src="/Upload/2004_Pack/logo.gif">
 <img src="images/link/flashskylogo.gif">
 <img src="images/link/5dlogo88.gif">
 <img src="/Upload/2004_Pack/link.gif">
 </div>
 <div id=demo2></div>
 </div>
   <script>
   var speed=30
   demo2.innerHTML=demo1.innerHTML file://克隆demo1为demo2
   function Marquee(){
   if(demo2.offsetTop-demo.scrollTop<=0) file://当滚动至demo1与demo2交界时
   demo.scrollTop-=demo1.offsetHeight  file://demo跳到最顶端
   else{
   demo.scrollTop++
   }
   }
   var MyMar=setInterval(Marquee,speed) file://设置定时器
   demo.onmouseover=function() {clearInterval(MyMar)}//鼠标移上时清除定时器达到滚动停止的目的
   demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}//鼠标移开时重设定时器
   </script>

 向下滚动:

<base href="http://www.flash8.net">
  <div id=demo style=overflow:hidden;height:100;width:90;background:#214984;color:#ffffff><div id=demo1>
  <img src="images/flash8.gif">
  <img src="images/link/flashempire.gif">
  <img src="images/linklogo/shlogo.gif">
  <img src="images/link/deskcity.gif">
  <img src="images/linklogo/5dmeng.gif">
  <img src="/Upload/2004_Pack/logo.gif">
  <img src="images/link/flashskylogo.gif">
  <img src="images/link/5dlogo88.gif">
  <img src="/Upload/2004_Pack/link.gif">
  </div>
  <div id=demo2></div>
  </div>
    <script>
    var speed=30
    demo2.innerHTML=demo1.innerHTML
    demo.scrollTop=demo.scrollHeight
    function Marquee(){
    if(demo1.offsetTop-demo.scrollTop>=0)
    demo.scrollTop+=demo2.offsetHeight
    else{
    demo.scrollTop--
    }
    }
    var MyMar=setInterval(Marquee,speed)
    demo.onmouseover=function() {clearInterval(MyMar)}
    demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
    </script>

向左滚动: 

<base href="http://www.flash8.net">
  <div id=demo style=overflow:hidden;height:33;width:500;background:#214984;color:#ffffff><table align=left cellpadding=0 cellspace=0 border=0><tr><td id=demo1 valign=top><img src="images/link/flashempire.gif"><img src="images/linklogo/shlogo.gif"><img src="images/link/deskcity.gif"><img src="images/linklogo/5dmeng.gif"><img src="/Upload/2004_Pack/logo.gif"><img src="images/link/flashskylogo.gif"><img src="images/link/5dlogo88.gif"><img src="/Upload/2004_Pack/link.gif"><img src="images/flash8.gif"></td><td id=demo2 valign=top></td></tr></table></div>
  <script>
  var speed=30
  demo2.innerHTML=demo1.innerHTML
  function Marquee(){
  if(demo2.offsetWidth-demo.scrollLeft<=0)
  demo.scrollLeft-=demo1.offsetWidth
  else{
  demo.scrollLeft++
  }
  }
  var MyMar=setInterval(Marquee,speed)
  demo.onmouseover=function() {clearInterval(MyMar)}
  demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
  </script>
 

向右滚动: 

<base href="http://www.flash8.net">
  <div id=demo style=overflow:hidden;height:33;width:500;background:#214984;color:#ffffff><table align=left cellpadding=0 cellspace=0 border=0><tr><td id=demo1 valign=top><img src="images/link/flashempire.gif"><img src="images/linklogo/shlogo.gif"><img src="images/link/deskcity.gif"><img src="images/linklogo/5dmeng.gif"><img src="/Upload/2004_Pack/logo.gif"><img src="images/link/flashskylogo.gif"><img src="images/link/5dlogo88.gif"><img src="/Upload/2004_Pack/link.gif"><img src="images/flash8.gif"></td><td id=demo2 valign=top></td></tr></table></div>
  <script>
  var speed=30
  demo2.innerHTML=demo1.innerHTML
 demo.scrollLeft=demo.scrollWidth
  function Marquee(){
  if(demo.scrollLeft<=0)
  demo.scrollLeft+=demo2.offsetWidth
  else{
  demo.scrollLeft--
  }
  }
  var MyMar=setInterval(Marquee,speed)
  demo.onmouseover=function() {clearInterval(MyMar)}
  demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
  </script>

相 关 文 章
相 关 软 件
没有相关下载
逃生 放生 黄玫瑰 想太多 那滋味 擦肩而过 放手去爱 北京欢迎你 依然在一起 吻得太逼真 感动天感动地 坐上火车去拉萨 怎么会狠心伤害我
心碎 冲动 小太阳 别碰我 蒲公英 千山万水 改变自己 一定要爱你 等爱的玫瑰 陷入爱里面 北极星的眼泪 最后一次的温柔 亲爱的那不是爱情
光荣 火花 坏女人 日不落 樱花草 为你写诗 独家记忆 夏天的味道 寂寞才说爱 忘不掉的伤 爱上你是个错 第三者的第三者 地球人都知道我爱你
假如 相思 是非题 有缘人 舍不得 我的答铃 死而无憾 外滩十八号 越爱越难过 123木头人 和寂寞说分手 爱上你是我的错 爱情里没有谁对谁错
加入收藏留言建议自助友情链接普通友情链接站长的Blog
版权所有   COPYRIGHT 2002-2008 ★IT学习者★ ALL RIGHTS RESERVED.