我得到了下面的Navbar。我想让它做的是:
这不起作用,因为我的切换navbar的代码将为top
设置内联值,这是类中需要的,以便在向上滚动时隐藏它
所以,除了我的代码有什么问题之外,真正的问题是:
有没有办法把我计算出来的身高给CSS?或者不内联设置样式,而是定义一个新的类或其他东西,并给该类赋值?
所以我仍然可以在css中有一些顺序,并且向上滚动时的隐藏不会被内联样式覆盖。
谢谢你的帮助!
null
// Sticky Header / Appear when scrolled to XY
$(window).scroll(function() {
var header_sticky = $('.header-sticky');
if ($(this).scrollTop() > 250) {
header_sticky.addClass('fixed');
} else {
header_sticky.removeClass('fixed');
}
});
// Hide / Show Navbar
$(function() {
$('#nav_toggle').on('click', function() {
toggleNav();
});
});
function toggleNav() {
let navHeight = $('.header-sticky.toggleable').height();
let anchorHeight = $('#nav_toggle').height();
let toggleHeight = navHeight - anchorHeight;
if ($('#nav_toggle').parent().hasClass('nav_toggled')) {
$('#nav_toggle').parent().css('top', 0);
$('#nav_toggle').parent().removeClass('nav_toggled')
$('#nav_toggle').html('<i class="fas fa-angle-down"></i>')
} else {
$('#nav_toggle').parent().addClass('nav_toggled')
$('#nav_toggle').parent().css('top', -toggleHeight);
$('#nav_toggle').html('<i class="fas fa-angle-up"></i>')
}
}
/* Nav Styling */
.nav {
width: 100vw;
padding: 0 10vw;
position: fixed;
background: #fefefe;
z-index: 8;
left: 0;
right: 0;
box-shadow: 0px 3px 10px 1px rgba(0, 0, 0, 0.2);
}
.nav ul {
list-style-type: none;
display: flex;
justify-content: center;
flex-wrap: wrap;
align-items: center;
width: 100%;
}
.nav ul li {
padding: 0.5rem 1rem;
}
/* Toggle Styling */
#nav_toggle {
font-size: 1.5rem;
text-align: center;
width: 2rem;
height: 100%;
display: block;
margin: 0 auto;
}
/* Sticky Header CSS */
.header-sticky {
position: fixed;
z-index: 1000;
top: -250px;
transition: all ease-in-out .25s;
}
.header-sticky.fixed {
top: 0;
}
/* Some height so it's scrollable */
.for_some_height {
height: 200vw;
width: 100%;
z-index: -1;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w==" crossorigin="anonymous" />
<div class="nav header-sticky toggleable">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
<a href="javascript:void(0)" id="nav_toggle"><i class="fas fa-angle-down"></i></a>
</div>
<div class="for_some_height"></div>
null
它完成了,检查是否需要其他东西,然后我会在解决方案中添加一些解释,
null
// Sticky Header / Appear when scrolled to XY
$(window).scroll(function() {
var header_sticky = $('.header-sticky');
if ($(this).scrollTop() > 250) {
header_sticky.addClass('fixed');
} else {
header_sticky.removeClass('fixed');
}
});
// Hide / Show Navbar
$(function() {
$('#nav_toggle').on('click', function() {
$(this).prev('ul').slideToggle();
$(this).toggleClass('closed');
if($('#nav_toggle').hasClass('closed')){
$('#nav_toggle').html('<i class="fas fa-angle-up"></i>');
}else {
$('#nav_toggle').html('<i class="fas fa-angle-down"></i>');
}
});
});
/* Nav Styling */
.nav {
width: 100vw;
padding: 0 10vw;
position: fixed;
background: #fefefe;
z-index: 8;
left: 0;
right: 0;
box-shadow: 0px 3px 10px 1px rgba(0, 0, 0, 0.2);
}
.nav ul {
list-style-type: none;
display: flex;
justify-content: center;
flex-wrap: wrap;
align-items: center;
width: 100%;
}
.nav ul li {
padding: 0.5rem 1rem;
}
/* Toggle Styling */
#nav_toggle {
font-size: 1.5rem;
text-align: center;
width: 2rem;
height: 100%;
display: block;
margin: 0 auto;
}
/* Sticky Header CSS */
.header-sticky {
position: fixed;
z-index: 1000;
top: -250px;
transition: all ease-in-out .25s;
}
.header-sticky.fixed {
top: 0;
}
/* Some height so it's scrollable */
.for_some_height {
height: 200vw;
width: 100%;
z-index: -1;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w==" crossorigin="anonymous" />
<div class="nav header-sticky toggleable">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
<a href="javascript:void(0)" id="nav_toggle"><i class="fas fa-angle-down"></i></a>
</div>
<div class="for_some_height"></div>
我想把列表中的对象分配给类变量。 感恩节:)
= 赋值操作符(它的左右两边不能有空白符) 不要搞混了 = 和 -eq,-eq 是比赋值操作更高级的测试。注意:等于号(=)根据环境的不同它可能是赋值操作符也可能是一个测试操作符。 例子 4-2. 简单的变量赋值 1 #!/bin/bash 2 # 裸变量 3 4 echo 5 6 # 什么时候变量是“裸”的?比如说,变量名前面没有$? 7 #当变量被赋值
我开始盲目地看着我的代码,我的大脑快要过热了。谈到编程,我是新来的。 公共类回收系统{ }} 公共类瓶子{ } 公共类EmptyStackException扩展了异常{ } 公共类瓶计数{ } 我对getbottle、TotalBottalCount和BottalCount变量有单独的类。 我想做一个基于用户输入的回收系统模拟器,如果有任何意义的话,有三种不同类型的瓶子,它们被分配了不同的值,一个
输出为“假”,但为什么?我将<code>truetruevs什么时候合适? 编辑:一些用户提到我应该看到错误,但我没有。我在PowerShell 2.0(Windows 7)和PowerShell 4.0(Windows 8.1)中都尝试过。和确实像我说的那样更改了COM属性。 编辑:事实证明,我们将< code>true赋给了COM属性,但它们实际上收到了false。我们的路径中有gnuwin3
数组的解构赋值 基本用法 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 以前,为变量赋值,只能直接指定值。 var a = 1; var b = 2; var c = 3; ES6允许写成下面这样。 var [a, b, c] = [1, 2, 3]; 上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。 本质上,这种写法属