javascript - 使用 javascript 固定位置时,边距顶部无法正常工作
问题描述
当导航栏位置固定时,徽标的边距顶部不起作用。正如您在向下滚动时所附图像中看到的那样,它消失了
<div class="container">
<div class="row number">
<div class="col-sm-5 col-xs-3">
</div>
<div class="col-sm-2 col-xs-2">
</div>
<div class="col-sm-5 col-xs-7">
<h2>Call Us Today<br>
<a href="tel:+1-778-233-0368">604-729-3864</a></h2>
</div>
</div>
</div>
<nav class="navbar navbar-inverse" role="banner">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<nav>
<%= link_to root_path do %><%= image_tag "plumbertodaylogo.png",alt: "plumber-today-logo",class: "logo"%><% end %>
</nav>
</div>
<div class="collapse navbar-collapse navbar-right">
<ul class="nav navbar-nav">
<li class="active"><%= link_to "Home", root_path %></li>
<li><%= link_to "About Us",about_path %></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Plumbing <i class="fa fa-angle-down"></i></a>
<ul class="dropdown-menu">
<li><a href="blog-item.html">Repipe/ Burst pipes</a></li>
<li><a href="pricing.html">Leak Detection</a></li>
<li><a href="404.html">Fixture repair & Installation</a></li>
<li><a href="shortcodes.html">Garbage Disposal Services</a></li>
<li><a href="shortcodes.html">Hot Later Tanks</a></li>
<li><a href="shortcodes.html">Watermains</a></li>
<li><a href="shortcodes.html">Sump & Pump services</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Drainage <i class="fa fa-angle-down"></i></a>
<ul class="dropdown-menu">
<li><a href="blog-item.html">Drain cleaning pipes</a></li>
<li><a href="pricing.html">Sewer Main</a></li>
<li><a href="404.html">Clogged toilet Services</a></li>
<li><a href="shortcodes.html">Draintile Services</a></li>
<li><a href="shortcodes.html">Camera Inspection</a></li>
<li><a href="shortcodes.html">Hydrojetting</a></li>
</ul>
</li>
<li><a href="portfolio.html">Service Areas</a></li>
<li><a href="blog.html">Reviews</a></li>
<li><a href="blog.html">Blog</a></li>
<li><a href="coupons.html">coupons</a></li>
<li><%= link_to "Contact" ,new_contact_path %></li>
</ul>
</div>
</div><!--/.container-->
</nav><!--/nav-->
文件
$(window).scroll(function(e){
var $el = $('.navbar');
var isPositionFixed = ($el.css('position') == 'fixed');
if ($(this).scrollTop() > 200 && !isPositionFixed){
$el.css({'position': 'fixed', 'top': '0px'});
$('.logo').css({'margin-top': '-10!important','width': '10px'});
}
if ($(this).scrollTop() < 200 && isPositionFixed){
$el.css({'position': 'static', 'top': '0px'});
$('.logo').css({'margin-top': '-110!important','width': '150px'});
}
});
css
.navbar {
border-radius: 0;
margin-bottom: 0;
background: white;
padding: 0px 0;
padding-bottom: 0;
position: fixed;
z-index: 100;
width:100%;
}
.logo{
margin-top: -110px !important;
width: 150px;
}
解决方案
当你给position: fixed
属性时,你需要使用top: 50px
而不是margin-top: 50px
,因为当你使用固定时,它是相对于屏幕而不是父div。
由于导航栏是fixed
图片顶部没有元素,所以它是向上的,你需要使用heightOfFixedNavbar + marginTop
到图片。
推荐阅读
- ios - 我如何在 React Native 上更改 firebase IOS 项目
- python - 使用 Boto3 更改 EC2 实例的安全组
- java - 为什么这个线程(WriteData)没有做它的功能?
- apache-spark - 在 Spark 2.X 中如何使用 Kyro
- javascript - Get scroll value on element with position:fixed
- ruby - 如何阻止线程在调试器断点处永久休眠?
- php - I want to make a filter of my selecting Data, using PHP and MySQL
- oracle - 触发语句的大小限制为 32KB
- wordpress - 通过加入WordPress从三个表中选择数据
- c# - Programmatically verify SNS topic permission to send messages to SQS (using IAM?)