Heim  >  Artikel  >  Web-Frontend  >  JavaScript-Methode zur Steuerung des reibungslosen Scrollens von Webseiten an die Position bestimmter Elemente_Javascript-Fähigkeiten

JavaScript-Methode zur Steuerung des reibungslosen Scrollens von Webseiten an die Position bestimmter Elemente_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 16:03:192592Durchsuche

Das Beispiel in diesem Artikel beschreibt, wie JavaScript das reibungslose Scrollen einer Webseite zur Position eines angegebenen Elements steuert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

function elementPosition(obj) {
  var curleft = 0, curtop = 0;
  if (obj.offsetParent) {
   curleft = obj.offsetLeft;
   curtop = obj.offsetTop;
   while (obj = obj.offsetParent) {
    curleft += obj.offsetLeft;
    curtop += obj.offsetTop;
   }
  }
  return { x: curleft, y: curtop };
}
function ScrollToControl(id)
{
 var elem = document.getElementById(id);
 var scrollPos = elementPosition(elem).y;
 scrollPos = scrollPos - document.documentElement.scrollTop;
 var remainder = scrollPos % 50;
 var repeatTimes = (scrollPos - remainder) / 50;
 ScrollSmoothly(scrollPos,repeatTimes);
 window.scrollBy(0,remainder);
}
var repeatCount = 0;
var cTimeout;
var timeoutIntervals = new Array();
var timeoutIntervalSpeed;
function ScrollSmoothly(scrollPos,repeatTimes)
{
 if(repeatCount < repeatTimes)
 {
 window.scrollBy(0,50);
 }
 else
 {
 repeatCount = 0;
 clearTimeout(cTimeout);
 return;
 }
repeatCount++;
cTimeout = setTimeout("ScrollSmoothly('"+scrollPos+"','"+repeatTimes+"')",10);
}

Anwendung:

ScrollToControl('elementID');

Die Seite scrollt reibungslos zur Position des Elements elementID

Ich hoffe, dass dieser Artikel für das JavaScript-Programmierdesign aller hilfreich sein wird.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn