我正在编写代码,使svg元素在页面上滚动时出现。我只希望当页面上的那个位置滚动到时,代码只运行一次。我的计划是在滚动到页面上的那个位置后,解除滚动事件(在if语句中)的绑定。出于某种原因,在页面的该部分滚动到(400个>= pos)之前,从if语句中调用取消绑定函数。我的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());发布于 2015-04-13 05:39:48
您需要将createSVG的函数参考传递给scroll事件。
使用
$(window).scroll(createSVG); //Notice removed ()按照当前代码,您要将createSVG函数的返回值传递给滚动事件。
https://stackoverflow.com/questions/29598488
复制相似问题