[Js特效]代替marquee的滚动字幕效果代码
由于marquee标签现在用得是越来越少了,所以滚动效果的做法大多也都改用javascript来实现了,至于不明白为什么不直接用marquee标签的朋友,不妨先阅读一下这篇文章。
第一种方法:用javascript模拟marquee的做法。
复制内容到剪贴板
代码:
<!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=gb2312" />
<title>热点新闻</title>
<style type="text/css">
<!--
body {
margin: 0px;
font-size: 12px;
color: #938C43;
line-height: 150%;
text-align:center;
}
a:link{color: #9D943A;font-size:12px;}
a:hover{color: #FF3300;font-size:12px;}
a:visited{color: #9D943A;font-size:12px;}
a.red:link{color: #ff0000;font-size:12px;}
a.red:hover{color: #ff0000;font-size:12px;}
a.red:visited{color: #ff0000;font-size:12px;}
#marqueeBox{background:#f7f7f7;border:1px solid silver;padding:1px;text-align:center;margin:0 auto;}
-->
</style>
</head>
<body>
<h4>滚动新闻</h4>
<script language="JavaScript" type="text/javascript">
var marqueeContent=new Array();
marqueeContent[0]="<a href=http://xyq.163.com/news/2006/11/2-2-20061102170913.html target=_blank>用“梦幻密保”快速取回帐号密码</a>";
marqueeContent[1]="<a href=http://ekey.163.com/ target=_blank>网易将军令官方网站</a>";
marqueeContent[2]="<a href=http://xyq.163.com/download/wallpaper.htm target=_blank>最新壁纸下载</a>";
marqueeContent[3]="<a href=http://xyq.163.com/download/around.htm target=_blank>最新屏保下载</a>";
var marqueeInterval=new Array();
var marqueeId=0;
var marqueeDelay=2000;
var marqueeHeight=20;
function initMarquee() {
var str=marqueeContent[0];
document.write('<div id="marqueeBox" style="overflow:hidden;width:250px;height:'+marqueeHeight+'px" onmouseover="clearInterval(marqueeInterval[0])" onmouseout="marqueeInterval[0]=setInterval(\'startMarquee()\',marqueeDelay)"><div>'+str+'</div></div>');
marqueeId++;
marqueeInterval[0]=setInterval("startMarquee()",marqueeDelay);
}
function startMarquee() {
var str=marqueeContent[marqueeId];
marqueeId++;
if(marqueeId>=marqueeContent.length) marqueeId=0;
if(document.getElementById("marqueeBox").childNodes.length==1) {
var nextLine=document.createElement('DIV');
nextLine.innerHTML=str;
document.getElementById("marqueeBox").appendChild(nextLine);
}
else {
document.getElementById("marqueeBox").childNodes[0].innerHTML=str;
document.getElementById("marqueeBox").appendChild(document.getElementById("marqueeBox").childNodes[0]);
document.getElementById("marqueeBox").scrollTop=0;
}
clearInterval(marqueeInterval[1]);
marqueeInterval[1]=setInterval("scrollMarquee()",20);
}
function scrollMarquee() {
document.getElementById("marqueeBox").scrollTop++;
if(document.getElementById("marqueeBox").scrollTop%marqueeHeight==(marqueeHeight-1)){
clearInterval(marqueeInterval[1]);
}
}
initMarquee();
</script>
</body>
</html>
个人观点:从web可用性角度上讲,我们在采用这段代码的同时要考虑到noscript环境下的可用性,建议将内容还是以下边代码的形式出现在页面中。如:
引用:
<div id="newslist">
<ul>
<li><a href=http://xyq.163.com/news/2006/11/2-2-20061102170913.html target=_blank>用“梦幻密保”快速取回帐号密码</a></li>
<li><a href=http://ekey.163.com/ target=_blank>网易将军令官方网站</a></li>
<li><a href=http://xyq.163.com/download/wallpaper.htm target=_blank>最新壁纸下载</a></li>
<li><a href=http://xyq.163.com/download/around.htm target=_blank>最新屏保下载</a></li>
</ul>
</div>
然后用脚本去设置隐藏,将列表项读进javascript中定义的数组中。即可达到在noscript环境下也能正常看到内容列表。
第二种方法:这个更强,能自动根据内容自动进行左右滚动,解决了宽度太小造成的截取问题。
复制内容到剪贴板
代码:
<html>
<head>
<title> SCROLL </title>
<style type="text/css">
#infozone{font-size:12px;color:#aa6;overflow:hidden;width:100px;height:20px;}
#infozone div{height:20px;line-height:20px;white-space:nowrap;overflow:hidden;}
</style>
<script type="text/javascript">
var tc;
window.onload=function(){
var o=document.getElementById('infozone');hscroll(o);
window.setInterval(function(){window.clearTimeout(tc);o.firstChild.style.marginLeft='0px';scrollup(o,20,0);},10000);
}
function scrollup(o,d,c){
if(d==c){
var t=o.firstChild.cloneNode(true);
o.removeChild(o.firstChild);o.appendChild(t);
t.style.marginTop=o.firstChild.style.marginTop='0px';
hscroll(o);
}
else{
ch=false;var s=3,c=c+s,l=(c>=d?c-d:0);
o.firstChild.style.marginTop=-c+l+'px';
window.setTimeout(function(){scrollup(o,d,c-l)},50);
}
}
function hscroll(o){
var w1=o.firstChild.offsetWidth,w2=o.offsetWidth;
if(w1<=w2)return;
tc=window.setTimeout(function(){hs(o,w1-w2,0,w1-w2)},3500);
}
function hs(o,d,c,p){
c++;var t=(c>0?-c:c);o.firstChild.style.marginLeft=t+'px';
if(c==d){if(d==0){tc=window.setTimeout(function(){hs(o,p,0,p)},2500);}else tc=window.setTimeout(function(){hs(o,0,-p,p)},3500);}
else tc=window.setTimeout(function(){hs(o,d,c,p)},5);
}
</script>
</head>
<body>
<div id="infozone"><div>温岚 - 屋顶(周杰伦 对唱版)</div><div>范玮琪 - 那些花儿</div><div>张韶涵 - 娃娃</div><div>孙楠&韩红 - 美丽的神话</div></div>
</body>
</html>
第三种是最精简的,代码非常少。
复制内容到剪贴板
代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<style type="text/css">
#newslist{
background:#f7f7f7;border:1px solid silver;padding:1px;height:20px;line-height:20px;width:300px;
}
#contain{
font-size:12px;overflow:hidden;list-style:none;width:300px;height:20px;margin:0px;padding:0;
}
#contain li{
height:20px;line-height:20px;white-space:nowrap;overflow:hidden;
}
</style>
</HEAD>
<BODY>
<div id="newslist">
<ul id="contain">
<li><a href="http:/www.iwcn.net">温岚 - 屋顶(左右摆动)</a></li>
<li><a href="http:/www.iwcn.net">范玮琪 - 那些花儿</a></li>
<li><a href="http:/www.iwcn.net">张韶涵 - 娃娃</a></li>
<li><a href="http:/www.iwcn.net">孙楠&韩红 - 美丽的神话</a></li>
<li><a href="http:/www.iwcn.net">张信哲 - 白月光</a></li>
</ul>
</div>
<SCRIPT LANGUAGE="JavaScript">
function xx(){
var container=document.getElementById("contain");
container.appendChild(container.firstChild);
}
setInterval("xx()",3000);
</SCRIPT>
</BODY>
</HTML>
分享到:
相关推荐
### 使用JavaScript实现Marquee滚动字幕效果 随着Web标准的发展与普及,许多早期HTML标签因为不符合现代Web设计规范而逐渐被淘汰或被边缘化,`<marquee>`标签就是其中之一。尽管`<marquee>`标签提供了方便快捷的...
### 使用JavaScript实现替代Marquee的滚动字幕效果 随着Web技术的发展与用户对网页体验要求的提高,传统的`<marquee>`标签因其诸多不足而逐渐被淘汰。为了更好地满足用户需求和提升网页质量,使用JavaScript来实现...
这个标题"marquee滚动效果源代码"表明我们将探讨如何利用marquee标签实现两种特定的滚动效果:间歇性滚动和无缝滚动。 间歇性滚动,也称为定时滚动,是指内容不是连续不断地滚动,而是每隔几秒钟滚动一次。这种效果...
该代码使用了 `<DIV>` 和 `<MARQUEE>` 标签来实现上下滚动字幕的效果。在 `<DIV>` 标签中,我们使用了 `FILTER` 属性来添加阴影效果,`COLOR` 属性来设置文字颜色,`HEIGHT` 属性来设置字幕的高度。在 `<MARQUEE>` ...
总结,实现JS的Marquee上下滚动效果,关键在于利用JavaScript动态改变元素的位置,配合CSS样式限制可视区域。通过封装成类或函数,我们可以更好地控制和扩展这个功能,使其适应不同项目的需求。"MSClass.js"文件很...
JavaScript特效无缝滚动是一种常见的网页动态效果,常用于广告展示、新闻滚动等场景。...通过上述方法,我们可以创建出适应各种场景的JavaScript无缝滚动特效,同时确保良好的浏览器兼容性和性能。
通过熟练掌握这些属性和方法,你就能在Dreamweaver CS3中自如地创建出各种滚动字幕效果,提升网页的交互性和吸引力。在实际操作中,记得根据实际需求和网页设计风格来灵活运用这些参数,以达到最佳的视觉效果。
滚动字幕源代码是计算机编程领域中用于在屏幕上呈现动态移动文字的一种技术。它常见于电影、电视节目、游戏以及各种软件应用中,为用户提供信息显示或者视觉效果。滚动字幕通常采用编程语言实现,可以自定义速度、...
标题提到的"推荐通用文字图片JS不间断滚动封装类 代替Marquee",就是一种利用JavaScript实现的动态效果,它旨在为文字和图片提供一种类似传统的Marquee(滚动条)效果,但更加灵活且易于使用的解决方案。Marquee是...
要实现自下向上的滚动字幕效果,关键在于设置`<marquee>`标签的`direction`属性为`up`,表示内容将从下往上滚动。此外,还可以通过其他属性进一步定制滚动效果,如速度(`scrollamount`)、是否循环滚动(`behavior`)等...
<marquee behavior="scroll" direction="left" scrollamount="5">这是滚动字幕的内容</marquee> ``` 在这个例子中: - `behavior="scroll"`:设置滚动行为,这里是连续滚动。 - `direction="left"`:设定滚动方向,...
无缝循环marquee滚动JS代码实现,兼容IE, FireFox, Chrome,供大家参考,具体内容如下 首先是CSS和HTML如下: #marquee_zxd { border: 1px solid red; white-space: nowrap; overflow: hidden; width: 500px; ...
在本文中,我们将深入探讨`marquee.js`插件,这是一个强大的JavaScript工具,用于实现各种jQuery滚动效果。`marquee.js`是专门为那些希望在网站上添加动态、吸引人的滚动效果的开发者设计的。它兼容了jQuery库,为...
本文将详细介绍如何利用纯JavaScript实现滚动图片的效果,并对代码进行逐行解析。 #### 二、HTML 结构分析 在 HTML 部分,我们首先定义了一个包含两个 `<td>` 的 `<table>` 元素,其中第一个 `<td>` 包含了多个 `...
根据提供的标题、描述、标签及部分内容,我们可以了解到这段代码是使用ASP(Active Server Pages)结合VBScript实现的一个滚动字幕功能,并且该功能能够从数据库中读取新闻标题等相关信息来展示滚动字幕。...
"通用不间断滚动JS封装类,代替Marquee"这个主题涉及到的是利用JavaScript实现类似HTML `<marquee>` 标签的功能,但通过自定义的JS类来提供更灵活、可定制化的滚动效果。 HTML的`<marquee>`标签在早期网页设计中被...
网页滚动字幕制作 网页滚动字幕制作是网页制作中的一种常见效果,它可以使网页更加生动、吸引人。要制作网页滚动字幕,需要使用 HTML ...通过设置 marquee 标签的属性,可以实现不同的滚动字幕效果,满足不同的需求。
Marquee 文字滚动,动态字幕代码! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/
在提供的代码示例中,通过JavaScript结合CSS实现了一个类似`<marquee>`标签的无缝循环滚动效果。 - **关键代码解析**: - **CSS样式**:定义了滚动区域的背景颜色、溢出隐藏、宽度和高度等样式。 - **HTML结构**...