【发布时间】:2016-07-24 12:02:17
【问题描述】:
如果网页不在 iframe 中,我有一个引导模式弹出窗口,效果很好,如下所示:
https://jgroups-dev.herokuapp.com/(点击查找群组,然后点击电子邮件按钮)
但是,当它在 iframe 中时,模式弹出框会锚定到 iframe 的顶部,完全忽略用户的滚动位置:
http://www.yourjourney.tv/connect/j-group-catalogue/
为了解决这个问题,我尝试根据 iframe 中的滚动位置手动设置模式弹出窗口的顶部属性,但是 $(window).scrollTop() 和其他变体都返回 0 或40 来自 iframe。
$('.send-email-modal').modal();
setTimeout(function () {
if(inIframe()) {
var emailModal = $('.send-email-modal .modal-dialog');
var win = $(window);
var offset1 = win.scrollTop();
var offset2 = document.documentElement.scrollTop || document.body.scrollTop;
console.log('offset1: ' + offset1);
console.log('offset2: ' + offset2);
var positionWindow = (offset1 + (win.height() / 2)) - (emailModal.height() / 2);
console.log('win.height(): ' + win.height());
console.log('emailModal.height(): ' + emailModal.height());
console.log('positionWindow: ' + positionWindow);
emailModal.css({ 'top': positionWindow });
}
}, 500);
这是控制台输出:
offset1: 40
main.js:54 offset2: 40
main.js:56 win.height(): 27037
main.js:58 emailModal.height(): 426
main.js:59 positionWindow: 13345.5
如果我无法从 iframe 中的代码检索用户在 iframe 中滚动的距离,那么我就无法正确定位引导模式弹出窗口。非常感谢您的帮助,我在这个上遇到了一堵砖墙......
【问题讨论】:
-
给我-1的人,获得生命。
标签: javascript jquery twitter-bootstrap iframe twitter-bootstrap-3