我得到了一個基於水平滾動重新定位的(動態添加的)元素,這意味着它可以離開屏幕。附加到這個元素,還有另一個不能離開屏幕,它必須留在屏幕上。所以我的想法是使用一個事件處理程序,它會在您滾動時要求元素的位置。如果position-left屬性的值低於某個數字,則附加的元素將重新定位。jQuery:(live)scroll動態添加元素的事件處理程序?我該如何解決這個問題
你知道這些類型的元素,它就像一個菜單/導航,與你一起滾動到某個點,然後顯示爲位置固定。
我試過了,但它不工作,可能是因爲元素是用javascript添加的。我也試過live("scroll"..
,但那也沒用。
$(window).scroll(function(ev) {
alert($("#scrElem").position().left);
alert("work");
if ($("#scrElem").position().left >= 203) {
$("#scrElem .attElem").css("left", ($("#scrElem").position().left - 203) + "px");
};
});
編輯:
也許這會有所幫助: 我使用tinyscrollbar插件,這是它(http://baijs.nl/tinyscrollbar/js/jquery.tinyscrollbar.js)的可讀版本。基本上這個插件在滾動時觸發事件。這就是我想要的,我甚至看到他做到了:
oWrapper[0].addEventListener('DOMMouseScroll', wheel, false);
oWrapper[0].addEventListener('mousewheel', wheel, false);
oWrapper[0].addEventListener('MozMousePixelScroll', function(event){
event.preventDefault();
}, false);
難道你不能在滾動到某個點後設置'position:fixed'嗎? – Horen 2013-03-26 16:40:52
是的,我可以,但事件沒有找到我的元素,因爲它是在DOM ready事件之後很久才創建的。 – user828591 2013-03-27 08:15:41