请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 2816|回复: 5

[教程] 无间断滚动marquee的详细用法解析 [复制链接]

moyixiu 楼主

梦潇涵

初级会员

帖子
89
体力
285
威望
0
发表于 2007-2-7 00:53:23 |显示全部楼层
原文地址

      前阵子要做无间断滚动,找了很久终于找到了阿米的眼泪写的方法,经raidl完善后非常好用,不敢藏私,拿出来和大家分享一下。当时是另存的,忘了原来的网址是什么了。
下面介绍marquee 的终极用法。

先看下 marquee 的html 属性
<MARQUEE ALIGN="…"     
  behavior="…"  
  BGCOLOR="…"  
  DIRECTION="…"  
  HEIGHT="…"  
  WIDTH="…"  
  HSPACE="…"  
  VSPACE="…"  
  LOOP="…"  
  SCROLLAMOUNT="…"  
  SCROLLDELAY="…"  
>…</MARQUEE>  

align:    对齐方式 LEFT,CENTER,RIGHT,TOP,BOTTOM (不用多说了)
behavior:    用于设定滚动的方式,主要由三种方式:
behavior="scroll":    表示由一端滚动到另一端;
behavior="slide":    表示由一端快速滑动到另一端,且不再重复;
behavior="alternate" :    默认值——表示在两端之间来回滚动。

看下例子吧:

 提示:您可以先修改部分代码再运行



direction:    left(默认值) 左; right 右;up 上;down 下;
bgcolor:    背景颜色
height:    高度
weight:    宽度
Hspace/vspace:    分别用于设定滚动字幕的左右边框和上下边框的宽度。作用大概和css中的margin差不多
scrollamount:    用于设定每个连续滚动文本后面的间隔,该间隔用像素表示,以上是官方说法,其实就是滚动的速度,值不能太大,要不从视觉角度来说,是没反应的.值越大速度越快,反之越慢。
scrolldelay:    延迟时间
loop:    这个属性大家也很熟悉,循环次数;loop=-1的时候一直重复循环(默认值)

 提示:您可以先修改部分代码再运行



好,现在我们再来接触一些Dcode的一些知识。

首先是两个鼠标事件

onmouseover:    鼠标触发事件---当用户将鼠标指针移动到对象内时触发
onmouseout:    鼠标滑出事件---当用户将鼠标指针移出对象边界时触发

这里要用到的是 this.start() 与this.stop()
onmouseover="this.stop();" onmouseout="this.start

意思就是鼠标移到marquee的内容上的时候停止循环,鼠标移开marquee 又开始移动。

 提示:您可以先修改部分代码再运行



继续
innercode:    设置或获取位于对象起始和结束标签内的 code
innerText:    设置或获取位于对象起始和结束标签内的文本
scrollLeft:    设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:    设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。PS:大家不要想当然的以为有scrollRigh和scrollDown :)
scrollDelay:    设置或获取字幕滚动的速度,要创建垂直滚动的字幕,请将其 scrollLeft 属性设定为0,要创建水平滚动的字幕,请将其 scrollTop 属性设定为 0,这将覆盖任何脚本设置
scrollHeight:    获取对象的滚动高度
scrollAmount:    设置或获取介于每个字幕绘制序列之间的文本滚动像素数
offsetTop:    获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
offsetLeft:    获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetHeight:    获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度。
setInterval:    交互时间。它从载入后,每隔指定的时间就执行一次表达式
clearInterval:    使用 setInterval 方法取消先前开始的间隔事件。

好 现在我们先看一段简单程序

 提示:您可以先修改部分代码再运行



上面的就是不间断滚动了,翻译下这段代码

  1. <script>
  2. var speed=30;   //设变量 滚动速度变量speed =30                  
  3. moved2.innercode=moved1.innercode //复制moved1的code代码给moved2

  4. function Marquee()
  5. {
  6.         if(moved2.offsetTop-moved.scrollTop<=0) {  //如果moved2.offset-moved.scrolltop<=0(也就是moved1的内容滚动结束)则moved2开始滚动
  7.           moved.scrollTop-=moved1.offsetHeight;   //moved.scrolltop此时的值为moved2滚动的长度
  8.      }
  9.      else {
  10.                moved.scrollTop++;    //否则moved1继续滚动
  11.      }
  12. }
  13. var MyMar=setInterval(Marquee,speed)    //每隔30毫秒 执行一次
  14. moved.onmouseover = function() {clearInterval(MyMar);}     //鼠标移过 停止执行
  15. moved.onmouseout = function() {MyMar=setInterval(Marquee,speed);}    //滑出 继续执行
  16. </script>
复制代码


大家不理解的话再看这个例子

 提示:您可以先修改部分代码再运行



好的,接下来,同理可得

 提示:您可以先修改部分代码再运行



再同理

 提示:您可以先修改部分代码再运行



经过功能完善

 提示:您可以先修改部分代码再运行

西部数码顶级域名注册商39元抢注!
hero4u 

孤竹林

金牌会员 手机认证 

帖子
1305
体力
3444
威望
14
居住地
湖南省 长沙市
发表于 2007-2-7 02:47:58 |显示全部楼层
很久以前的特效书特效精灵很多这样的了。真是怀念那个时候的学习劲头啊。
言归正传,文章虽好,发得不是时候呀。Web Standards 很少用到滚动了,在边缘摩擦,还不如深入敌人内部了。
个人愚见
体验游戏 game4power
租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

帖子
112
体力
5
威望
0
发表于 2007-2-7 10:30:36 |显示全部楼层
marquee 违规的,涉及到行为还是用 js 来实现!

使用道具 举报

lxu220 
帖子
120
体力
297
威望
0
发表于 2007-2-7 13:21:41 |显示全部楼层
marquee 不合标准啊...少用..

使用道具 举报

帖子
1163
体力
4277
威望
0
发表于 2007-2-7 13:31:23 |显示全部楼层
顶,偻上说的对,以后作制作就要想到各个浏览器,不过楼主还是很厉害的,你说的东西我都不会
忍受。一定要学会忍受。

使用道具 举报

moyixiu 楼主

梦潇涵

初级会员

帖子
89
体力
285
威望
0
发表于 2007-2-8 00:38:09 |显示全部楼层
嗯,大家说得对,我发现很多人问这方面的问题,就索性把blog收藏的东西发了过来,我赞成从标准学起

使用道具 举报

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

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-13 13:34 , Processed in 0.099462 second(s), 10 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部