我在page1(一个aspx页面)上有一个小的javascript / jquery脚本,它滚动了一个加载了page2的iframe,这样当你向上和向下滚动页面1时它就会在你的页面上停留。但是,当我在另一个父页面的iframe中加载page1时,滚动效果不起作用。
我尝试在调用中使用window.parent,但是当您在父页面的iframe(另一个aspx页面)中滚动page1时,脚本仍然不会激活并滚动page2 iframe。我希望这是有道理的。
这是我尝试过的脚本:
<script type="text/javascript">
$(window.parent.document).ready(function () {
var $scrollingDiv = $("#IframeDir");
$(window.parent).scroll(function () {
$scrollingDiv
.stop()
.animate({ "marginTop": ($(window.parent).scrollTop() + -10) + "px" }, "slow");
});
});
</script>
如果我只在其自己的选项卡或窗口中加载page1,它会起作用,但如果我将iframe中的page1加载到父页面中,它似乎看不到父页面的滚动事件。
提前感谢任何建议! 埃林
答案 0 :(得分:2)
请参阅此回答Run JQuery in the context of another frame
您必须传入上下文才能搜索(父文档)
// Untested
$(window.parent.document, window.parent.document).ready(function () {
var $scrollingDiv = $("#IframeDir");
$(window.parent, window.parent.document).scroll(function () {
$scrollingDiv
.stop()
.animate({ "marginTop": ($(window.parent, window.parent.document).scrollTop() + -10) + "px" }, "slow");
});
});
答案 1 :(得分:1)
我也想在iframe和Rantul中使用浮动div这个代码对我有效!
$(parent.window).scroll(function() {
//parent document scroll functions go here
});
答案 2 :(得分:0)
我认为您无法在$(window.parent).scroll()
内或$(document).ready()
内拨打$(window.parent.document).ready()
。就此而言,我认为$(window.parent).scroll()
根本不会起作用,我认为它必须是$(parent.window).scroll()
我之前就是这样做的:
$(document).ready(function() {
//document ready functions go here
});
$(parent.window).scroll(function() {
//parent document scroll functions go here
});
为了回答你的另一个问题,我相信你需要在父页面上使用jQuery才能实现这一点。