我正在编写代码,当svg元素滚动到页面上时会出现svg元素。我只希望代码在页面上的该位置滚动到时运行一次。我的计划是在页面上的该位置滚动到之后取消绑定滚动事件(在if语句内)。由于某种原因,在页面的该部分滚动到(400> = pos)之前从if语句内调用unbind函数。我没有创建我的SVG对象,因为if语句中的代码不应该被执行。我怀疑unbind函数是从if语句冒出来的。
function createSVG() {
var pos = $('#graphics').offset().top - $(this).scrollTop();
if(400 >= pos) {
var animation2 = new DrawFillSVG({
elementId: 'obj-1',
drawTime: '2s'
});
var animation2 = new DrawFillSVG({
elementId: 'obj-2',
drawTime: '2s'
});
var animation2 = new DrawFillSVG({
elementId: 'obj-3',
drawTime: '2s'
});
$(this).unbind("scroll");
}
}
$(window).scroll(createSVG());
答案 0 :(得分:1)
您需要将createSVG
的函数引用传递给scroll
事件。
使用
$(window).scroll(createSVG); //Notice removed ()
根据您当前的代码,您将createSVG
函数的返回值传递给scroll事件。