向下滚动加载iframe
load iframe on scroll down
我有一个页面与iframe…目前我使用这段代码加载iframe点击..
这是我的代码
$('.a').click(function(){
var iframe = $("#b");
iframe.attr("src", iframe.data("src"));
});
html: <button class='a'>Load</button>
<iframe id='b' src='' data-src='index.php'></iframe>
我还想加载iframe向下滚动(距顶部500px)
谁能告诉我怎么做这个?
谢谢
试试这个:
$(window).scroll(function() {
var height = $(window).scrollTop();
if(height > 500) {
var iframe = $("#b");
iframe.attr("src", iframe.data("src"));
}
});
如果你想只加载一次后滚动超过500您可以添加标志并在页面加载时将其设置为false。然后在滚动事件中设置为true,并在加载iframe
之前检查此标志。例子:
var isLoaded = false;
$(window).scroll(function() {
var height = $(window).scrollTop();
if(height > 500) {
if(!isLoaded){
var iframe = $("#b");
iframe.attr("src", iframe.data("src"));
isLoaded = true;
}
}
});
这个想法是为每次用户滚动页面时在窗口对象上分配的滚动事件添加一个回调。这个回调函数是用来加载iframe,如果它还没有加载,如果滚动值大于500px。
(function () {
var iframeLoaded = false;
function loadIframeOnScroll() {
if (window.scrollY >= 500 && !iframeLoaded) {
loadIframe();
}
};
function loadIframe() {
if (!iframeLoaded) {
var $iframe = $('#b');
$iframe.attr('src', $iframe.data('src'));
window.removeEventListener('scroll', loadIframeOnScroll);
iframeLoaded = true; // could be placed in the onload callback of the iframe
}
}
window.addEventListener('scroll', loadIframeOnScroll);
document.querySelector('.a').addEventListener('click', loadIframe);
})();
相关文章:
- 如何在iFrame中触发iFrame加载
- 在iframe加载后删除类
- BrowserAction.onClicked等待iframe加载
- Iframe加载调整大小在Chrome中工作,但不能在IE或Firefox中工作
- Dojo:在 iframe 加载时解析 HTML 内容
- Iframe 加载回调被多次调用
- 阻止iframe加载到移动设备上
- 如何将隐藏/显示事件延迟到提交后Iframe加载
- Iframe加载动画不起作用
- iframe 加载事件中的 setTimeout 似乎没有像预期的那样等待 x 秒
- 强制同步 iframe 加载
- 如何javascript调用iframe加载的文件函数
- 显示微调器,直到 iframe 加载 http post 响应
- 在 KnockoutJS 应用程序中将 AngularJS 应用程序作为 iFrame 加载
- 如何捕获 iframe 加载错误
- 在执行函数之前等待多个 iFrame 加载
- JavaScript 在 Iframe 加载时显示加载 gif
- 如何使 iFrame 在 iframe 加载特定页面时重新加载它所在的页面
- 要随索引页一起加载的滚动更新,并在 iframe 加载来自链接的内容时消失
- 一个页面上有多个 Iframe 加载问题