Well, I'm using a owl-carousel-2 plugin now.
And I encounter the following problem:
The markup code:
<div class="owl-carousel" style="display: none;">
<div class="item"><img src="..." /></div>
<div class="item"><img src="..." /></div>
<!-- ... -->
<div class="item"><img src="..." /></div>
</div>
<script>
$(function() {
var $owl = $('.owl-carousel');
$owl.owlCarousel();
// Doing many things here.
$owl.show();
});
</script>
The problem is:
When I initialize with the $owl.owlCarousel();
statement, which under an hidden state, its size is not initialized.
So when I show that control, the control displays in a mess!
But when I resize the window, it seemed to be triggering a re-render. The control render the contents, then displayed well.
So I'm wondering if there is a way to trigger this re-render (or refresh) method on it.
In order to make sure the control won't display in a mess.
I tried to read the documents and sources, but not yet have a good solution.
Please help.
I found out an ugly, dirty solution. Anyway, it worked:
Main procedure:
It worked, but in such a dirty way. Hoping to see a better, neat solution.
With Owl Carousel 2 you reinitialize like so:
see this issue.
This works for me:
More information: http://owlgraphic.com/owlcarousel/demos/manipulations.html
This is my solution, based on fish_ball's clever workaround:
Have you read the documentation of the plugin you are using, because the owl carousel has a refresh method when you want to update the carousel.
The docs are here for events
Ran into the same issue with OP. I manage to get it to work by first removing the
owl-loaded
class. Then on render, trigger a refresh event after re-adding the class.