我得到了一个基于水平滚动重新定位的(动态添加的)元素,这意味着它可以离开屏幕。附加到这个元素,还有另一个不能离开屏幕,它必须留在屏幕上。所以我的想法是使用一个事件处理程序,它会在您滚动时要求元素的位置。如果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