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 相关文章推荐
把html页面的部分内容保存成新的html文件的jquery代码
Nov 12 Javascript
jquery 获取表单元素里面的值示例代码
Jul 28 Javascript
IE下写xml文件的两种方式(fso/saveAs)
Aug 05 Javascript
使用jQuery获取data-的自定义属性
Nov 10 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
May 15 Javascript
Angular ng-repeat 对象和数组遍历实例
Sep 14 Javascript
vue.js表格分页示例
Oct 18 Javascript
vue中使用element-ui进行表单验证的实例代码
Jun 22 Javascript
vue动态禁用控件绑定disable的例子
Oct 28 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
Jul 24 Javascript
JavaScript实现多层颜色选项卡嵌套
Sep 21 Javascript
vue3使用vuedraggable实现拖拽功能
Apr 06 Vue.js
文本域光标操作的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 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
用javascript getComputedStyle获取和设置style的原理
2008/10/10 Javascript
js继承 Base类的源码解析
2008/12/30 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
jquery树形菜单效果的简单实例
2016/06/06 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
2016/10/10 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
JavaScript实现简单动态进度条效果
2018/04/06 Javascript
js实现选项卡效果
2020/03/07 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
django2笔记之路由path语法的实现
2019/07/17 Python
Python中itertools的用法详解
2020/02/07 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
python使用Word2Vec进行情感分析解析
2020/07/31 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
东方电视购物:东方CJ
2016/10/12 全球购物
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
国际象棋商店:The Chess Store
2018/07/09 全球购物
什么是类的返射机制
2016/02/06 面试题
精选干货:Java精选笔试题附答案
2014/01/18 面试题
大学生村官典型材料
2014/01/12 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
创业计划书之外语培训班
2019/11/02 职场文书
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers