2
我的問題是關於使用.offset()找到瀏覽器的y位置 和在一個點上我想補充類我的div 我要像yourkarma.com創造的東西(看看什麼是POWERING IT部分)然後偏移addclass到div的
$(document).ready(function() {
$(window).scroll(function (event) {
// what the y position of the scroll is
var z = '150';
var x = $('#thisdiv').offset().top - z;
var y = $(this).scrollTop();
// whether that's below the form
if (y >= x) {
// if so, ad the fixed class
$('#thisdiv').addClass('red');
}
});
})
我在正確的方式嗎? 我覺得使用z = 150並減去它是一種廉價的方式。 無論如何要做出更好的?
你好, 感謝您的答案,如果(假)種布爾?我從來沒有見過它。 是的,沒有150,我必須等待瀏覽器的頂部觸摸該元素本身。 – 2013-03-14 02:57:55
爲什麼這樣更好?我很確定我的代碼可以防止事件觸發兩次,不是嗎? – 2013-03-14 04:53:32
在原始代碼中添加'console.log('test');'在$('#thisdiv')。下方的addClass('red');',您將看到它會在您向上滾動時執行多次下。你的代碼應該可以工作,但是效率不高,因爲你應該緩存div的jQuery對象,並且你不需要每次用戶滾動時計算div偏移量,因爲它每次都是相同的值。 – shrimpwagon 2013-03-14 13:37:32