本文实例讲述了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实现文字向下滚动完整实例
# 关键词
# 微软
# 计时器
# 它在
# 如下图
# 外太空
# 地球
# 就行了
# 让我
# 会有
# 是因为
# 给你
# 相关内容
# 告诉我
# 是有
# 就有
# 则是
# 都没
# 华而不实
相关文章:
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何选择可靠的免备案建站服务器?
招商网站制作流程,网站招商广告语?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
定制建站是什么?如何实现个性化需求?
如何选择网络建站服务器?高效建站必看指南
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
网站制作模板下载什么软件,ppt模板免费下载网站?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
如何在Windows环境下新建FTP站点并设置权限?
如何在阿里云完成域名注册与建站?
音乐网站服务器如何优化API响应速度?
建站之星如何快速更换网站模板?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
全景视频制作网站有哪些,全景图怎么做成网页?
建站之星安装失败:服务器环境不兼容?
C#如何使用XPathNavigator高效查询XML
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
家庭服务器如何搭建个人网站?
如何在万网ECS上快速搭建专属网站?
c# 在高并发场景下,委托和接口调用的性能对比
建站主机是什么?如何选择适合的建站主机?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
如何通过云梦建站系统实现SEO快速优化?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
如何用狗爹虚拟主机快速搭建网站?
北京网站制作网页,网站升级改版需要多久?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
如何选择域名并搭建高效网站?
建站之星图片链接生成指南:自助建站与智能设计教程
如何通过VPS建站无需域名直接访问?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
如何在IIS服务器上快速部署高效网站?
盐城做公司网站,江苏电子版退休证办理流程?
代购小票制作网站有哪些,购物小票的简要说明?
香港服务器选型指南:免备案配置与高效建站方案解析
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
营销式网站制作方案,销售哪个网站招聘效果最好?
内部网站制作流程,如何建立公司内部网站?
临沂网站制作企业,临沂第三中学官方网站?
建站之星安装后如何配置SEO及设计样式?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
建站上传速度慢?如何优化加速网站加载效率?
高端云建站费用究竟需要多少预算?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
音响网站制作视频教程,隆霸音响官方网站?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
*请认真填写需求信息,我们会在24小时内与您取得联系。