Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery构建简单的粘性导航?_Javascript_Jquery_Html_Css_Scroll - Fatal编程技术网

Javascript 如何使用jQuery构建简单的粘性导航?

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'

我试图在滚动时更改div的css。这是我的代码,但不幸的是它无法工作

$(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'});
        }
    });
 });