历史上最简单的连续滚动字幕源代码,js控制(除了js还有啥可以控制的呢。哈哈)
2008-08-28 15:25
337 查看
在网上找了一下连续字幕滚动的源代码,就是搞不懂了,这么简单的东西非要来回的捣鼓,最后经过我的一番alert()终于搞明白了,下面我把代码贴出来大家分享一下,
<
div
id
=
ami
style
=
overflow
:hidden;height:20px;width:150
>
<
div
id
=
ami1
>
我是打头的
<
br
>
我向上运动
<
br
>
我向上运动
<
br
>
我向上运动
<
br
>
我向上运动
<
br
>
我向上运动
<
br
>
</
div
>
<
div
id
=
ami2
>
</
div
>
</
div
>
<
script
>
var
speed
=
30
;
ami2.innerHTML
=
ami1
.innerHTML
function Marquee()
{
//if(ami2.offsetTop-ami.scrollTop
<
=0)//注释掉的是网上的源代码,这句代码有个缺点就是当
ami2.offsetTop(是
ami2
相对于ami的距离)大于
ami.scrollTop
时那么滚动条滚几下就再也不会动了
// {
ami.scrollTop-
=(ami1.offsetHeight-1);
//注释掉的是网上的源代码
,ami1.offsetHeight(包括边框的高度)
//}
//注释掉的是网上的源代码
//else
//注释掉的是网上的源代码
//{
//注释掉的是网上的源代码
var
temp
=
ami
.scrollTop;//为啥要把
ami
.scrollTop,暂存起来呢原因是
ami
.scrollTop增加到一定的数值,就不会动了,就像我们的网页的滚动条,你拉到底就再也拉不下去了一样,所以要暂存起来,等
ami
.scrollTop再也加不动的时候就把他置零,这样就可以又重新滚起来了,
ami.scrollTop++;
if(
temp
==ami.scrollTop)
{
ami.scrollTop
=
1
;
}
//}
//注释掉的是网上的源代码
}
var
MyMar
=
setInterval
(Marquee,speed)
ami.onmouseover
=
function
() {clearInterval(MyMar)}
ami.onmouseout
=
function
() {
MyMar
=
setInterval
(Marquee,speed)}
</
script
>
顺便把
[b]scrollHeight,clientHeight,scrollTop区别和关系做一下笔记
这是《让一行页脚保持在底部》的注释,效果可以点此
function test(){
var infoHeight = document.getElementById("info").scrollHeight;
//scrollHeight 为层实际的高度,有实际有多高就多高,与当前网页高度无关。
var bottomHeight = document.getElementById("bottom").scrollHeight;
var allHeight = document.documentElement.clientHeight;
//clientHeight 为层在当前屏幕的高度,非该层的实际高度
var bottom = document.getElementById("bottom");
//获取bottom
if((infoHeight + bottomHeight) < allHeight){ //如果"info层的高度"加"bottom层的高度"小于"当前屏幕的高度"
bottom.style.position = "absolute"; //定义bottom的position为absolute
bottom.style.bottom = "0"; //bottom属性设为0.
}else{
bottom.style.position = "";
bottom.style.bottom = "";
}
setTimeout(function(){test();},10); //当内容减少,窗口缩小,依然保持在底部
}
test();
《右下角广告代码-已测-支持FIREFOX IE7 IE6》的注释,效果可以点此
//<div style="position:absolute;border:1px solid #000;right:0;height:20px;" id="ad"><a href="http://www.zishu.cn
">子鼠测试.</a></div> <!--定义需要测试的层的css。position:absolute;是关键-->
function rightBottomAd(){
var abc = document.getElementById("ad"); //获取ad的值并赋给变量abc
abc.style.top = document.documentElement.scrollTop+document.documentElement.clientHeight-20+"px";
// document.documentElement.scrollTop 是获取当前页面的滚动条纵坐标位置,注意不是document.top.scrollTop
// document.documentElement.clientHeight 获取屏幕的实际大小
//
整句就是"滚动条纵坐标"加"当前屏幕的坐标"减"20"(20对应上面的层的高度),这样就是可以让层永远处于当前页面的最下端。可以通过
alert(document.documentElement.scrollTop)和
alert(document.documentElement.clientHeight)加深理解。
setTimeout(function(){rightBottomAd();},50); //不断的计算层的位置。
}
rightBottomAd();
下面是一张相关的图片
<
div
id
=
ami
style
=
overflow
:hidden;height:20px;width:150
>
<
div
id
=
ami1
>
我是打头的
<
br
>
我向上运动
<
br
>
我向上运动
<
br
>
我向上运动
<
br
>
我向上运动
<
br
>
我向上运动
<
br
>
</
div
>
<
div
id
=
ami2
>
</
div
>
</
div
>
<
script
>
var
speed
=
30
;
ami2.innerHTML
=
ami1
.innerHTML
function Marquee()
{
//if(ami2.offsetTop-ami.scrollTop
<
=0)//注释掉的是网上的源代码,这句代码有个缺点就是当
ami2.offsetTop(是
ami2
相对于ami的距离)大于
ami.scrollTop
时那么滚动条滚几下就再也不会动了
// {
ami.scrollTop-
=(ami1.offsetHeight-1);
//注释掉的是网上的源代码
,ami1.offsetHeight(包括边框的高度)
//}
//注释掉的是网上的源代码
//else
//注释掉的是网上的源代码
//{
//注释掉的是网上的源代码
var
temp
=
ami
.scrollTop;//为啥要把
ami
.scrollTop,暂存起来呢原因是
ami
.scrollTop增加到一定的数值,就不会动了,就像我们的网页的滚动条,你拉到底就再也拉不下去了一样,所以要暂存起来,等
ami
.scrollTop再也加不动的时候就把他置零,这样就可以又重新滚起来了,
ami.scrollTop++;
if(
temp
==ami.scrollTop)
{
ami.scrollTop
=
1
;
}
//}
//注释掉的是网上的源代码
}
var
MyMar
=
setInterval
(Marquee,speed)
ami.onmouseover
=
function
() {clearInterval(MyMar)}
ami.onmouseout
=
function
() {
MyMar
=
setInterval
(Marquee,speed)}
</
script
>
顺便把
[b]scrollHeight,clientHeight,scrollTop区别和关系做一下笔记
[/b]
这是《让一行页脚保持在底部》的注释,效果可以点此function test(){
var infoHeight = document.getElementById("info").scrollHeight;
//scrollHeight 为层实际的高度,有实际有多高就多高,与当前网页高度无关。
var bottomHeight = document.getElementById("bottom").scrollHeight;
var allHeight = document.documentElement.clientHeight;
//clientHeight 为层在当前屏幕的高度,非该层的实际高度
var bottom = document.getElementById("bottom");
//获取bottom
if((infoHeight + bottomHeight) < allHeight){ //如果"info层的高度"加"bottom层的高度"小于"当前屏幕的高度"
bottom.style.position = "absolute"; //定义bottom的position为absolute
bottom.style.bottom = "0"; //bottom属性设为0.
}else{
bottom.style.position = "";
bottom.style.bottom = "";
}
setTimeout(function(){test();},10); //当内容减少,窗口缩小,依然保持在底部
}
test();
《右下角广告代码-已测-支持FIREFOX IE7 IE6》的注释,效果可以点此
//<div style="position:absolute;border:1px solid #000;right:0;height:20px;" id="ad"><a href="http://www.zishu.cn
">子鼠测试.</a></div> <!--定义需要测试的层的css。position:absolute;是关键-->
function rightBottomAd(){
var abc = document.getElementById("ad"); //获取ad的值并赋给变量abc
abc.style.top = document.documentElement.scrollTop+document.documentElement.clientHeight-20+"px";
// document.documentElement.scrollTop 是获取当前页面的滚动条纵坐标位置,注意不是document.top.scrollTop
// document.documentElement.clientHeight 获取屏幕的实际大小
//
整句就是"滚动条纵坐标"加"当前屏幕的坐标"减"20"(20对应上面的层的高度),这样就是可以让层永远处于当前页面的最下端。可以通过
alert(document.documentElement.scrollTop)和
alert(document.documentElement.clientHeight)加深理解。
setTimeout(function(){rightBottomAd();},50); //不断的计算层的位置。
}
rightBottomAd();
下面是一张相关的图片
相关文章推荐
- JS控制网页图片斜向滚动(图片除了上、下、左、右滚动,还有斜向滚动哦)
- JS实现图片的不间断连续滚动的简单实例
- 一个js实现简单的字幕滚动效果
- css + js实现简单无缝滚动字幕
- 不错的滚动JS代码 分为小跳中跳和大跳还有连续
- JS实现图片的不间断连续滚动的简单实例
- js实现图片向上连续滚动特效代码(含注释)
- js小技巧5 js控制图片滚动效果
- 通用无缝连续滚动JS
- 今天又长知识了,HDMI线比VGA的好处除了高清还有可以转换音频输出
- 使用js实现带有停顿效果的图片滚动(按钮控制)
- zz 用JS控制Iframe鼠标的中轴滚动事件,并使鼠标在ifrme内时,父窗口滚动失效
- DIV+CSS结合js控制页面滚动的效果
- ScrollPic.js—简单易用的图片左右滚动插件
- <Shader>简单的纹理坐标滚动(水波模型:脚本控制)
- 一个简单的二级联动效果,看完之后立马你也可以写一个(有源码,纯js,带注释)
- 简单连续滚动效果
- JS控制点击按钮图片向左或向右循环移动滚动效果
- js控制图片滚动效果
- 无缝连续滚动字幕