在網(wǎng)頁(yè)設(shè)計(jì)中,導(dǎo)航欄是一個(gè)非常重要的元素,它能夠幫助用戶快速了解網(wǎng)站的結(jié)構(gòu)和導(dǎo)航,因此我們需要對(duì)導(dǎo)航欄進(jìn)行一些特殊處理,讓用戶更加方便地使用。
CSS可以很好地處理這一問(wèn)題,通過(guò)CSS中的定位屬性,我們可以實(shí)現(xiàn)導(dǎo)航欄隨頁(yè)面滾動(dòng)。具體來(lái)說(shuō),設(shè)置導(dǎo)航欄的position為fixed,然后再設(shè)置其top和left值即可。下面是實(shí)現(xiàn)效果的代碼:
nav { position: fixed; top: 0; left: 0; width: 100%; background-color: #fff; z-index: 9999; /* 防止被其他元素覆蓋 */ }在上面的代碼中,設(shè)置了導(dǎo)航欄的定位方式為fixed,然后將導(dǎo)航欄置于頁(yè)面的最頂部和最左側(cè),并設(shè)置了導(dǎo)航欄的寬度和背景顏色。這樣就實(shí)現(xiàn)了一個(gè)在頁(yè)面滾動(dòng)時(shí)保持固定不變的導(dǎo)航欄。 當(dāng)頁(yè)面滾動(dòng)時(shí),我們需要將導(dǎo)航欄的位置進(jìn)行相應(yīng)的調(diào)整,使其不超出頁(yè)面,同時(shí)還需要保持導(dǎo)航欄的固定不變。下面是具體調(diào)整代碼:
$(window).scroll(function(){ var top = $(window).scrollTop(); if (top >0){ $('nav').css('top', '0'); $('nav').addClass('fixed'); } else { $('nav').css('top', 'auto'); $('nav').removeClass('fixed'); } });上面的代碼使用了jQuery庫(kù)中的scroll函數(shù),實(shí)現(xiàn)了當(dāng)頁(yè)面滾動(dòng)時(shí)對(duì)導(dǎo)航欄進(jìn)行相應(yīng)位置的調(diào)整。首先獲取滾動(dòng)過(guò)的距離,如果滾動(dòng)距離大于0,則將導(dǎo)航欄的top值設(shè)置為0,并為導(dǎo)航欄增加一個(gè)類名fixed(這個(gè)類名是為了實(shí)現(xiàn)導(dǎo)航欄的固定不變效果)。如果滾動(dòng)距離小于等于0,則將導(dǎo)航欄的top值設(shè)置為auto,即取消固定效果。 當(dāng)導(dǎo)航欄固定不變時(shí),可能會(huì)出現(xiàn)導(dǎo)航欄和其他頁(yè)面元素重疊覆蓋的問(wèn)題,這時(shí)候可以通過(guò)設(shè)置z-index的值調(diào)整優(yōu)先級(jí),使導(dǎo)航欄在頁(yè)面上懸浮于其他元素之上。