本文实例讲述了JavaScript实现的原生态兼容IE6可调可控滚动文字功能。分享给大家供大家参考,具体如下:

虽然HTML里面本身就有marquee标签,用来设置滚动文字(marquee标签在附录【HTML比较冷门标签与属性】里会有具体介绍)这个标签到了IE8就开始不支持,在IE6中可以设置的东西也很少,所以这东西还是用javascript来写为好。这个小组件也是比较常见的,但是网上的代码质量还是为了很多无关紧要的小特效而增加了许多无谓的代码。其实这东西,你只要弄得能自己向右向左滚,到了屏幕边缘自动返回就行了,为什么要为了一些淡入淡出的华而不实的东西,而写一大摞代码了。下面介绍一个自己写的利用padding-left实现滚动文字,因为padding-left这个东西在大多数浏览器还是没有问题的。
一、基本目标
如下图,一开始文字能在15px-400px这个区域以每0.05s,5px像素的无缝滚动,当然,改改下面的脚本,你让我从地球滚动到外太空都没问题,只要你告诉我地球的px和外太空的px就行了,然后设置两个按钮,你点击“停止”它就停止,停止之后点击“开始”就让它开始,它在“开始”的状态你点N下“开始”是不会出BUG的,继续保持这个状态,它在“停止”状态,你点N下“停止”也是没有问题的。
二、HTML布局
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>marquee</title> </head> <body> <div>sssssss</div> <div id="marquee" style="padding-left:0px;">marquee</div> <div>sssssss</div> <button onclick="return marquee_move_stop()">停止</button> <button onclick="return marquee_move_start()">开始</button> </body> </html>
思想如下图,一图胜千言,不说了。请自行对比代码与图。
三、脚本部分
这里是整个控件的核心。
<script>
//设置其滚动速度是5px/0.05s,这样能够实现无缝滚动,不会一卡一卡的。
var speed=5;
var marqueeTimer=setInterval("marquee_move()",50);
//这个变量主要是用来下面控制滚动开始与停止的两个函数
var isMarqueeMove=true;
//滚动的核心函数
function marquee_move(){
//这么长的代码主要是为了把带px的padding-left转化为一个可以操作的数
//如padding-left:0px;经过这一行代码之后var marquee_x=0;
var marquee_x=parseInt(document.getElementById("marquee").style.paddingLeft.substring(0,document.getElementById("marquee").style.paddingLeft.indexOf("px")));
//如果滚过400px这个位置,那就向反方向走,反之亦然
if(marquee_x>400){
speed=-5;
}
//这里不要设置成0,可能会产生越界bug
if(marquee_x<15){
speed=5;
}
//文字向右滚5px
document.getElementById("marquee").style.paddingLeft=marquee_x+speed+"px";
}
//下面控制滚动开始与停止的两个函数
//之所以要立flag,是因为marqueeTimer=setInterval("marquee_move()",50);多次被执行,滚动会变得很快和无法控制
//后方的计时器不会替换到前方的计时器
function marquee_move_stop(){
if(isMarqueeMove){
clearTimeout(marqueeTimer);
isMarqueeMove=false;
}
}
function marquee_move_start(){
if(!isMarqueeMove){
marqueeTimer=setInterval("marquee_move()",50);
isMarqueeMove=true;
}
}
</script>
四、总结
1、CSS中,凡是带-的属性,在javascript要换成大写,如CSS的padding-left在javascript是paddingLeft,否则会被当成减号处理
2、利用padding-left来完成这个组件,就不用使用left要设置绝对定位,然后又要考虑这个组件怎么摆放了。
3、这个东西在浏览器的百分比宽度内滚动,最好不要这样做,毕竟javascript中取出浏览器的宽度可能会遇到各种各样的兼容性问题。还是设置一个定值,这样的代码简短。
附:HTML比较冷门标签与属性
1.<hr>标签能够添加一条水平分隔线。单标记标签,拥有属性width,size,color,align(后接值)noshade(直接添加,如文本框的disabled,表示这条水平线是无阴影的)
2.<marquee>标签已经被微软废除了。
微软这个家伙在最新的IE8下已经放弃对MARQUEE的支持了(我这里很无语,MARQUEE是微软自己创造出来的,现在火狐都支持了,它自己不干了)
用marquee有诸多问题的。DW给你提示是警告你慎重。
如下面的代码在IE8的滚动是存在问题的,当图片滚完之后会自动刷新,相当难看,无法现实无缝滚动。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>滚动</title> </head> <body> <marquee width=250px behavior="scroll"> <a href="http://www.163.com" rel="external nofollow" ><img src="img0.jpg" width=100 hspace=50/></a> <a href="http://www.baidu.com" rel="external nofollow" ><img src="img28.jpg" width=100px /></a> </marquee> </body> </html>
3.<strong>标签是强调标签,基于内容。<b>是物理样式。<sup><sub>双标记标签能分别使字体上标与下标
4.©是代表版权字符©,®则是注册商标, 是空格
5.对于图片,其hspace属性能够设置图片与图片之间的间距。
6.<body>标签也是有属性的vlink link 能够分别设置访问了与未访问超链接的颜色,leftmargin与topmargin能够分别规定文档的左边距与上边距
7.<meta name="keywords" content="搜索关键词"><meta name="description content="网页描述">能分别设置被搜索引擎抓取的关键词与网页描述
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
# JavaScript
# 原生态
# 兼容IE6
# 可调
# 可控
# 滚动文字
# js实现的文字横向无间断滚动
# 浅析js 文字滚动效果
# JS实现单行文字不间断向上滚动的方法
# js 上下文字滚动效果
# js文字滚动停顿效果代码
# js实现文字滚动效果
# javascript 单行文字向上跑马灯滚动显示
# js 动态文字滚动的例子
# javascript跟随鼠标的文字带滚动效果
# javascript 模拟Marquee文字向左均匀滚动代码
# js+div实现文字滚动和图片切换效果代码
# JS实现文字向下滚动完整实例
# 关键词
# 微软
# 计时器
# 它在
# 如下图
# 外太空
# 地球
# 就行了
# 让我
# 会有
# 是因为
# 给你
# 相关内容
# 告诉我
# 是有
# 就有
# 则是
# 都没
# 华而不实
相关文章:
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
建站之星好吗?新手能否轻松上手建站?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
视频网站制作教程,怎么样制作优酷网的小视频?
建站之星安装提示数据库无法连接如何解决?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
网站制作模板下载什么软件,ppt模板免费下载网站?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
如何快速搭建高效WAP手机网站?
如何解决VPS建站LNMP环境配置常见问题?
SQL查询语句优化的实用方法总结
公司网站的制作公司,企业网站制作基本流程有哪些?
已有域名和空间如何快速搭建网站?
公司网站制作价格怎么算,公司办个官网需要多少钱?
建站之星云端配置指南:模板选择与SEO优化一键生成
在线教育网站制作平台,山西立德教育官网?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
婚礼视频制作网站,学习*后期制作的网站有哪些?
如何确认建站备案号应放置的具体位置?
C++中引用和指针有什么区别?(代码说明)
购物网站制作公司有哪些,哪个购物网站比较好?
深入理解Android中的xmlns:tools属性
如何在Ubuntu系统下快速搭建WordPress个人网站?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
再谈Python中的字符串与字符编码(推荐)
网站按钮制作软件,如何实现网页中按钮的自动点击?
如何在服务器上配置二级域名建站?
如何选择域名并搭建高效网站?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
内网网站制作软件,内网的网站如何发布到外网?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
网站制作报价单模板图片,小松挖机官方网站报价?
常州企业网站制作公司,全国继续教育网怎么登录?
如何通过服务器快速搭建网站?完整步骤解析
c# 服务器GC和工作站GC的区别和设置
高性价比服务器租赁——企业级配置与24小时运维服务
如何在云服务器上快速搭建个人网站?
如何在IIS中新建站点并配置端口与IP地址?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
建站之星导航如何优化提升用户体验?
建站之星如何快速生成多端适配网站?
建站之星如何防范黑客攻击与数据泄露?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
微信推文制作网站有哪些,怎么做微信推文,急?
建站之星CMS五站合一模板配置与SEO优化指南
建站之星如何优化SEO以实现高效排名?
制作网页的网站有哪些,电脑上怎么做网页?
建站之星各版本价格是多少?
*请认真填写需求信息,我们会在24小时内与您取得联系。