javascript - 使用 jQuery 从固定到可滚动
问题描述
我想制作一个最初处于固定位置的div,以便在页面中出现某个div后可以滚动,所以我查看了Jquery的文档并编写了以下代码:
$(window).scroll(function() {
var posscroll = $(".trigger").offset();
var pointscroll = posscroll.top - $(window).height();
if ($(window).scrollTop() >= pointscroll) {
$(".block").addClass("start-scrolling");
console.log("point of scroll reached");
} else {
if ($(".block").hasClass("start-scrolling")) {
$(".block").removeClass("start-scrolling");
}
}
});
.block {
position: fixed !important;
left: 50% !important;
height: 100px;
background-color: blue;
}
.start-scrolling {
position: absolute !important;
}
.trigger {
height: 50px;
width: 50px;
background-color: yellow;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="block">some content here</div>
other content in between
<div class="trigger">scroll from here</div>
我还做了一个简单的 Jsfiddle
不幸的是,我无法使其正常工作。当我达到滚动高度时,我的 div 会突然消失,而不是在屏幕上向上滚动。
你们能看到我做错了什么吗?
谢谢你!
解决方案
你想要什么并不完全清楚。但我相信这是...
在这种情况下,一旦蓝色块的下边界接触到黄色块与其上边界接触的线,蓝色块就停止固定。
$(window).scroll(function(){
var posscroll = $(".trigger").offset();
var pointscroll = posscroll.top-$(".block").height();
if ($(window).scrollTop() >=pointscroll) {
$(".block").addClass("start-scrolling");
//console.log("point of scroll reached");
}else
{
if($(".block").hasClass( "start-scrolling")) {
$(".block").removeClass( "start-scrolling");
}
}
});
在这种情况下,当黄色块的上边框接触到蓝色块的中心线时,蓝色块就会消失。
$(window).scroll(function(){
var posscroll = $(".trigger").offset();
var pointscroll = posscroll.top-($(".block").height())/2;
if ($(window).scrollTop() >=pointscroll) {
$(".block").addClass("start-scrolling");
//console.log("point of scroll reached");
}else
{
if($(".block").hasClass( "start-scrolling")) {
$(".block").removeClass( "start-scrolling");
}
}
});
推荐阅读
- shell - 你如何用斜杠打印前两列?
- python - 使用 Python 在同一步骤中应用操作和除法操作
- javascript - 多模态代码不显示任何模态
- reactjs - React-Intl injectionIntl 不适用于 mergeProps
- javascript - 在 puppeteer 中加载页面之前设置本地存储项目?
- neo4j - 为什么单个 Neo4j 关系在 Cypher 查询结果中显示两次?
- email - 在 Woocommerce 确认电子邮件中显示高度之前的宽度
- server - 木偶服务器无法重启
- javascript - CanDeactivate 在 Angular 6 中无法正常工作
- python - 尝试在 Python 中查找断开连接的图