javascript - Javascript滚动闪烁
问题描述
首先,如果这个问题是一个愚蠢的问题,我很抱歉,我是 JavaScript 的新手...当滚动时特定的 div 在视口中完全可见时,我希望 div 贴在底部...我做到了,但我猜随着滚动的每个像素,代码会一次又一次地工作,并且滚动时会闪烁。
请问你能帮帮我吗?
function sticktothebottom() {
let h = window.innerHeight;
let window_top = $(window).scrollTop();
let top = $('.dur').offset().top;
let panelh = $(".whole").height();
if (window_top + h > top ) {
$('.whole').addClass('sticky');
$('.dur').height($('.whole').outerHeight());
}
if (window_top + top < panelh ) {
$('.whole').removeClass('sticky');
$('.dur').height(0);
}
}
$(function() {
$(window).scroll(sticktothebottom);
sticktothebottom();
});
body {
padding:0;
margin:0;
}
p{
padding:0;
margin:0;
}
.heads {
font-size: 2vw;
font-weight:bolder;
padding-top:50px;
text-align:center;
}
.first {
height:1800px;
width:200px;
background-color:red;
color: white;
text-align:center;
margin-left:auto;
margin-right:auto;
}
.second {
height:200px;
width:200px;
background-color:blue;
color: white;
text-align:center;
margin-left:auto;
margin-right:auto;
}
.container-left {
float:left;
}
.container-right {
float:left;
}
.left {
height:3000px;
width:200px;
background-color:orange;
color: white;
text-align:center;
margin-left:auto;
margin-right:auto;
}
.sticky {
margin-top: 0;
position: fixed;
bottom: 0;
z-index: 9999;
}
<div class="container-left">
<div class="left">
<p class="heads">LEFT</p>
</div>
</div>
<div class="container-right">
<div class="whole">
<div class="first">
<p class="heads">FIRST</p>
</div>
<div class="second">
<p class="heads">SECOND</p>
</div>
</div>
<div class="dur"></div>
</div>
<script
src="https://code.jquery.com/jquery-3.5.1.min.js"
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin="anonymous"></script>
解决方案
推荐阅读
- svn - 强制 TeamCity 使用 SVN 导出
- sql - 在 SQL 中将 WHERE 和 CASE 与多个条件相结合
- javascript - setTimeout 搜索
- python - 使用matplotlib在散点图中连接k个最近邻居的有效方法
- java - Spring Security 没有做好它的工作
- php - Angularjs stateProvider 不适用于 xampp。它仅适用于 nodejs
- anylogic - 如何在 Anylogic 上使用 Java 方法访问每个点节点?
- json - 在swift3中重新加载表数据
- c# - 如何将标志属性与从枚举继承的类一起使用
- speech-recognition - 如何在 kaldi 中使用“tri2a”和“tri2b_mmi”培训傻瓜教程?