我试图通过单击父DIV内的按钮或在输入表单中输入文本,将类添加到已添加到屏幕顶部的元素上。
它有效,但不适用于附加元素。当它确实对附加元素起作用时,就像这些元素的偏移量在每次附加元素时都消失了,然后将类应用于之后的每个附加元素。这很烦人,我已经坚持了至少一个星期。
当元素到达屏幕顶部时,我用来添加类的代码是这样的:
window.poo = function poo() {
$("#message").each(function() {
var win = $(".chat-log"),
nav = $(this),
pos = nav.offset().top,
sticky = function() {
win.scrollTop() > pos ?
nav.addClass('inactive') :
nav.removeClass('inactive')
}
win.scroll(sticky);
});
}
poo();
元素parent是#message,而#message的父元素是.chat-log。我已经将#message更改为.message,但它仍然给了我相同的结果。
而且,当用户单击父级中的按钮时,每次偏移都会变得更糟,并且在所有元素到达屏幕顶部之前将其应用于所有元素。
$(".chat-log").on("scroll", function() {
console.log("I'm scrolling!");
var win = $(this); // .chat-log
win.find(".message").each(function(){
var nav = $(this); // each .message found
//console.log("win: "+win.scrollTop());
console.log("nav: "+nav.offset().top);
nav.offset().top < 0 ? nav.addClass('inactive') : nav.removeClass('inactive')
});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句