Magento – Magento2 :owl carousel and other custom extension js not working on first time page load

banner-sliderknockoutjsmagento2requirejs

I am using owl carousel on my magento 2 website. I have created a custom module for that.

While I am loading my website first time owl carousel slider is not appearing,.

When I move to other page and comeback to home page slider is appearing.

Can anyone help on this.

requirejs-config.js

var config = {
    map: {
        "*": {
            bannerowlcarousel: "Vendor_Banner/js/owl.carousel.min"
        }
    }
};

banner.phtml

<script type="text/javascript">
    require([
        'jquery',
        'bannerowlcarousel'
    ], function ($) {
        $("#banner-slider-demo-1").owlCarousel({
            items: 1,
            autoplay: true,
            autoplayTimeout: 5000,
            autoplayHoverPause: true,
            dots: true,
            nav: true,
            navRewind: true,
            animateIn: 'fadeIn',
            animateOut: 'fadeOut',
            loop: true,
            navText: ["<em class='icon-left'></em>","<em class='icon-right'></em>"]
        });
    });
</script>

Best Answer

requirejs-config.js :

var config = {
"map": {
    "*": {
        "OwlCarousel": "<vodeorname>_<modulename>/js/owl-carousel"
    }
}

};

phtml Template :

<?php $items = $this->getItemCollection()->getData(); ?>

<div id="owl-demo" data-mage-init='{
"OwlCarousel":{
    "autoPlay": 3000,
    "items" : 2,
    "itemsDesktop" : [1199,3],
    "itemsDesktopSmall" : [979,3]
   }
 }'>
   <?php foreach ($items as $item) { ?>
    <div class="item"><img src="<?php echo $this->imageurl . $item['item_image']; ?>" alt="Owl Image"></div>
<?php } ?>
</div>

Let me know if you have an issue.

Related Topic