Я хотел, чтобы на моем веб-сайте была автопрокрутка для моего iframe. Когда я просматривал документацию по этому вопросу, я обнаружил, что ее очень мало. Так что, надеюсь, эта статья поможет вам.

Чтобы увидеть это в действии, посетите: https://kylernelson.dev
script.js
//the time it waits before page scrolls from the top
var waitBeforePageScrolls = -50;
//the time it waits when it hits the end of the page before looping back to the top
var waitBeforePageTop = 100;
//current height of the page
var height = waitBeforePageScrolls;
//if the mouse is hovering on iframe
var hover = false;
//the time it takes to scroll again in milliseconds
var scrollInterval = 5;
//how much it scrolls per interval
var scrollAmount = .3;
setInterval(function() {
var iframe = document.getElementById('bannerIframe');
if(!hover) {
iframe.contentWindow.scrollTo(0, height);
height += scrollAmount;
}
else {
height = iframe.contentWindow.pageYOffset;
}
if(height > iframe.contentWindow.pageYOffset + waitBeforePageTop) {
height = waitBeforePageScrolls;
}
}, scrollInterval);
function iframeMouseEnter() {
hover = true;
}
function iframeMouseOut() {
hover = false;
}
index.html
<iframe src="/HighKey-LowKey/index.html" id="bannerIframe" onmouseenter="iframeMouseEnter()" onmouseout="iframeMouseOut()"></iframe>
Вы можете скопировать и вставить это, вам просто нужно изменить src iframe на ваш источник html и связать JavaScript с вашим html. Если вы не хотите, чтобы страница ждала прокрутки, вы можете установить первые 2 переменные равными 0. Переменные «scrollInterval» и «scrollAmount» устанавливают, насколько быстро и медленно прокручивается страница. Если вы измените один из этих параметров, он может быть не очень плавным, поэтому вам придется точно настроить их оба, чтобы все было правильно.