html滚动效果代码,javascript 实现滚动效果代码整理

发布时间:2025-12-09 17:59:41 浏览次数:4

1.先写两个最常用最简洁的滚动代码

代码如下:

水平滚动:

水平滚动字幕内容

垂直滚动:

垂直滚动字内容

2.平稳不间断滚动

var tm=null

function newsScroll() {

var scrollimg=document.getElementById("scroll")

if(scrollimg.parentNode.scrollTop!=(scrollimg.clientHeight/2))

scrollimg.parentNode.scrollTop++;

else

scrollimg.parentNode.scrollTop=0

}

window.οnlοad=function() {

tm=setInterval('newsScroll()',25)

}

function stop()

{

clearInterval(tm)

}

function start()

{

tm=setInterval('newsScroll()',25)

}

/* stop() start() 不能和调用ID在同一个容器内, 如容器没默认高度 要制定高度*/

3 有停留滚动代码示例:

无标题文档

多行滚动演示:

这是公告标题的第一行

这是公告标题的第二行

这是公告标题的第三行

这是公告标题的第四行

这是公告标题的第五行

这是公告标题的第六行

这是公告标题的第七行

这是公告标题的第八行

向前  向后

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

4:一个简单的滚动代码学习制作示例

无间断循环滚动效果

北 京|上 海|广 州|西 安|南 京|大 连|哈尔滨|武 汉

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

Js代码说明:

JavaScript代码:

var s,sn=0,timer,slen,timer2;

//初始化设置

function scrollInit(){

s=getid("s1"); //获取需要滚动内容的对象

s.scrollTop=0; //初始化滚动位置

slen=s.innerHTML.split("|"); //获取滚动内容,并存入数组,以便显示调用

s.innerHTML=""; //清空滚动对象内容

for(var i=0;i");} //格式化输出滚动内容

s.innerHTML+=slen[0];

timer2=setInterval(scrollstart,3000); //开始滚动

s.οnmοuseοver=function(){clearInterval(timer2);clearInterval(timer);s.style.backgroundColor="#ccc";} //鼠标经过,停止滚动,改变样式

s.οnmοuseοut=function(){timer2=setInterval(scrollstart,3000);s.style.backgroundColor="#fff";} //鼠标移开,恢复滚动

}

//开启滚动效果

function scrollstart(){

if(s.scrollTop>=(slen.length*20)){s.scrollTop=0;} //滚动内容到底时,重置内容位置

timer=setInterval(scrollexec,30); //执行滚动动画效果

}

//滚动动画效果

function scrollexec(){

if(sn<20){

sn++;

s.scrollTop++;

}else{

sn=0;

clearInterval(timer);

}

}

//通过ID获取对象

function getid(id){return document.getElementById(id);}

//网页加载后,执行初始化

window.οnlοad=scrollInit;

原理解析:

1、首先给容器设定高度或宽度,比如p,设置p高20px;overflow:hidden;

2、容器高度设定后,内容的高度超出20px,超过部分溢出,被隐藏,scrollTop属性可用,这一点可以用overflow:scroll来看效果;

3、改变容器的scrollTop(上下滚动)或scrollLeft(左右滚动)属性的值,让内容移动位置(滚动的原理);

4、到滚动的高度scrollTop大于或等于内容的高度时,设置scrollTop=0,让内容返回原来的位置,重新开始滚动,无间断循环滚动效果就出现了。

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477