JS不间断向上滚动 setInterval和clearInterval



<div id=demo style=overflow:hidden;height:139;232;background:#f4f4f4;color:#ffffff><div id=demo1><img src="http://www.lanrentuku.com/down/js/images/12460764740.jpg"><img src="http://www.lanrentuku.com/down/js/images/12460764741.jpg"><img src="http://www.lanrentuku.com/down/js/images/12460764742.jpg"><img src="http://www.lanrentuku.com/down/js/images/12460764743.jpg"><img src="http://www.lanrentuku.com/down/js/images/12460764744.jpg"></div> <div id=demo2></div> </div> <script> var speed=50 demo2.innerHTML=demo1.innerHTML function Marquee(){ if(demo2.offsetTop-demo.scrollTop<=0) demo.scrollTop-=demo1.offsetHeight else{ demo.scrollTop++ } } var MyMar=setInterval(Marquee,speed) demo.onmouseover=function() {clearInterval(MyMar)} demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)} </script>

  预览     参考 http://www.jb51.net/article/74333.htm

<html>
<HEAD>
<TITLE>文字链接列表滚动</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<STYLE type=text/css>
#demo a {
 width:100%;
 overflow:hidden;
 font:12px/16px tahoma;
 display:block;
 text-decoration:none;
 margin:2px;
 color:#4a551c;
 padding-left:2px;
 text-align:left;
}
#demo a:hover {
 color:#ff6600;
}
</STYLE>
</HEAD>
<body>
<div id="demo" style="overflow:hidden;height:132px;350px; border:1px solid #dde5bc;">
 <div id="demo1"> 
  <a href="#">多彩的电脑机箱图标,很多颜色和风格……</a>
  <a href="#">地方税务局网站建设方案 ……</a>
  <a href="#">获得系统内存,并以圆饼图表现百分比……</a>
  <a href="#">多彩的电脑机箱图标,很多颜色和风格……</a>
  <a href="#">完全兼容IE, FF, Opera, 其它的还未经测试……</a>
  <a href="#">地方税务局网站建设方案 ……</a>
  <a href="#">多彩的电脑机箱图标,很多颜色和风格……</a>
  <a href="#">地方税务局网站建设方案 ……</a>
  <a href="#">完全兼容IE, FF, Opera, 其它的还未经测试……</a>
  <a href="#">获得系统内存,并以圆饼图表现百分比……</a>
  <a href="#">完全兼容IE, FF, Opera, 其它的还未经测试……</a>
  <a href="#">获得系统内存,并以圆饼图表现百分比……</a>
 </div>
 <div id="demo2"></div>
</div>
<script>
var speed=40
var demo=document.getElementById("demo");
var demo2=document.getElementById("demo2");
var demo1=document.getElementById("demo1");
demo2.innerHTML=demo1.innerHTML
function Marquee(){
 if(demo2.offsetTop-demo.scrollTop<=0)
  demo.scrollTop-=demo1.offsetHeight
 else{
  demo.scrollTop++
 }
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function() {clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>
</body>
</html>

原生JS中获取和设置滚动条的偏移位置都用:   demo.scrollTop ,如: 设置   demo.scrollTop =  1 也可以写成

  demo.scrollTop++ ;   获取 : var a=  demo.scrollTop ;

 Jquery中:设置:$("div").scrollTop(100);  获取:$("div").scrollTop()

,把上滚动的代码修改成下面, 更容易理解

    <div id="demo" style="overflow:scroll;height:132px;350px; border:1px solid #dde5bc;">
        <div id="demo1">
            <a href="#">11多彩的电脑机箱图标,很多颜色和风格……</a>
            <a href="#">22地方税务局网站建设方案 ……</a>
            <a href="#">33获得系统内存,并以圆饼图表现百分比……</a>
            <a href="#">44多彩的电脑机箱图标,很多颜色和风格……</a>
            <a href="#">55完全兼容IE, FF, Opera, 其它的还未经测试……</a>
            <a href="#">66地方税务局网站建设方案 ……</a>
            <a href="#">77多彩的电脑机箱图标,很多颜色和风格……</a>
            <a href="#">88地方税务局网站建设方案 ……</a>
            <a href="#">99完全兼容IE, FF, Opera, 其它的还未经测试……</a>
            <a href="#">1010获得系统内存,并以圆饼图表现百分比……</a>
            <a href="#">1111完全兼容IE, FF, Opera, 其它的还未经测试……</a>
            <a href="#">1212获得系统内存,并以圆饼图表现百分比……</a>
        </div>
        <div id="demo2"></div>
    </div>

<script>
var speed=40
var demo=document.getElementById("demo");
var demo2=document.getElementById("demo2");
var demo1=document.getElementById("demo1");
demo2.innerHTML=demo1.innerHTML
function Marquee(){
if(demo2.offsetTop-demo.scrollTop<=0)
demo.scrollTop-=demo1.offsetHeight
else{
demo.scrollTop++
}
}
aa();

var MyMar ;
function aa() {
MyMar = setInterval(Marquee, speed)
};
demo.onmouseover = function () { clearInterval(MyMar) }
demo.onmouseout = function () { aa() }
</script>

 

 函数调用setInterval和clearInterval

 
<div id="oDiv_showCurrTime" style="border:1px solid black; height:20px;"></div><button onclick="startX()">开始</button><button onclick="stopX()">停止</button>  
<script>  
var intX; //这个必须写在startX函数外或不写,stopX才有效。  
function startX(){  
 intX= setInterval(func,500) //通过函数调用setInterval时,第一个参数不可以用"func()"这种形式,只能直接用函数名  
    var dT = document.getElementById("oDiv_showCurrTime");  
    function func(){  
        var dTime = new Date();  
        dT.innerHTML = dTime.toLocaleTimeString()  
    }  
}  
function stopX(){  
    window.clearInterval(intX) //注意!如果var intX定义在startX内,则无法清除!  
}  
</script>  

  

原文地址:https://www.cnblogs.com/dare/p/9110150.html