Вы можете обнаружить полосу прокрутки, достигнутую в нижней части страницы / фрейма, и вызвать метод, который извлекает данные и добавляет их в iframe. В приведенном ниже примере я удалил полосу прокрутки iframe. А при прокрутке до нижней части iframe элемент списка будет добавлен в список.
HTML
<!-- added id to the header and footer ->
<div id="header">Header</div>
<iframe width='100%' id='iframe' src="test.html"></iframe>
<div id="footer">Footer</div>
CSS (необязательно)
/ * необязательно, только для презентационных целей * /
#header,
#footer {
height: 50px;
background-color: #f7f7f7;
text-align: center;
font-size: 24px;
font-weight: bold;
line-height: 50px;
}
JS
// Selecting iframe
var iframe = document.getElementById("iframe");
// Adjusting the iframe height onload
iframe.onload = function() {
iframe.style.height = document.getElementById('iframe').contentWindow.document.body.scrollHeight + 'px';
}
// height of the list item going to be append
let itemHeight = 54;
function fetchListData() {
// add height to ifame for list item
iframe.style.height = document.getElementById('iframe').contentWindow.document.body.scrollHeight + itemHeight;
// append list item in a iframe Ul
$(iframe).contents().find("ul").append('<li style="height:50px;border:2px solid blue"> new item </li>')
}
$(window).on('scroll', function() {
// to get the scroll amout to reach up to bottom edge of iframe
let bottom_edge_value = $(document).outerHeight() - $(window).outerHeight() - 5;
if ($(window).scrollTop() >= bottom_edge_value) {
fetchListData();
}
});
Test. html файл (для включения в iframe)
<html>
<head>
</head>
<body >
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ullamcorper eros nulla, at vulputate lectus vehicula quis. Vestibulum volutpat finibus gravida. Morbi id sapien molestie, congue erat sit amet, consequat elit. Aliquam volutpat nisi a felis pharetra posuere. Aliquam varius vel sapien quis dignissim. Nam nec faucibus eros, eget volutpat orci. Vestibulum vestibulum tortor velit, ac consequat orci ornare eget.
</p>
<p>
Vivamus eleifend, nunc eget commodo sagittis, ante lorem blandit sem, facilisis mollis metus ipsum sed ex. Aenean quis felis enim. Donec sed felis sit amet risus mollis interdum. Proin commodo facilisis bibendum. Nam non accumsan tortor. Sed gravida leo ut dolor aliquet suscipit. Phasellus metus urna, lobortis et metus id, bibendum dignissim augue. Integer vehicula, ante ut efficitur iaculis, nisi mi pulvinar dui, et rhoncus nibh sem at velit. Cras vehicula massa vitae interdum rhoncus. Fusce viverra aliquam diam, ut sagittis ex ultrices in.
</p>
<p>
Fusce finibus leo tincidunt lacus gravida tincidunt. Nunc euismod molestie leo, ac imperdiet massa elementum nec. Fusce nec varius felis. Fusce ac dictum eros. Suspendisse interdum nunc tristique nisi volutpat, in congue risus dapibus. Quisque aliquam leo ut condimentum ullamcorper. Mauris vehicula, ipsum nec faucibus congue, mi ligula lacinia ipsum, ac venenatis urna urna ac nisl. Duis dui erat, dictum et dui ac, pharetra varius elit. Proin rutrum leo enim, et pellentesque nibh ultrices a.
</p>
<p>
Duis risus turpis, iaculis vel lobortis vitae, suscipit sed lectus. Curabitur varius diam a massa auctor gravida. Donec ullamcorper gravida mi, id mollis metus pretium a. Morbi egestas efficitur justo, at tincidunt quam ornare porta. Quisque nec hendrerit lacus, eu consectetur justo. Pellentesque maximus urna et odio dictum, in pulvinar magna placerat. Sed pellentesque nisl eget nunc venenatis, nec lacinia urna pulvinar. Quisque sit amet imperdiet justo. Proin aliquam, nibh eget tincidunt blandit, quam ipsum elementum nisl, id pellentesque est ipsum semper dui.
</p>
<p>
Curabitur dictum ac odio at mattis. Mauris euismod nibh tincidunt, posuere felis in, iaculis enim. Suspendisse non elit arcu. Nunc aliquet urna quis ex auctor, sed efficitur sapien porttitor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur laoreet metus commodo, tempus velit nec, volutpat diam. Mauris elit libero, tincidunt at massa eu, egestas aliquet mauris. Aliquam dignissim egestas massa, faucibus fermentum mauris commodo nec. Aliquam erat volutpat. Maecenas quis mi interdum, imperdiet nisl eu, suscipit ante. Morbi mollis dui non lectus vulputate, id tristique ipsum bibendum. Sed tempor posuere odio, euismod luctus arcu rutrum ac. Cras aliquam vel tellus id egestas. Suspendisse nec dignissim lorem, in aliquet justo.
</p>
<p>
Duis risus turpis, iaculis vel lobortis vitae, suscipit sed lectus. Curabitur varius diam a massa auctor gravida. Donec ullamcorper gravida mi, id mollis metus pretium a. Morbi egestas efficitur justo, at tincidunt quam ornare porta. Quisque nec hendrerit lacus, eu consectetur justo. Pellentesque maximus urna et odio dictum, in pulvinar magna placerat. Sed pellentesque nisl eget nunc venenatis, nec lacinia urna pulvinar. Quisque sit amet imperdiet justo. Proin aliquam, nibh eget tincidunt blandit, quam ipsum elementum nisl, id pellentesque est ipsum semper dui.
</p>
<p>
Curabitur dictum ac odio at mattis. Mauris euismod nibh tincidunt, posuere felis in, iaculis enim. Suspendisse non elit arcu. Nunc aliquet urna quis ex auctor, sed efficitur sapien porttitor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur laoreet metus commodo, tempus velit nec, volutpat diam. Mauris elit libero, tincidunt at massa eu, egestas aliquet mauris. Aliquam dignissim egestas massa, faucibus fermentum mauris commodo nec. Aliquam erat volutpat. Maecenas quis mi interdum, imperdiet nisl eu, suscipit ante. Morbi mollis dui non lectus vulputate, id tristique ipsum bibendum. Sed tempor posuere odio, euismod luctus arcu rutrum ac. Cras aliquam vel tellus id egestas. Suspendisse nec dignissim lorem, in aliquet justo.
</p>
<ul>
<li> item 1</li>
<li> item 2</li>
<li> item 3</li>
<li> item 4</li>
</ul>
</body>
</html>