2015-02-23 114 views
0

有以下小提琴: http://jsfiddle.net/hpXL4/202/元素的改变位置上滚动()

设法得到它的工作,但似乎无法?想要在滚动X高度后基本上改变元素的位置。

var cta = $("#bottomcta"); 
cta.on("scroll", function(e) { 
    if (this.scrollTop > 50) { 
    cta.addClass("fixed"); 
    } 
    else { 
    cta.removeClass("fixed"); 
    } 
}); 
+0

滚动事件发生时,'window'对象上,而不是一个特定的DOM元素上;你想要使用的是'$(window).on('scroll',...)'你也许应该阅读http://ejohn.org/blog/learning-from-twitter/,然后你创建一些可能的东西是一个巨大的性能拖累。 – CBroe 2015-02-23 23:21:43

回答

0

必需使用Windows元素。下面代表性链路.... :)

Link

var cta = $(window); 
cta.on("scroll", function(e) { 
    if (cta.scrollTop() > 50) { 
    $("#bottomcta").addClass("fixed"); 
    } 
    else { 
    $("#bottomcta").removeClass("fixed"); 
    } 
}); 
+0

你先生是绅士和学者。公认。 – lovestocodez 2015-02-24 02:59:15

0

在你的代码中,你每次在调用scroll函数的时候都要添加或删除一个类。这可能会导致添加或删除“固定”类数百次。我不知道这是否会解决您的问题,但我会用

cta.hasClass("fixed");

检查,如果你尝试添加它之前的类已经被应用到的元素。