jquery外掛程式開發之實現jquery手風琴功能

來源:互聯網
上載者:User

 需要一個手風琴效果,就動手寫了一個。其實有多個現成的jQuery手風琴外掛程式可以用,但對比了一下,總感覺有些笨重,還是自己寫的脈絡自己最清楚,擴充起來也更容易些

可用於圖片或者容器,使用與常規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等。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.