sách gpt4 ai đã đi

Thêm dom trước dom hiện tại và giữ dom hiện tại trong khung nhìn

In lại 作者:行者123 更新时间:2023-11-28 04:56:32 28 4
mua khóa gpt4 Nike

假设有一个滚动列表,当我插入一些新的 DOM 附加到当前 dom 时,它工作正常。上拉

nhập mô tả hình ảnh ở đây

但是如果我之前插入一些新的 DOM,新的 DOM 将在视口(viewport)中,而旧的 DOM 将被下推。下拉

nhập mô tả hình ảnh ở đây

有没有办法让下拉行为像上拉一样?以后不用手动设置scrollTop?

1 Câu trả lời

在 Google Chrome 中,我无法重现您所描述的行为。浏览器在 DOM 编辑时管理维护滚动位置的方式是否会有所不同?

在 Safari 中,我确实看到了您所描述的行为。我不知道有任何不同的注入(inject)方法可以绕过这个问题,而且我不认为像 translateY hoặc position:absolute 这样的 css 技巧是解决这个问题的方法。去...

因此,这给我们带来了您所说的不想使用的一个选项...修改scrollTop。不过,我认为这样的方法没有太多问题......

function scrollSafeInsertBefore(fragment, el, scrollContainer) {
var scroller = scrollContainer || document.body;
var parent = el.parentElement;
var aboveScroll = el.getBoundingClientRect().top < 0;

if (aboveScroll) {
var st = parent.scrollHeight;
parent.insertBefore(fragment, el);

var dy = parent.scrollHeight - st;
scroller.scrollTop += dy; // Move back the height change
} khác {
parent.insertBefore(fragment, el); // Normal injection
}
}

fiddle :https://jsfiddle.net/pq4t2zbn/ (按chèn按钮)

关于javascript - 在当前 dom 之前添加 dom,并保持当前 dom 留在视口(viewport)中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42504338/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com