找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1408|回复: 1

图片无缝滚动的完美解决

[复制链接]

2074

主题

6459

回帖

45万

积分

管理员

夏天啊·····

积分
452930

王子的皇冠大富翁大众宠儿外太空使者社区居民

QQ
发表于 2006-4-14 12:57:45 | 显示全部楼层 |阅读模式
<STRONG><FONT size=2><FONT face=Arial><SPAN class=smalltxt twffan="done"><SPAN class=bold twffan="done">图片无缝滚动的完美解决</SPAN></SPAN><BR><BR></FONT></FONT></STRONG><SPAN style="FONT-SIZE: 12px" twffan="done">图片无缝滚动的完美解决<BR><BR>    想必大家都注意到&lt;marquee&gt;的不循环滚动,所以出现了很多替代脚本,或iframe或JS输出&lt;marquee&gt;,不管怎么做,都略显麻烦。下面说一下这个相对简单的实现思路:一个设定宽度并且隐藏超出它宽度的内容的容器demo,里面放demo1和demo2,demo1是滚动内容,demo2为demo1的直接克隆,通过不断改变demo1的scrollTop或者scrollLeft达到滚动的目的,当滚动至demo1与demo2的交界处时直接跳回初始位置,因为demo1与demo2一样,所以分不出跳动的瞬间,从而达到“无缝”滚动的目的。 <BR><BR>先了解一下对象的几个的属性:<BR>innerHTML:设置或获取位于对象起始和结束标签内的 HTML<BR>scrollHeight: 获取对象的滚动高度。 <BR>scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离<BR>scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离<BR>scrollWidth:获取对象的滚动宽度<BR>offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度<BR>offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置<BR>offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置 <BR>offsetWidth:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的宽度<BR><BR>好,先看这个向上滚动的代码: <BR><BR>&lt;base href="http://www&#46;flash8&#46;net";&gt;<BR>&lt;div id=demo style=overflow:hidden;height:100;width:90;background:#214984;color:#ffffff&gt;&lt;div id=demo1&gt;<BR>&lt;img src="images/flash8&#46;gif"&gt;<BR>&lt;img src="images/link/flashempire&#46;gif"&gt;<BR>&lt;img src="images/linklogo/shlogo&#46;gif"&gt;<BR>&lt;img src="images/link/deskcity&#46;gif"&gt;<BR>&lt;img src="images/linklogo/5dmeng&#46;gif"&gt;<BR>&lt;img src="/Article/UploadFiles/200411/20041112234106773&#46;gif"&gt;<BR>&lt;img src="images/link/flashskylogo&#46;gif"&gt;<BR>&lt;img src="images/link/5dlogo88&#46;gif"&gt;<BR>&lt;img src="http://www&#46;yiiboo&#46;com/cgercn/link&#46;gif";&gt;<BR>&lt;/div&gt;<BR>&lt;div id=demo2&gt;&lt;/div&gt;<BR>&lt;/div&gt;<BR>   &lt;script&gt;<BR>   var speed=30<BR>   demo2&#46;innerHTML=demo1&#46;innerHTML file://克隆demo1为demo2<BR>   function Marquee(){<BR>   if(demo2&#46;offsetTop-demo&#46;scrollTop&lt;=0) file://当滚动至demo1与demo2交界时<BR>   demo&#46;scrollTop-=demo1&#46;offsetHeight  file://demo跳到最顶端<BR>   else{<BR>   demo&#46;scrollTop++<BR>   }<BR>   }<BR>   var MyMar=setInterval(Marquee,speed) file://设置定时器<BR>   demo&#46;onmouseover=function() {clearInterval(MyMar)}//鼠标移上时清除定时器达到滚动停止的目的<BR>   demo&#46;onmouseout=function() {MyMar=setInterval(Marquee,speed)}//鼠标移开时重设定时器<BR>   &lt;/script&gt;<BR><BR><BR>向下滚动: <BR><BR>&lt;base href="http://www&#46;flash8&#46;net";&gt;<BR>  &lt;div id=demo style=overflow:hidden;height:100;width:90;background:#214984;color:#ffffff&gt;&lt;div id=demo1&gt;<BR>  &lt;img src="images/flash8&#46;gif"&gt;<BR>  &lt;img src="images/link/flashempire&#46;gif"&gt;<BR>  &lt;img src="images/linklogo/shlogo&#46;gif"&gt;<BR>  &lt;img src="images/link/deskcity&#46;gif"&gt;<BR>  &lt;img src="images/linklogo/5dmeng&#46;gif"&gt;<BR>  &lt;img src="/Article/UploadFiles/200411/20041112234106773&#46;gif"&gt;<BR>  &lt;img src="images/link/flashskylogo&#46;gif"&gt;<BR>  &lt;img src="images/link/5dlogo88&#46;gif"&gt;<BR>  &lt;img src="http://www&#46;yiiboo&#46;com/cgercn/link&#46;gif";&gt;<BR>  &lt;/div&gt;<BR>  &lt;div id=demo2&gt;&lt;/div&gt;<BR>  &lt;/div&gt;<BR>    &lt;script&gt;<BR>    var speed=30<BR>    demo2&#46;innerHTML=demo1&#46;innerHTML<BR>    demo&#46;scrollTop=demo&#46;scrollHeight<BR>    function Marquee(){<BR>    if(demo1&#46;offsetTop-demo&#46;scrollTop&gt;=0)<BR>    demo&#46;scrollTop+=demo2&#46;offsetHeight<BR>    else{<BR>    demo&#46;scrollTop--<BR>    }<BR>    }<BR>    var MyMar=setInterval(Marquee,speed)<BR>    demo&#46;onmouseover=function() {clearInterval(MyMar)}<BR>    demo&#46;onmouseout=function() {MyMar=setInterval(Marquee,speed)}<BR>    &lt;/script&gt;<BR><BR>向左滚动: <BR><BR>&lt;base href="http://www&#46;flash8&#46;net";&gt;<BR>  &lt;div id=demo style=overflow:hidden;height:33;width:500;background:#214984;color:#ffffff&gt;&lt;table align=left cellpadding=0 cellspace=0 border=0&gt;&lt;tr&gt;&lt;td id=demo1 valign=top&gt;&lt;img src="images/link/flashempire&#46;gif"&gt;&lt;img src="images/linklogo/shlogo&#46;gif"&gt;&lt;img src="images/link/deskcity&#46;gif"&gt;&lt;img src="images/linklogo/5dmeng&#46;gif"&gt;&lt;img src="/Article/UploadFiles/200411/20041112234106773&#46;gif"&gt;&lt;img src="images/link/flashskylogo&#46;gif"&gt;&lt;img src="images/link/5dlogo88&#46;gif"&gt;&lt;img src="http://www&#46;yiiboo&#46;com/cgercn/link&#46;gif";&gt;&lt;img src="images/flash8&#46;gif"&gt;&lt;/td&gt;&lt;td id=demo2 valign=top&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;<BR>  &lt;script&gt;<BR>  var speed=30<BR>  demo2&#46;innerHTML=demo1&#46;innerHTML<BR>  function Marquee(){<BR>  if(demo2&#46;offsetWidth-demo&#46;scrollLeft&lt;=0)<BR>  demo&#46;scrollLeft-=demo1&#46;offsetWidth<BR>  else{<BR>  demo&#46;scrollLeft++<BR>  }<BR>  }<BR>  var MyMar=setInterval(Marquee,speed)<BR>  demo&#46;onmouseover=function() {clearInterval(MyMar)}<BR>  demo&#46;onmouseout=function() {MyMar=setInterval(Marquee,speed)}<BR>  &lt;/script&gt;<BR><BR><BR>向右滚动: <BR><BR>&lt;base href="http://www&#46;flash8&#46;net";&gt;<BR>  &lt;div id=demo style=overflow:hidden;height:33;width:500;background:#214984;color:#ffffff&gt;&lt;table align=left cellpadding=0 cellspace=0 border=0&gt;&lt;tr&gt;&lt;td id=demo1 valign=top&gt;&lt;img src="images/link/flashempire&#46;gif"&gt;&lt;img src="images/linklogo/shlogo&#46;gif"&gt;&lt;img src="images/link/deskcity&#46;gif"&gt;&lt;img src="images/linklogo/5dmeng&#46;gif"&gt;&lt;img src="/Article/UploadFiles/200411/20041112234106773&#46;gif"&gt;&lt;img src="images/link/flashskylogo&#46;gif"&gt;&lt;img src="images/link/5dlogo88&#46;gif"&gt;&lt;img src="http://www&#46;yiiboo&#46;com/cgercn/link&#46;gif";&gt;&lt;img src="images/flash8&#46;gif"&gt;&lt;/td&gt;&lt;td id=demo2 valign=top&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;<BR>  &lt;script&gt;<BR>  var speed=30<BR>  demo2&#46;innerHTML=demo1&#46;innerHTML<BR>demo&#46;scrollLeft=demo&#46;scrollWidth<BR>  function Marquee(){<BR>  if(demo&#46;scrollLeft&lt;=0)<BR>  demo&#46;scrollLeft+=demo2&#46;offsetWidth<BR>  else{<BR>  demo&#46;scrollLeft--<BR>  }<BR>  }<BR>  var MyMar=setInterval(Marquee,speed)<BR>  demo&#46;onmouseover=function() {clearInterval(MyMar)}<BR>  demo&#46;onmouseout=function() {MyMar=setInterval(Marquee,speed)}<BR>  &lt;/script&gt;</SPAN> <BR>
回复

使用道具 举报

8

主题

99

回帖

0

积分

路旁的落叶

积分
0
QQ
发表于 2006-5-19 23:19:01 | 显示全部楼层
- -! 好复杂了!比明白!
  ┊.﹎.吥是絪沩寂寞才想鉨.﹎. ┊     ┊.﹎.而徥絪沩想鉨才寂寞.﹎. ┊ ```
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Enjoy Game

GMT+8, 2024-12-27 15:04 , Processed in 0.090215 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表