本文實例講述了jQuery實現(xiàn)帶滾動導(dǎo)航效果的全屏滾動相冊。分享給大家供大家參考。具體如下:
創(chuàng)新互聯(lián)建站是專業(yè)的烏蘭網(wǎng)站建設(shè)公司,烏蘭接單;提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行烏蘭網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
運行效果圖如下:
主要代碼如下:
$(function()
{
//加載時的圖片
var
$loader=
$('#st_loading');
//獲取的ul元素
var
$list=
$('#st_nav');
//當(dāng)前顯示的圖片
var
$currImage
=
$('#st_main').children('img:first');
//加載當(dāng)前的圖片
//同時顯示導(dǎo)航的項
$('img').load(function(){
$loader.hide();
$currImage.fadeIn(3000);
//滑出導(dǎo)航
setTimeout(function(){
$list.animate({'left':'0px'},500);
},
1000);
}).attr('src',$currImage.attr('src'));
//計算出將被顯示的略縮圖所在的div元素的寬度
buildThumbs();
function
buildThumbs(){
$list.children('li.album').each(function(){
var
$elem
=
$(this);
var
$thumbs_wrapper
=
$elem.find('.st_thumbs_wrapper');
var
$thumbs
=
$thumbs_wrapper.children(':first');
//每張略縮圖占有180像素的寬度和3像素的間距(margin)
var
finalW
=
$thumbs.find('img').length
*
183;
$thumbs.css('width',finalW
+
'px');
//是這元素具有滾動性
makeScrollable($thumbs_wrapper,$thumbs);
});
}
//點擊菜單項目的時候(向上向下箭頭切換)
//使略縮圖的div層顯示和隱藏當(dāng)前的
//打開菜單(如果有的話)
$list.find('.st_arrow_down').live('click',function(){
var
$this
=
$(this);
hideThumbs();
$this.addClass('st_arrow_up').removeClass('st_arrow_down');
var
$elem
=
$this.closest('li');
$elem.addClass('current').animate({'height':'170px'},200);
var
$thumbs_wrapper
=
$this.parent().next();
$thumbs_wrapper.show(200);
});
$list.find('.st_arrow_up').live('click',function(){
var
$this
=
$(this);
$this.addClass('st_arrow_down').removeClass('st_arrow_up');
hideThumbs();
});
//點擊略縮圖,改變大的圖片
$list.find('.st_thumbs
img').bind('click',function(){
var
$this
=
$(this);
$loader.show();
$('img
class="st_preview"/').load(function(){
var
$this
=
$(this);
var
$currImage
=
$('#st_main').children('img:first');
$this.insertBefore($currImage);
$loader.hide();
$currImage.fadeOut(2000,function(){
$(this).remove();
});
}).attr('src',$this.attr('alt'));
}).bind('mouseenter',function(){
$(this).stop().animate({'opacity':'1'});
}).bind('mouseleave',function(){
$(this).stop().animate({'opacity':'0.7'});
});
//隱藏當(dāng)前已經(jīng)打開了的菜單的函數(shù)
function
hideThumbs(){
$list.find('li.current')
.animate({'height':'50px'},400,function(){
$(this).removeClass('current');
})
.find('.st_thumbs_wrapper')
.hide(200)
.andSelf()
.find('.st_link
span')
.addClass('st_arrow_down')
.removeClass('st_arrow_up');
}
//是當(dāng)前的略縮圖div層滾動
//當(dāng)鼠標(biāo)移至菜單層的時候會自動地進行滾動
function
makeScrollable($outer,
$inner){
var
extra
=
800;
//獲取菜單的寬度
var
divWidth
=
$outer.width();
//移除滾動條
$outer.css({
overflow:
'hidden'
});
//查找容器上的最后一張圖片
var
lastElem
=
$inner.find('img:last');
$outer.scrollLeft(0);
//當(dāng)用戶鼠標(biāo)離開菜單的時候
$outer.unbind('mousemove').bind('mousemove',function(e){
var
containerWidth
=
lastElem[0].offsetLeft
+
lastElem.outerWidth()
+
2*extra;
var
left
=
(e.pageX
-
$outer.offset().left)
*
(containerWidth-divWidth)
/
divWidth
-
extra;
$outer.scrollLeft(left);
});
}
});
希望本文所述對大家的jQuery程序設(shè)計有所幫助。
script?type="text/javascript"?src=""/script
script
(function()?{
new?Headroom(document.querySelector("#nav-scroll"),?{?//這里的nav-scroll改為你的導(dǎo)航欄的id或class
offset?:?5,?//?在元素沒有固定之前,垂直方向的偏移量(以px為單位)
tolerance:?5,?//?scroll?tolerance?in?px?before?state?changes????????
classes:?{
initial:?"animated",??//?當(dāng)元素初始化后所設(shè)置的class
pinned:?"slideUp",?//?向上滾動時設(shè)置的class
unpinned:?"slideDown"?//?向下滾動時所設(shè)置的class
}
}).init();????
}());
/script
然后,加上樣式就可以了:
.animated?{position:?fixed;top:?0;left:?0;right:?0;transition:?all?.2s?ease-in-out;}
.animated?.slideDown?{top:?-100px;}
.animated?.slideUp?{top:?0;}
其實所謂的網(wǎng)頁滾動條固定就是一個簡單的判斷
function?scrollLis(){
var?toTop?=?offs.top-$(window).scrollTop();
if(toTop==0||toTop0){
if(!$('.fixed-div').hasClass('add-fixed-div'))$('.fixed-div').addClass('add-fixed-div');
}else{
$('.fixed-div').removeClass('add-fixed-div');
};
};
var?offs=$('.fixed-div').offset();
$(window).scroll(function(){
scrollLis();
});
我解釋下代碼:
在你的nav class 同時加入.fixed-div
然后在css樣式表中add-fixed-div寫上絕對定位
scrollLis 滾到.fixed-div的時候就會添加一個add-fixed-div 而add-fixed-div他里面有一個絕對定位的css (position:fixed)這樣就完成了導(dǎo)航固定了
在解釋下
var?offs=$('.fixed-div').offset();
$(window).scroll(function(){
scrollLis();
});
這個是判斷回滾的時候取消固定
文章名稱:jquery滾動導(dǎo)航,jQuery導(dǎo)航欄
文章路徑:http://aaarwkj.com/article10/dssjodo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、用戶體驗、App設(shè)計、面包屑導(dǎo)航、網(wǎng)站策劃、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)