我想在动态div到达其结束后停止滚动。这个div将保存动态内容,所以大小永远不会保持不变。我知道如何锁定位置时,滚动命中预定义的高度,但不知道如何做到这一点,当高度不断变化。这是我在到达特定点时使用的标准锁定滚动:
var profile_rc = $("#profile-rc");
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 285) {
profile_rc.addClass("p-right-column");
} else {
profile_rc.removeClass("p-right-column");
}
});
看起来你正在使用jQuery,下面的两个例子可能会有所帮助。
检测屏幕动态高度
<script>
$(function(){
var windowHeight = $(window).height();
$(window).resize(function() {
windowHeight = $(window).height();
console.log(windowHeight);
});
});
<script>
检测div的动态高度
<script>
$(function(){
var divHeight = $('#your-div-id').css("height");
$( window ).on("resize", function() {
divHeight = $('#your-div-id').css("height");
console.log(divHeight);
});
});
</script>
我让它这样工作:
$(window).scroll(function() {
var divHeight = $('#farleft-cont').outerheight(true);
var ycbc = $('#target-div');
var scroll = $(window).scrollTop();
if (scroll >= divHeight) {
ycbc.addClass("target-div-fixed");
} else {
ycbc.removeClass("target-div-fixed");
}
});