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


Posted in Javascript onJune 19, 2015

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

运行效果图如下:

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程序设计有所帮助。

Javascript 相关文章推荐
javascript一元操作符(递增、递减)使用示例
Aug 07 Javascript
jquery中的查找parents与closest方法之间的区别
Dec 02 Javascript
js获取和设置属性的方法
Feb 20 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
Aug 12 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
Jun 04 Javascript
基于JavaScript实现添加到购物车效果附源码下载
Aug 22 Javascript
JS中substring与substr的用法
Nov 16 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
Aug 09 Javascript
javascript代码优化的8点总结
Jan 29 Javascript
基于 D3.js 绘制动态进度条的实例详解
Feb 26 Javascript
纯JS实现可用于页码更换的飞页特效示例
May 21 Javascript
js实现点赞按钮功能的实例代码
Mar 06 Javascript
jquery实现的代替传统checkbox样式插件
Jun 19 #Javascript
JQuery实现的图文自动轮播效果插件
Jun 19 #Javascript
移除AngularJS下URL中的#字符的方法
Jun 19 #Javascript
使用AngularJS创建单页应用的编程指引
Jun 19 #Javascript
使用AngularJS实现可伸缩的页面切换的方法
Jun 19 #Javascript
使用AngularJS实现表单向导的方法
Jun 19 #Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
Jun 19 #Javascript
You might like
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
php变量与字符串的增删改查操作示例
2020/05/07 PHP
优化JavaScript脚本的性能的几个注意事项
2006/12/22 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
JS实现密码框效果
2020/09/10 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
2020/09/24 Javascript
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
2017/06/15 Python
详解如何使用Python编写vim插件
2017/11/28 Python
使用python编写监听端
2018/04/12 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
python3 简单实现组合设计模式
2020/07/02 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
影视动画专业个人的自我评价
2013/12/31 职场文书
管理专员自荐信
2014/01/26 职场文书
自立自强的名人事例
2014/02/10 职场文书
2014年工程工作总结
2014/11/25 职场文书
思想道德自我评价2015
2015/03/09 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
Python 中面向接口编程
2022/05/20 Python