這是我的情況,我有一個頁面,它基於一個文件夾中存在的pdf文件的數量,從一個php while循環中創建了多個div/id。我的目標是每5秒滾動到每個ID,然後從頭開始重新開始滾動。下面的代碼工作正常,但問題是,如果我添加5個新文件到文件夾,那麼我需要複製五次函數,我正在尋找的是滾動爲了文檔上所有可用的ID。有什麼辦法可以寫一個函數來做到這一點?任何燈將不勝感激。Jquery ScrollTop to multiples ID + SetTimeout
這是我的實際代碼:
$(document).ready(function() {
function loopanchors() {
setTimeout(function() {
$('html, body').animate({
'scrollTop': $('#1').offset().top
}, 2000);
}, <?php echo $pdf_time; ?>);
setTimeout(function() {
$('html, body').animate({
'scrollTop': $('#2').offset().top
}, 2000);
}, <?php echo $pdf_time*2; ?>);
setTimeout(function() {
$('html, body').animate({
'scrollTop': $('#3').offset().top
}, 2000);
}, <?php echo $pdf_time*3; ?>);
setTimeout(function() {
$('html, body').animate({
'scrollTop': $('#4').offset().top
}, 2000);
}, <?php echo $pdf_time*4; ?>);
setTimeout(function() {
$('html, body').animate({
'scrollTop': $('#5').offset().top
}, 2000);
}, <?php echo $pdf_time*5; ?>);
setTimeout(function() {
$('html, body').animate({
'scrollTop': $('#6').offset().top
}, 2000);
}, <?php echo $pdf_time*6; ?>);
setTimeout(function() {
$('html, body').animate({
'scrollTop': $('#7').offset().top
}, 2000);
}, <?php echo $pdf_time*7; ?>);
x = setTimeout(function() {
loopanchors()
}, <?php echo $pdf_time*8; ?>); //will loop every 5 seconds.
}
loopanchors(); //start it up the first time
});
$ pdf_time僅僅是一個5000毫秒的變量,所以我剛剛乘上相同的ID爲了進步。 – Aramil
您可以使用循環刪除重複的代碼; – itzmukeshy7