jquery - div 在从顶部以设置的像素数滚动后变为固定,也仅大于设置的窗口宽度,并添加了边框底部
问题描述
我正在使用一个脚本(如下),它允许(导航)div 滚动,但是一旦它到达浏览器的顶部,它就会变得固定。我希望 div 从脚本执行的窗口顶部固定 50 像素,但它必须先到达顶部,然后再跳下。
我希望它在实际到达顶部之前停止并固定 50 像素..
<script type="text/javascript">
var fixmeTop = $('.navPages-container').offset().top;
$(window).scroll(function() {
var currentScroll = $(window).scrollTop();
if ((currentScroll >= fixmeTop) && ($(window).width() > 800)) {
$('.navPages-container').css({
position: 'fixed',
top: '52px',
height: '50px',
left: '0'
});
} else {
$('.navPages-container').css({
position: 'static',
top: '0'
});
}
});
</script>
现在我找到了另一个完全执行此操作的脚本(如下),但是我想组合这两个脚本,以便仅当浏览器窗口宽度>(大于)800 时才会出现此功能(请参阅第一个脚本)。
此外,一旦 div 固定,就会出现底部边框:border-bottom: 1px solid #000(我知道不允许使用破折号)。
<script type="text/javascript">
var fixed = false;
$(document).scroll(function() {
if( $(this).scrollTop() >= 118 ) {
if( !fixed ) {
fixed = true;
$('.navPages-container').css({
position:'fixed',
top:50
});
}
} else {
if( fixed ) {
fixed = false;
$('.navPages-container').css({
position:'static'
});
}
}
});
</script>
任何帮助表示赞赏!
解决方案
你可以试试这个。我刚刚将关于宽度的条件语句从第一个脚本添加到第二个脚本。还将黑色边框添加到条件为真时发生的 CSS 语句中
<script type="text/javascript">
var fixed = false;
$(document).scroll(function() {
if( $(this).scrollTop() >= 118 && ($(window).width() > 800) ) {
if( !fixed ) {
fixed = true;
$('.navPages-container').css({
position:'fixed',
top:50,
});
$('.navPages-container').css('border-bottom','1px solid #000');
}
} else {
if( fixed ) {
fixed = false;
$('.navPages-container').css({
position:'static'
});
$('.navPages-container').css('border-bottom','0px');
}
}
});
</script>
推荐阅读
- jenkins - 当工作由电子邮件触发时如何在 Jenkins 中获取 BUILD_USER_EMAIL
- java - 我的 JPanel 无法监听 keyEvents?
- django - 如何在 Django 应用程序和 React JS 应用程序之间执行单点登录?
- reactjs - 处理 react-hook-form 中的错误
- git - 修复错误的 git 状态(尝试重新应用隐藏的更改与冲突)
- arrays - 如何在 Json 字符串中隐藏没有记录的控件
- elasticsearch - X-Pack 401 Logstash 无法连接到 Elasticsearch
- php - 强制从 64 位 php 网站连接到 32 位访问数据库
- javascript - 从数组中删除重复值
- javascript - 在元素外单击时如何调用函数并避免在单击事件内触发单击?