gpt4 book ai didi

jquery - 完全进入视口(viewport)后,如何将div粘贴在页面底部?

转载 作者:太空宇宙 更新时间:2023-11-04 09:49:06 25 4
gpt4 key购买 nike

我尝试实现的是以下内容:

我的页面上的任何地方都有一个 div。当它完全进入视口(viewport)时,我想修复页面底部的这个 div。

到目前为止我尝试了什么:

// section.js

(function ($) {
'use strict';

$(function () {
var sections = $('.js-section');

sections.each(function () {
var section = $(this);
var sticky = section.hasClass('js-section-sticky');

if (sticky) {
$(window).bind('scroll', function() {
var windowTop = $(window).scrollTop();
var sectionTop = section.offset().top - section.height() - windowTop;

if (windowTop > sectionTop) {
section.addClass('section--fixed-bottom');
}
else {
section.removeClass('section--fixed-bottom');
}
});
}
});
});
})(window.jQuery);

但是,目前该部分出现得太早了。它立即出现,而不是在它完全进入视口(viewport)时出现。此外,如果我向上滚动,它就会消失得太晚。

最佳答案

用我下面的代码替换你的代码

(function ($) {
'use strict';

$(function () {
var sections = $('.js-section');

sections.each(function () {
var section = $(this);
var sticky = section.hasClass('js-section-sticky');
var sectionTop = section.offset().top + section.height();
if (sticky) {
$(window).bind('scroll', function() {
var windowTop = $(window).scrollTop()+$(window).height();

if (windowTop > sectionTop) {
section.addClass('section--fixed-bottom');
section.next().css("margin-top", section.next().css("margin-top").replace("px", "") + section.height());
}
else {
section.removeClass('section--fixed-bottom');
var marginTop = section.next().css("margin-top").replace("px", "") - section.height();
if(marginTop < 0)
marginTop*(-1);
section.next().css("margin-top", marginTop);
}
});
}
});
});
})(window.jQuery);

它会很好地工作

关于jquery - 完全进入视口(viewport)后,如何将div粘贴在页面底部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39244863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com