owl-carousel 幻燈片插件 reinit/reload(重新渲染)

前言:最近項目中有個需求,對一個幻燈片的區(qū)域內(nèi)容進行替換,然后重新渲染;如果用owlCarousel直接去初始化的話會出現(xiàn)無法渲染成功的問題.(使用的版本是1.3.3)

下面就是實現(xiàn)的思路:

1.先查看的owlCarousel對jquery的擴展代碼:
  $.fn.owlCarousel = function (options) {
        return this.each(function () {
            if ($(this).data("owl-init") === true) {
                return false;
            }
            $(this).data("owl-init", true);
            var carousel = Object.create(Carousel);
            carousel.init(options, this);
            $.data(this, "owlCarousel", carousel);
        });
    };

從代碼中可以看出這個owlCarousel函數(shù)中,先實例化了一個Carousel類,并執(zhí)行了其中的init方法,完成幻燈片的初始化,并往當(dāng)前的選擇的元素中用$.data()方法附加了一個"owl-init"的狀態(tài)和owlCarousel實例的數(shù)據(jù).

2.查看owlCarousel類:
...
reinit : function (newOptions) {
            var base = this,
                options = $.extend({}, base.userOptions, newOptions);
            base.unWrap();
            base.init(options, base.$elem);
        },
...

可以發(fā)現(xiàn)這個owlCarousel類有一個reinit,既然Carousel類的實例附加到指定的元素中,那么重新拿到這個Carousel類實例就可以調(diào)用這個reinit方法,實現(xiàn)將當(dāng)前的元素的幻燈片內(nèi)容重新渲染

3.外部代碼實現(xiàn)
var shanghuiOwl;
        
        function shanghuiSlide(selector,firstLoad){

            var html = '//被替換的內(nèi)容';

            $('#owl-demo').html(html);
            
            if(firstLoad){//如果是頁面第一次打開的話直接調(diào)用owlCarousel實現(xiàn)初始化
                shanghuiOwl = $('#owl-demo').owlCarousel({
                    items: 1,
                    autoPlay: true,
                });
            }else{
                shanghuiOwl.data("owlCarousel").reinit({
                    items: 1,
                    autoPlay: true,
                });
            }
        }
5.實現(xiàn)效果

首次加載第一張圖顯示一張貓頭鷹


WX20181119-085542@2x.png

點擊切換之后第一張被換成一張粉色的圖片


WX20181119-085708@2x.png

最后,這就是owlCarousel插件實現(xiàn)幻燈片內(nèi)容更換后重新渲染的全部經(jīng)過.(ps:查看源碼有時可以有不一樣的收獲)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,201評論 3 119
  • 第4章 Bootstrap裝飾插件 JavaScript是網(wǎng)頁上事實上的腳本語言。流行的網(wǎng)頁功能,例如:漂亮的圖片...
    海上名月閱讀 1,737評論 5 6
  • 今天,本還在為寫什么而頭痛,波瀾不驚的一天,該怎么記錄,這個365天百字文,真是個套啊! 隨手拿起前幾天買的黃永厚...
    墨語花開時閱讀 210評論 0 1
  • 今天和家屬一起追了一個電影《殺破狼》,本來是沖著古天樂的顏值去的,以為又是宣揚英雄主義的一部警匪大片,卻是...
    胡永群閱讀 728評論 0 51
  • 本組共9人 應(yīng)交作業(yè)人數(shù)9人,實交作業(yè)人數(shù)9人。 應(yīng)點評人數(shù)9人,準(zhǔn)時點評8人,1人未點評。 3組最佳文章:作者林...
    吾心自足閱讀 237評論 0 0

友情鏈接更多精彩內(nèi)容