【发布时间】:2021-08-24 07:23:37
【问题描述】:
当从页面顶部滚动到scrolling div 高度的-600 时(这意味着在到达scrolling div 的底部之前),我有一个函数可以将slider-side-hr 的宽度减小到0。
滑块两侧都是固定的,一个在右边,另一个在左边。
<div class="tower" id="tower2">
<div class="scroll-slider-hr">
<div class="slider-side-hr slider-side1"></div>
<div class="slider-side-hr slider-side2"></div>
</div>
</div>
它工作得很好,滚动时slider-side-hr 的宽度都减小到 0,但是当页面顶部的scrolling div NOT 时我遇到了问题。
我需要一个仅在 (scrolling div) 到达页面底部 + 100px 时执行函数的条件,这意味着我可以首先看到 slider-side-hr 全宽(带有 @ 100px 的100px height) 然后在滚动时开始减少到0,当达到scrolling div的一半时它应该减少到0
var $scrollingDiv = $("#tower2");
$(window).scroll(function() {
var winScrollTop = ($(document).scrollTop() + 0);
var zeroSizeHeight = $scrollingDiv.height() - 600;
var newSize = 250 * (1 - (winScrollTop / zeroSizeHeight));
$('.slider-side-hr').css({
width: newSize,
}, 500, 'easeInOutSine');
});
.container-full {
width: 100%;
margin-right: auto;
margin-left: auto;
}
.tower {
position: relative;
}
#tower1 {
/*margin-bottom: 700px*/
}
#tower2 {
background-image: linear-gradient(rgba(0, 0, 0, 0.5),rgba(0, 0, 0, 0.5));
background-position: center;
background-size: cover;
background-repeat: no-repeat;
height: 140vh;
background-attachment: fixed;
position: relative;
overflow: hidden;
}
.slider-side-hr {
position: absolute;
top: 0;
bottom: 0;
width: 250px;
height: 100%;
background: #ddd;
}
.slider-side1 {
left: 0;
}
.slider-side2 {
right: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<dic class="container-full">
<div class="tower" id="tower1">
</div>
<div class="tower" id="tower2">
<div class="scroll-slider-hr">
<div class="slider-side-hr slider-side1"></div>
<div class="slider-side-hr slider-side2"></div>
</div>
</div>
</div>
【问题讨论】:
标签: javascript html jquery css