JQuery插件开发初探——图片轮播
来源:互联网 发布:海牙国际军事法庭 知乎 编辑:程序博客网 时间:2024/05/16 03:58
在熟悉了插件开发的结构以后,自己尝试着做了一个稍微复杂一点的小功能:图片轮播插件。
由于之前使用的一款图片轮播插件,性能不高,页面加载的时候需要载入全部的图片,因此速度很慢。
通过自己做这个小插件,能控制一下图片的加载,每次只加载一张图片。当然翻转的特效肯定没有人家的绚丽。
之前尝试了在div中内嵌img标签的方式,但是左右两侧的翻页按钮不容易摆放,于是采用了3个div的方式,最外面一个大的div,背景图片为照片图片,其中左右各两个小div,放翻页按钮。
由于开始的时候需要频繁调样式,因此大div中的代码都是写死的,等到调试成功后,再放到js里去append。
参数中定义了需要展示的照片列表和div的宽高:
var defaults = { height: '300px', width: '1000px', imgs: ['images/photo/1.JPG', 'images/photo/2.JPG', 'images/photo/3.JPG', 'images/photo/4.JPG', 'images/photo/5.JPG'] };
图片拉伸用了比较新的CSS属性:"background-size", '100% 100%'
核心思想就是每次随机一直图片作为背景,随机的原则是不和上一张重复。
以下是完整的js代码:
/**************************************************** DannyImagesShow* 图片轮播* Ver:1.0* Author:DannyWang* Date:2013-10-15* 图片轮播 Example: var opt = { height: '500px', width: '100%', imgs: ['images/photo/6.JPG', 'images/photo/7.JPG', 'images/photo/8.JPG', 'images/photo/9.JPG'] }; $("#imgDiv").dannyImagesShow(opt);****************************************************/(function ($) { $.fn.dannyImagesShow = function (options) { //定义默认值 var defaults = { height: '300px', width: '1000px', imgs: ['images/photo/1.JPG', 'images/photo/2.JPG', 'images/photo/3.JPG', 'images/photo/4.JPG', 'images/photo/5.JPG'] }; //合并用户自定义属性,默认属性 var options = $.extend(defaults, options); var gNumber=0; this.each(function () { var imgDiv = $(this); imgDiv.css("height", options.height); imgDiv.css("width", options.width); imgDiv.css("background-image", 'url("' + options.imgs[1] + '")'); imgDiv.css("background-position", 'center'); imgDiv.css("background-size", '100% 100%'); var pagerHTML = ''; pagerHTML += '<div id="leftbar" style="float: left; height: ' + (options.height.replace('px', '') - (options.height.replace('px', '') / 2 - 15)) + 'px' + '; width: 30px; padding-left:10px; padding-top: ' + (options.height.replace('px', '') / 2 - 15) + 'px' + ';">'; pagerHTML += '<a id="leftbarButton" class="left">prev</a>'; pagerHTML += '</div>'; pagerHTML += '<div id="rightbar" style="float: right; height: ' + (options.height.replace('px', '') - (options.height.replace('px', '') / 2 - 15)) + 'px' + '; width: 30px;padding-right:10px; padding-top: ' + (options.height.replace('px', '') / 2 - 15) + 'px' + ';">'; pagerHTML += '<a id="rightbarButton" class="right">next</a>'; pagerHTML += '</div>'; imgDiv.append(pagerHTML); var btnPrev = $(".left"); var btnNext = $(".right"); btnPrev.click(function () { var n = getImagesNum(1, options.imgs.length); while (n === gNumber) { n = getImagesNum(1, options.imgs.length); } gNumber = n; $("#imgDiv").hide(); imgDiv.css("background-image", 'url("' + options.imgs[n - 1] + '")'); $("#imgDiv").slideDown(); }); btnNext.click(function () { var n = getImagesNum(1, options.imgs.length); while (n === gNumber) { n = getImagesNum(1, options.imgs.length); } gNumber = n; $("#imgDiv").hide(); imgDiv.css("background-image", 'url("' + options.imgs[n - 1] + '")'); $("#imgDiv").slideDown(); }); $("#leftbar").bind("mouseover", function () { $("#leftbarButton").show(); }); $("#leftbar").bind("mouseout", function () { $("#leftbarButton").hide(); }); $("#rightbar").bind("mouseover", function () { $("#rightbarButton").show(); }); $("#rightbar").bind("mouseout", function () { $("#rightbarButton").hide(); }); $(".left").hide(); $(".right").hide(); }); //获取随机数 var getImagesNum = function (under, over) { switch (arguments.length) { case 1: return parseInt(Math.random() * under + 1); case 2: return parseInt(Math.random() * (over - under + 1) + under); default: return 0; } } }})(jQuery);
- JQuery插件开发初探——图片轮播
- 12款经典的白富美型—jquery图片轮播插件—前端开发必备
- jQuery图片轮播插件——前端开发必看
- jQuery 图片轮播插件
- jQuery 图片轮播插件
- JQuery图片轮播插件
- [jquery]轮播图片插件
- 图片轮播插件jquery.smallslider.js
- jQuery图片轮播(焦点图)插件
- jQuery的图片轮播插件responsiveslides
- jQuery SmallSlider 图片轮播插件
- Jquery 图片轮播的插件
- 图片轮播插件jquery.smallslider.js
- jquery 图片轮播插件unslider
- 网站项目必备——12款经典的白富美型 jQuery 图片轮播插件
- 网站项目必备——12款经典的白富美型 jQuery 图片轮播插件
- 网站项目必备——12款经典的白富美型 jQuery 图片轮播插件
- 网站项目必备——12款经典的白富美型 jQuery 图片轮播插件
- memcached make: *** No targets specified and no makefile found. Stop.
- 关于QSqlDatabase::addDatabase的一个运行时错误
- 双击python脚本使之运行
- nginx tomcat7 memcache设置服务器负载均衡,session共享
- JQuery插件开发初探——结构熟悉
- JQuery插件开发初探——图片轮播
- STL algorithm 之 unique 函数的用法
- Android xliff和字符串资源(Error parsing XML: unbound prefix)
- Hadoop fuse_dfs编译与安装
- Fragment之Creating event callbacks to activity实例
- Android基础——Service IPC通讯(Messenger实现)
- jQuery操作input值总结
- QT程序启动界面的使用
- 添加了Exchange WebService引用找不到ExchangeServiceBinding类