Git Product home page Git Product logo

Comments (11)

josh9060 avatar josh9060 commented on July 17, 2024 1

I've been looking into this issue - can't seem to find a fix. Any updates?

UPDATE:

It seems that setting lazy-load to true and using the "data-flickity-lazyload" as the default src option fixes this problem.

from vue-flickity.

drewjbartlett avatar drewjbartlett commented on July 17, 2024

@freshlySqueezedBananas could you provide me with a codepen example?

from vue-flickity.

pmochine avatar pmochine commented on July 17, 2024

Same problem for me. Just don't have the time for a codepen sorry.

But I used:

<flickity ref="flickity" :options="flickityOptions" v-if="windowWidth < 768">

				<destinations-list 
					v-for="(list, index) in lists" 
					:key="index" 
					:list="list"
					:class="'blog-container'"></destinations-list>
			</flickity>

With destinations-list.vue

 <template>
<div class="p-2">
	<a 
	:href="/test">
		<div class="blog-card box-shadow-none rounded-0" :class="location">
	
			<div class="title-content">
			    <h5 class="osans text-uppercase">{{ list[0] }}</h5>
			    <hr />
		    	<div class="intro bfont"><em>{{ list[1] }}</em></div>
		  	</div>

			<div class="card-info bfont">
				<div>
				{{ list[2] }}
				</div> 
			</div>

			<div class="gradient-overlay"></div>
			<div class="color-overlay"></div>
		</div>
	</a>
</div>
</template>

It doesn't work. The divs are not inside of the slider...

from vue-flickity.

drewjbartlett avatar drewjbartlett commented on July 17, 2024

hmmm maybe a scoped slot could solve this? Now that I know the issue I can attempt to fix :D Thanks!

from vue-flickity.

edtownend avatar edtownend commented on July 17, 2024

As a fix I'd suggest wrapping the new Flickity call inside the init method in a this.$nextTick. Happy to make a PR if needed.

from vue-flickity.

Rrrafau avatar Rrrafau commented on July 17, 2024

Experiencing same issue here.

@edtownend what do you mean by "flickity call", can you please elaborate?

In the parent component I've tried doing:

mounted() {
    this.$nextTick(function() {
        this.$refs.flickity.rerender()
    })
}

But that doesn't always work. Wrapping rerender call in a timeout of like 100ms seems to be fixing it for me but that's a very hacky solution

from vue-flickity.

edtownend avatar edtownend commented on July 17, 2024

I think the reason that's not working for you is that at the time the parent component is mounted, the child vue-flickity component won't be mounted yet. Instead I think it should be in the init() method on the actual component, eg.

init() {
      this.$nextTick(() => {
          this.$flickity = new Flickity(this.$el, this.options);
          this.$emit('init', this.$flickity);
    });
},

I'm not actually using this component as I'd already written my own that does exactly the same thing, but that's working for me.

from vue-flickity.

fatihgune avatar fatihgune commented on July 17, 2024

Heres a quick workaround for future visitors; for the first render don't load your component until the array is populated and upon updating the array re-render the whole component via a v-if flag that's being toggled in the server call. Additionally wrapping vue's transition component around your component will actually make it behave sort of normal.

from vue-flickity.

davidjmz avatar davidjmz commented on July 17, 2024

Im having this problem too, I have my cells with a v-for and they load correctly, but the slider doesn't work until I change pages, the first load is just cells in top of other cells. Im triyng with v-if for the container, but I got the same result. Any ideas?

from vue-flickity.

roberttolton avatar roberttolton commented on July 17, 2024

Has anyone got a solution for this?

EDIT: Found this
#2 (comment)

And it works, although using slides.length is fine (if your data is an array), not sure why the comment uses Object.keys.

from vue-flickity.

alnazer avatar alnazer commented on July 17, 2024
			<destinations-list 
				v-for="(list, index) in lists" 
				:key="index" 
				:list="list"
				:class="'blog-container'"></destinations-list>
		</flickity>

from vue-flickity.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.