Hi Again, I was wandering if you could have a look at the test page I made:
there are two portions - one is pages (home/about/contact) and second (home-2/about-2/contact-2)
the first one has a white page transition lottie animation and it works seamlessly - you can’t see any jumping of the page…
the second part has a different transition with staggered circles… I have used the same settings and everything (the only difference I placed elements into symbols) but there is a flicker when pages change - and I can’t figure out why is it not working as seamlessly as the first one
@tai - If its not too much trouble please have a look - if you can help me solve this!
It is super easy yes, I’ve just put it wayyyyy too much into a test project I am doing. It’s like Lottie city up there.
I think though it would be even easier if it was in the UI. I’m imagining it like the background image style panel, so you can set cover or whatever style you want. Make it a little more user friendly.
Well if they are going to implement it, all the options for various modes should be included… If I understand they have same options that are equivalent to objectfit: - cover, contain etc…
That being said it would be great if the objectfit would also be added
Hi sabanna, thanks so much for this code! I was looking for this for days!
The code works for now to show the website to the client, but it only works when I set my lottie animation on svg render. The problem is, on svg render the animation starts flickering when scrolling (it’s an animation on scroll).
I’ve found a solution that is a bit more bulletproof than the setTimeout and window.load solutions. Both have their flaws, but this one uses the MutationObserver to dynamically update the SVG the moment it is added to the DOM. The solution is by no means perfect, and can definitely be improved upon I’m sure, but here it is regardless:
const targetNodes = document.querySelectorAll('.lottie-video-canvas');
const config = {
attributes: true,
childList: true,
subtree: false
};
const callback = function (mutationsList, observer) {
for (let mutation of mutationsList) {
if (mutation.type === 'childList') {
mutation.target.querySelector("svg").setAttribute("preserveAspectRatio", "none");
observer.disconnect();
}
}
};
if (targetNodes) {
for (var x = 0; x < targetNodes.length; x++) {
const observer = new MutationObserver(callback);
observer.observe(targetNodes[x], config);
}
}
I have three of these Lottie animations on my page, hence the for loop. Let me know what you think.
Thanks for the code!
Can you give me advice in what I need to change in the code to fit my website?
I guess I have to change the .lottie-video-canvas into my class where the json file is embedded?
And is this a code that would get rid of the flickering? Sorry, I have no clue about jquery codes
Basically my problem is if i change it to svg rendering it is flickering but full screen, if i change it to canvas render (which would be the better solution for my animation) then the animation isn’t full screen.
Apologies for the late reply, but if you’re able to share a published version of the site I can debug it a bit easier. And hopefully sooner than in 16 days haha.