Javascript 如何使用jQuery构建简单的粘性导航?
我试图在滚动时更改div的css。这是我的代码,但不幸的是它无法工作Javascript 如何使用jQuery构建简单的粘性导航?,javascript,jquery,html,css,scroll,Javascript,Jquery,Html,Css,Scroll,我试图在滚动时更改div的css。这是我的代码,但不幸的是它无法工作 $(document).ready(function() { $(window).scroll(function () { if ($(this).scrollTop() > 150) { $('#subnav').css({ 'position' : 'fixed', 'top' : '0'
$(document).ready(function() {
$(window).scroll(function () {
if ($(this).scrollTop() > 150) {
$('#subnav').css({
'position' : 'fixed',
'top' : '0'
});
} else {
$('#subnav').css({
'position' : 'static',
'top' : 'auto'
});
}
});
});
试试这个:
注意:如果您只有一个值,您可以使用
else
,但是如果您有多个值,我建议不要使用else
,因为这会产生冲突,如果intead,请使用else。'top':'none'
??这不在规范中,如果需要默认值,请使用'auto'
。谢谢,sry当然是auto,更改了它。但这一切都不起作用,对我来说,什么不起作用?你有错误吗?页面上是否有id为“subnav”的元素?没有错误,当然还有id为“subnav”的div。barlasapaydin的解决方案适用于我的jquery插件,我也是如此。它在JSFIDLE上工作,但在我的插件上不工作((:所以我试着更加小心。试试这个版本,除了它不使用变量外,其他版本都是一样的。它的工作原理是一样的!@Alnitak这是OP要求的相同代码,它对我也有效,但当它在长函数中或使用插件时,它开始不起作用。对不起,无法证明这一点,但它也发生在我身上。Beali我对这个问题很有经验:无论你在做什么,要么是1.误解,要么是代码中的错误,要么是3.浏览器中的错误。var a=expression;if(a)
和if(expression)在语义上没有区别
@Alnitak是的,你是对的,代码中有一个bug我检测不到。下次我会更加小心的。谢谢。
$(document).ready(function() {
$(window).scroll(function() {
var scrollVal = $(this).scrollTop();
if ( scrollVal > 150) {
$('#subnav').css({'position':'fixed','top' :'0px'});
} else {
$('#subnav').css({'position':'static','top':'auto'});
}
});
});