基于Jquery制作的幻灯片图集效果打包下载


Posted in Javascript onFebruary 12, 2011

待改进部分
1.大图可根据浏览器分辨率自动缩放,目前是按照固定的宽和高显示,超出部分隐藏。
2.大图现在是直接载入了所有,若图片很多时,体验不好。可改为异步加载,或者延迟加载,这个可以用jquery控件lazyload实现。
3.缩略图是根据上传时设定的参数直接生成的,如果是竖形图片,会出现被压缩的情况。可以改为只显示局部,超出部分隐藏。
4.缩略图列表的滑动采用了jcarousellite插件,如果将幻灯片提取为插件的话,需要整合为一个。
5.目前大图区域和缩略图区域是相对独立的,优点是比较直观,可以自行随便更改显示位置,缺点是HTML的代码量较多,不像有些插件,只需要$("#ID")一下就可以了。
JS代码

<script type="text/javascript"> 
var currentImage; 
var currentIndex = -1; 
//显示大图(参数index从0开始计数) 
function showImage(index) { 
//更新当前图片页码 
$(".CounterCurrent").html(index + 1); 
//隐藏或显示向左向右鼠标手势 
var len = $('#OriginalPic img').length; 
if (index == len - 1) { 
$("#aNext").hide(); 
} 
else { 
$("#aNext").show(); 
} 
if (index == 0) { 
$("#aPrev").hide(); 
} 
else { 
$("#aPrev").show(); 
} 
//显示大图 
if (index < $('#OriginalPic img').length) { 
var indexImage = $('#OriginalPic p')[index]; 
//隐藏当前的图 
if (currentImage) { 
if (currentImage != indexImage) { 
$(currentImage).css('z-index', 2); 
$(currentImage).fadeOut(0, function () { 
$(this).css({ 'display': 'none', 'z-index': 1 }) 
}); 
} 
} 
//显示用户选择的图 
$(indexImage).show().css({ 'opacity': 0.4 }); 
$(indexImage).animate({ opacity: 1 }, { duration: 200 }); 
//更新变量 
currentImage = indexImage; 
currentIndex = index; 
//移除并添加高亮 
$('#ThumbPic img').removeClass('active'); 
$($('#ThumbPic img')[index]).addClass('active'); 
//设置向左向右鼠标手势区域的高度 
//var tempHeight = $($('#OriginalPic img')[index]).height(); 
//$('#aPrev').height(tempHeight); 
//$('#aNext').height(tempHeight); 
} 
} 
//下一张 
function ShowNext() { 
var len = $('#OriginalPic img').length; 
var next = currentIndex < (len - 1) ? currentIndex + 1 : 0; 
showImage(next); 
} 
//上一张 
function ShowPrep() { 
var len = $('#OriginalPic img').length; 
var next = currentIndex == 0 ? (len - 1) : currentIndex - 1; 
showImage(next); 
} 
//下一张事件 
$("#aNext").click(function () { 
ShowNext(); 
if ($(".active").position().left >= 144 * 5) { 
$("#btnNext").click(); 
} 
}); 
//上一张事件 
$("#aPrev").click(function () { 
ShowPrep(); 
if ($(".active").position().left <= 144 * 5) { 
$("#btnPrev").click(); 
} 
}); 
//初始化事件 
$(".OriginalPicBorder").ready(function () { 
ShowNext(); 
//绑定缩略图点击事件 
$('#ThumbPic li').bind('click', function (e) { 
var count = $(this).attr('rel'); 
showImage(parseInt(count) - 1); 
}); 
}); 
</script>

在线演示:http://demo.3water.com/js/2011/Gallery/index.html
打包下载:/201102/yuanma/Gallery_3water.rar
Javascript 相关文章推荐
十个优秀的Ajax/Javascript实例网站收集
Mar 31 Javascript
jQuery源码分析之Event事件分析
Jun 07 Javascript
JS中typeof与instanceof之间的区别总结
Nov 14 Javascript
js校验表单后提交表单的三种方法总结
Feb 28 Javascript
基于jquery实现的树形菜单效果代码
Sep 06 Javascript
JavaScript实现的伸展收缩型菜单代码
Oct 14 Javascript
Bootstrap CSS组件之导航(nav)
Dec 17 Javascript
Vue列表页渲染优化详解
Jul 24 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
Jan 16 Javascript
javascript中call()、apply()的区别
Mar 21 Javascript
小程序server请求微信服务器超时的解决方法
May 21 Javascript
jQuery 添加元素和删除元素的方法
Jul 15 jQuery
基于jquery的jqDnR拖拽溢出的修改
Feb 12 #Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
Feb 12 #Javascript
在vs2010中调试javascript代码方法
Feb 11 #Javascript
juqery 学习之六 CSS--css、位置、宽高
Feb 11 #Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
Feb 11 #Javascript
juqery 学习之五 文档处理 插入
Feb 11 #Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
Feb 11 #Javascript
You might like
PHP读取文件的常见几种方法
2016/11/03 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
EasySlider 基于jQuery功能强大简单易用的滑动门插件
2010/06/11 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
jQuery+PHP实现上传裁剪图片
2020/06/29 jQuery
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
Python中time模块和datetime模块的用法示例
2016/02/28 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
Python使用爬虫爬取静态网页图片的方法详解
2018/06/05 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
英国绿色商店:Natural Collection
2019/05/03 全球购物
两道JAVA笔试题
2016/09/14 面试题
大学理论知识学习自我鉴定
2014/04/28 职场文书
网站出售协议书范文
2014/10/10 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
成事在人观后感
2015/06/16 职场文书
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js