在我的網站上,我在左側有一個側邊欄DIV,右側有一個文本DIV。我想使側邊欄按照讀者,因爲他或她向下滾動,所以我DuckDuckGo'ed了一下,發現this然後稍微修改我的需求:如果CSS具有特定值,請勿執行jQuery腳本
<script type='text/javascript'>//<![CDATA[
$(window).load(function(){
$(function(){
var $sidebar = $('#sidebar'),
sidebarOffset = $sidebar.offset(),
$window = $(window),
gap = $('#header').css('marginBottom').replace(/[^-\d\.]/g, ''),
distance = ($window.scrollTop()) - (sidebarOffset.top - gap),
footerHeight = $('#footer').outerHeight();
$window.scroll(function(){
distance = ($window.scrollTop()) - (sidebarOffset.top - gap);
if (distance > 0) {
$sidebar.css({'top': gap + 'px', 'position' : 'fixed'});
} else {
$sidebar.css({'top': '0', 'position': 'relative'});
}
})
});
});//]]>
</script>
和它的作品就像我想讓它。但是,我的網站使用Skeleton framework來處理響應式設計。我已經設計了它,以便當它移動到移動設備(水平然後垂直)時,側欄從文本左側移動到文本左側,以便文本DIV可以佔據100%的寬度。正如您可以想象的那樣,該腳本會在您向下滾動時使邊欄覆蓋部分文本。
我完全新的jQuery和我通過試錯做我最好的,但我已經放棄了。我所需要的幫助是讓這個腳本如果某DIV具有一定的CSS值不執行(即#header-logo
是display: none
)。
理想的情況下,腳本應該檢查這個當用戶改變瀏覽器,而不是在網站負荷,萬一用戶調整從正常尺寸大小的移動瀏覽器窗口。
我想這應該足以把它包在一些if-else語句,但我開始到現在拉頭髮,我的頭。而且由於無論如何我的頭髮都沒有太多,所以我需要幫助!
非常感謝!
謝謝!它的作品非常漂亮:)但是,我剛剛意識到我沒有正確解釋案件。我需要在調整窗口大小和窗口大小時進行腳本和驗證,以涵蓋所有可能的場景。我已經將第一行換成了'$(window).on('load resize',function(){'並且它似乎工作正常。你認爲這可能會導致一些問題嗎? – pglaz
我很高興我可以幫忙。我認爲你做的沒問題。看看當你加載頁面時會發生什麼,'#header-logo'不可見,'myScroll'函數未定義,我不知道是否會顯示錯誤。 –