jQuery实现带滚动导航效果的全屏滚动相册实例

时间:2021-05-26

本文实例讲述了jQuery实现带滚动导航效果的全屏滚动相册。分享给大家供大家参考。具体如下:

运行效果图如下:

主要代码如下:

$(function() {//加载时的图片var $loader= $('#st_loading');//获取的ul元素var $list= $('#st_nav');//当前显示的图片var $currImage = $('#st_main').children('img:first');//加载当前的图片//同时显示导航的项$('<img>').load(function(){$loader.hide();$currImage.fadeIn(3000);//滑出导航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层显示和隐藏当前的//打开菜单(如果有的话)$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'});});//隐藏当前已经打开了的菜单的函数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');}//是当前的略缩图div层滚动//当鼠标移至菜单层的时候会自动地进行滚动function makeScrollable($outer, $inner){var extra = 800;//获取菜单的宽度var divWidth = $outer.width();//移除滚动条$outer.css({overflow: 'hidden'});//查找容器上的最后一张图片var lastElem = $inner.find('img:last');$outer.scrollLeft(0);//当用户鼠标离开菜单的时候$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程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章