2013-05-13 83 views
0

我有這樣的jQuery代碼:而不是.resize?

$(window).resize(function() {   
if ($(window).width() <= 1250) { 
    $('#topbar').css('position', 'static'); 
} else { 
    $('#topbar').css('position', 'fixed'); 
} 
}); 

問題是,當你在較小的1250餘已放大,然後重新加載這個jQuery不起作用的頁面。那麼我如何解決這個問題?

+0

您應該使用媒體查詢。 – 2013-05-13 13:03:00

回答

3

嘗試觸發可能調整大小處理程序:

$(window).resize(function() { 
    if ($(this).width() <= 1250) { 
     $('#topbar').css('position', 'static'); 
    } else { 
     $('#topbar').css('position', 'fixed'); 
    } 
}).triggerHandler('resize'); 
+0

工作。非常感謝!只是有一個問題,triggerHandler中的「調整大小」是做什麼的? – user2336174 2013-05-13 13:05:56

+0

難道這不是一個媒體查詢工作嗎? – 2013-05-13 13:09:29

+0

「描述:執行附加到事件元素的所有處理程序。」 http://api.jquery.com/triggerHandler/但是正如ŠimeVidas在CSS3兼容瀏覽器中解釋的那樣,這通常可以通過媒體查詢來完成 – 2013-05-13 13:12:00

2

爲此在CSS:

#topbar { 
    position: static 
} 

@media screen and (min-width: 1250px) { 
    #topbar { 
     position: fixed 
    } 
} 

現場演示:http://jsfiddle.net/krrvA/show/(我使用的背景顏色來指示切換調整的。窗口水平和顏色將更改爲1250px。)

+0

+1媒體查詢CSS3是OP正在尋找的 – 2013-05-13 13:13:10