jquery插件开发之实现jquery手风琴功能分享


Posted in Javascript onMarch 10, 2014

可用于图片或者容器,使用与常规jQuery插件调用方式无异。实现原理也不难理解,都在代码注释中。想研究的可以看下面的代码,或者样例演示。

;(function($){
    /*
     * 基于jQuery的简易手风琴切换插件
     */
    $.fn.iAccordion=function(iSet){
        var self=this;
        iSet=$.extend({Type:'mouseover',Select:'img',Cur:0,InitInterval:100,Interval:500,Easing:''},iSet||{});
        /*
         * Type: 鼠标事件类型,mouseover,click,mouseleave等
         * Select: 选择器,用以获取需要切换的元素集合
         * Cur: 默认展开元素的索引
         * InitInterval: 初始化手风琴效果动画间隔时间
         * Interval: 鼠标事件动画间隔时间
         * Easing: 动画效果,需要jQuery.easing支持,参数可参考jQuery.easing@ http://gsgd.co.uk/sandbox/jquery/easing/
         */
        var item,boxW,selectW,animateW,sIndex,animateL;
        $(self).each(function(){
            //初始化容器样式
            $(this).css({'position':'relative','overflow':'hidden'});
            item=$(this).find(iSet.Select);
            //初始化切换元素样式
            item.css({'position':'absolute','left':0,'top':0});
            boxW=$(this).outerWidth();
            selectW=item.outerWidth();
            animateW=(boxW-selectW)/(item.size()-1);
            //初始化元素排列并为元素data一个索引值
            item.each(function(i){
                $(this).animate({'left':animateW*i+'px'},iSet.InitInterval,iSet.Easing);
                $(this).data('index',i);
            }).on(iSet.Type,function(e){//绑定鼠标事件
                //获取当前元素索引值
                sIndex=$(this).data('index');
                    //鼠标事件动画,通过判断元素索引值与当前元素索引值的大小关系动画显示当前元素并动画排列
                    item.each(function(n){
                        n > sIndex ? animateL=selectW+animateW*(n-1) : animateL=animateW*n;
                        $(this).stop().animate({'left':animateL+'px'},iSet.Interval,iSet.Easing);
                    });
            }).eq(iSet.Cur).trigger(iSet.Type);
        });
    }
})(jQuery);

如何调用?
1、在页面中引入上面的插件代码;
2、$(selectmain).iAccordion({…});
3、相关参数及功能,请参考插件中的注释说明。
小小的提示,若需要定义Easing,需要导入jQuery.easing插件 ,Easing的参数即jQuery.easing的方法名称,如easeOutBounce、easeOutQuint等。

Javascript 相关文章推荐
『jQuery』.html(),.text()和.val()的概述及使用
Apr 22 Javascript
js阻止事件追加的具体实现
Oct 15 Javascript
js带缩略图的图片轮播效果代码分享
Sep 14 Javascript
使用jquery给指定的table动态添加一行、删除一行
Oct 13 Javascript
原生js轮播(仿慕课网)
Feb 15 Javascript
js每隔两秒输出数组中的一项(实例)
May 28 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
Jun 13 Javascript
javascript cookie的基本操作(添加和删除)
Jul 24 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
Nov 11 Javascript
Angularjs实现控制器之间通信方式实例总结
Mar 27 Javascript
vue调试工具vue-devtools安装及使用方法
Nov 07 Javascript
Vue组件模板及组件互相引用代码实例
Mar 11 Javascript
文本域光标操作的jQuery扩展分享
Mar 10 #Javascript
jquery插件开发之实现google+圈子选择功能
Mar 10 #Javascript
js实现通用的微信分享组件示例
Mar 10 #Javascript
jquery基础教程之数组使用详解
Mar 10 #Javascript
查询json的数据结构的8种方式简介
Mar 10 #Javascript
js 3秒后跳转页面的实现代码
Mar 10 #Javascript
php is_numberic函数造成的SQL注入漏洞
Mar 10 #Javascript
You might like
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
php注销代码(session注销)
2012/05/31 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
2015/12/18 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
js加解密 脚本解密
2008/02/22 Javascript
jquery 缓存问题的几个解决方法
2013/11/11 Javascript
JS实现动态给图片添加边框的方法
2015/04/01 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
2015/07/05 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
3分钟掌握常用的JS操作JSON方法总结
2017/04/25 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
2017/09/11 jQuery
VUE2实现事件驱动弹窗示例
2017/10/21 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
详解Python迭代和迭代器
2016/03/28 Python
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
德国BA保镖药房中文网:Bodyguard Apotheke
2021/03/09 全球购物
受欢迎的大学生自我评价
2013/12/05 职场文书
接受捐赠答谢词
2014/01/27 职场文书
优秀学生干部推荐材料
2014/02/03 职场文书
岗位职责说明书
2014/05/07 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
试用期工作表现自我评价
2015/03/06 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
班级管理经验交流材料
2015/11/02 职场文书