<div id="maq" style="overflow:hidden;height:50px;width:220px;">
<div id="mtext">
爱情有时像在等公交车,不想坐的公交车接二连三频频为你停留,而真正想坐的,却怎么也等不到,像什么...
</div>
<div id="m0"></div>
</div><br><br><br><br>
<input type="button" value="第一个滚动按钮" onclick="news1()">&nbsp;&nbsp;<input type="button" value="第二个滚动按钮" onclick="news2()">
<script language="javascript">function inn(){
var speed=20;
var mtext=document.getElementById("mtext");
var m0=document.getElementById("m0");
var maq=document.getElementById("maq");
m0.innerHTML=mtext.innerHTML; //调整滚动速度
var MyMar=setInterval(Marquee,speed);
maq.onmouseover=function(){clearInterval(MyMar)};
maq.onmouseout=function(){MyMar=setInterval(Marquee,speed)};
}function Marquee(){
if(m0.offsetTop-maq.scrollTop<=0)
maq.scrollTop-=mtext.offsetHeight;
else{
maq.scrollTop++;
}}function news1(){
var mtext=document.getElementById("mtext");
mtext.innerHTML="从下到上滚动1从下到上滚动1从下到上滚动1从下到上滚动1从下到上滚动1从下到";
var speed1=20;
var mtext1=document.getElementById("mtext");
var m01=document.getElementById("m0");
var maq1=document.getElementById("maq");
m01.innerHTML=mtext1.innerHTML; //调整滚动速度
function Marquee1(){
if(m01.offsetTop-maq1.scrollTop<=0)
maq1.scrollTop-=mtext1.offsetHeight;
else{
maq1.scrollTop++;
}}
var MyMar1=setInterval(Marquee1,speed1);
maq1.onmouseover=function(){clearInterval(MyMar1)};
maq1.onmouseout=function(){MyMar1=setInterval(Marquee1,speed1)};
}function news2(){
var mtext=document.getElementById("mtext");
mtext.innerHTML="从下到上滚动2从下到上滚动2从下到上滚动2从下到上滚动2从下到上滚动2从下滚动2";
inn();
}window.onload=inn;
</script>
以上这段代码 为什么点击按钮后 滚动速度越变越快???? 如何恢复正常速度?? 而且鼠标经过时也停不下来了 这些都如何解决??? 望大侠们指教!!!  加急!!!!! 

解决方案 »

  1.   

    每点一次“第一个按钮”,news1()里的这句:
    var MyMar1=setInterval(Marquee1,speed1); 
    就又给你加了一个。每点一次“第二个按钮”,news2()里的inn()的:
    var MyMar=setInterval(Marquee,speed);
    就再给你加了一个。我只知道问题在这里,至于为什么就不知道了
      

  2.   

    <div id="maq" style="overflow:hidden;height:50px;width:220px;"> <div id="mtext"> 爱情有时像在等公交车,不想坐的公交车接二连三频频为你停留,而真正想坐的,却怎么也等不到,像什么... </div> <div id="m0"></div> </div><br><br><br><br> <input type="button" value="第一个滚动按钮" onclick="news1()">&nbsp;&nbsp;<input type="button" value="第二个滚动按钮" onclick="news2()"> 
    <script language="javascript"> 
    var speed=20; 
    var MyMar=setInterval(Marquee,speed); 
    function inn(){ var mtext=document.getElementById("mtext"); 
    var m0=document.getElementById("m0"); 
    var maq=document.getElementById("maq"); 
    m0.innerHTML=mtext.innerHTML; //调整滚动速度 maq.onmouseover=function(){
    clearInterval(MyMar)
    }; 
    maq.onmouseout=function(){
    MyMar=setInterval(Marquee,speed)
    }; } 
    function Marquee(){ 
    if(m0.offsetTop-maq.scrollTop<=0) {
    maq.scrollTop-=mtext.offsetHeight; 
    }
    else{ maq.scrollTop++; } } 
    function news1(){ 
    var mtext=document.getElementById("mtext"); 
    mtext.innerHTML="从下到上滚动1从下到上滚动1从下到上滚动1从下到上滚动1从下到上滚动1从下到"; 
    var speed1=20; 
    var mtext1=document.getElementById("mtext"); 
    var m01=document.getElementById("m0"); 
    var maq1=document.getElementById("maq"); 
    m01.innerHTML=mtext1.innerHTML; //调整滚动速度 
    function Marquee1(){ 
    if(m01.offsetTop-maq1.scrollTop<=0) 
    maq1.scrollTop-=mtext1.offsetHeight; 
    else{ maq1.scrollTop++; } 
    } maq1.onmouseover=function(){
    clearInterval(MyMar)}; 
    maq1.onmouseout=function(){
    MyMar=setInterval(Marquee1,speed1)}; } 
    function news2(){ 
    var mtext=document.getElementById("mtext"); 
    mtext.innerHTML="从下到上滚动2从下到上滚动2从下到上滚动2从下到上滚动2从下到上滚动2从下滚动2";
     }
    window.onload=inn; </script>
    你想要的不会是这个吧??
      

  3.   

    问题后来解决了  是setinterval多给了 clear只能清除掉一次  每次点击就会给多一次setinterval 每次的setinterval的值都不一样 在见面加一个判断就可以了 判断setinterval是否已经有值 true就跳过,false就给之 。
    这样就搞定了  我真TM天才!