suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Warum kann ich die Bildlaufleiste nicht erneut scrollen, nachdem ich die Geschwindigkeit auf Math.round(speed) geändert habe?

var top = document.getElementsByClassName("top")[0];

   var timer = null;
   top.onclick=function()
   {
       timer=setInterval(function () {
           var cur=document.body.scrollTop;
           var speed=(0-cur)/2;
        speed=speed>0?Math.ceil(speed):Math.floor(speed);

// speed=Math.round(speed); Dieser Satz ist ein Kommentar

           if(cur==0){
               clearInterval(timer);
           }
           else{
               document.body.scrollTop=cur+speed;

           }
       },30)

   };

}
Das heißt, wenn Sie die Geschwindigkeit von speed=speed>0?Math.ceil(speed):Math.floor(speed); in
speed=Math.round(speed); ändern und dann auf das Element klicken, um zurückzukehren Wenn ich zum Anfang der Seite gehe, kann ich normal zum Anfang der Seite zurückkehren, aber wenn ich mit dem Mausrad scrolle, kann sich die Bildlaufleiste nicht bewegen und bewegt sich weiter nach oben, und die Seite blinkt ständig. Einfach den Geschwindigkeitswert geändert und der Effekt ist weg

怪我咯怪我咯2780 Tage vor857

Antworte allen(1)Ich werde antworten

  • 高洛峰

    高洛峰2017-05-19 10:47:44

    var speed = 0.4;
    speed=speed>0?Math.ceil(speed):Math.floor(speed);
    // speed = 1;
    speed=Math.round(speed);
    // speed = 0;

    Antwort
    0
  • StornierenAntwort