【发布时间】:2015-02-19 03:18:23
【问题描述】:
我正在尝试解决这个问题,虽然我不是 js 开发人员,而且我的实现有时很蹩脚。
我在外部js中定义了这个函数:
function moveScroller() {
var move = function() {
var st = $(window).scrollTop();
var ot = $("#scroller-anchor").offset().top;
var s = $("#scroller");
if(st > ot) {
s.css({
position: "fixed",
top: "60px"
});
} else {
if(st <= ot) {
s.css({
position: "relative",
top: ""
});
}
}
};
$(window).scroll(move);
move();
}
比在正文中的 html 中我有这个代码:
<div style="width:900px; position:relative; margin:0 auto; border:1px solid red; padding-top:300px; padding-left:60px;">
<div id="scroller-anchor"></div>
<div class="info_holder" id="scroller">Information in here and here</div>
random and random<br /><br /><br /><br /><br />
random and random<br /><br /><br /><br /><br />
random and random<br /><br /><br /><br /><br />
random and random<br /><br /><br /><br /><br />
random and random<br /><br /><br /><br /><br />
random and random<br /><br /><br /><br /><br />
random and random<br /><br /><br /><br /><br />
random and random<br /><br /><br /><br /><br />
random and random<br /><br /><br /><br /><br />
random and random<br /><br /><br /><br /><br />
random and random<br /><br /><br /><br /><br />
random and random<br /><br /><br /><br /><br />
random and random<br /><br /><br /><br /><br />
random and random<br /><br /><br /><br /><br />
</div>
<script>
$(document).ready(function() {
moveScroller();
});
</script>
我尝试在没有 $(document).ready 的情况下执行脚本的主体部分,但它给了我同样的错误 Uncaught ReferenceError: moveScroller is not defined。
http://jsfiddle.net/A6gYg/76/ 或 http://atargeta.staging.wpengine.com/modules/ 如果您打开控制台,您应该会看到唯一的错误。
【问题讨论】:
-
jsFiddle 中的 JS 窗口加载取决于您在左侧下拉列表中选择的内容,当您将其设置为
onLoad时,该窗口会在 DOM 加载时加载您的函数,这晚于您直接放置在正文中的 DOM 就绪处理程序。只需将函数放在主体中调用它的代码之前的某个位置,最好放在同一个脚本标记中?
标签: javascript jquery