2013-08-18 50 views
4

我需要一些帮助,我的JQuery。滚动后更改css头文件

我想在滚动后更改标题的CSS,但不能得到它的工作。唯一必须在css中更改的边距是65px,并删除徽标。

Here is the code

#menuheader { 
background: -webkit-gradient(linear, center top, center bottom, from(#fff),to(#ccc)); 
background-image: linear-gradient(#fff, #ccc); 
box-shadow: 3px 3px 3px 3px #333; 
height: 40px; 
position: relative; 
margin: 165px auto 0; 
z-index: 10;} 

许多在此先感谢。 Jason

回答

8

假设你想改变滚动超过某个点后的CSS,然后在您使用jQuery滚动回到某个点时恢复CSS:

$(window).scroll(function() { 

    //After scrolling 100px from the top... 
    if ($(window).scrollTop() >= 100) { 
     $('#logo').css('display', 'none'); 
     $('#menuheader').css('margin', '65px auto 0'); 

    //Otherwise remove inline styles and thereby revert to original stying 
    } else { 
     $('#logo, #menuheader').attr('style', ''); 

    } 
}); 

然后,所有你需要做的是换出100与任何点(多少像素从上而下,而滚动)你想在被交换的CSS。

http://jsfiddle.net/dJh8w/4/

+0

感谢您的解释。它的工作原理与我想要的完全一样。 – Jssonline

0

将函数绑定到.scroll()并指向$("#menuheader")并执行任何您想要的操作。 :)

1

Plese澄清你的问题。你只需要jQuery来改变保证金?或某种滚动处理程序?下面是改变保证金代码:JSFiddle

$('#menuheader').attr("style", "margin:100px auto 0"); 
0

检查出这个网站:

http://jsfiddle.net/fbSbT/1/

你可以改变过去的功能:

$(document).on("scrollstop",function() { 
    $('#menuheader').css("margin","65px"); 
    $('#menuheader').css("background",""); 
}); 
+0

它的工作原理!谢谢。只有一件事,当我回滚的CSS不会回到原来的CSS。我该如何解决这个问题? [链接](http://jsfiddle.net/jssonline/dJh8w/)(我是jQuery中的初学者) – Jssonline

+0

你的意思是你想在#menuheader再次变为可见时将css改回正常状态吗? – esonat

+0

我已经修复了它 – Jssonline