vue svg动画

<template>
    <span ref="dblclickbox" class="like-style">
        <div ref="lottie" class="like-motion" style="display: none"></div>
    </span>
</template>
<script>
import Lottie from 'lottie-web';
import LikeAnim from '@/js/animation/terminal_like.json';

export default {
    props: {
        isDisplay: {
            type: Boolean,
            required: true
        },
        isLike: {
            type: Boolean,
            required: true
        }
    },
    watch: {
        isDisplay(value, ol) {
            // console.log('watch----', value, this.isLike);
            if (value) {
                this.$refs.lottie.style.display = 'block';
                this.likeMotion.play();
                // isDisplay还原,否则下次点击不会触发watch
                this.$emit('update:isDisplay', false);
                !this.isLike && this.$emit('actionLike');

                setTimeout(() => {
                    this.likeMotion.stop();
                    this.$refs.lottie.style.display = 'none';
                }, this.likeMotion.getDuration() * 1000);
            }
        }
    },
    mounted() {
        let that = this;
        that.likeMotion = Lottie.loadAnimation({
            container: that.$refs.lottie,
            renderer: 'svg',
            loop: true,
            autoplay: false,
            animationData: LikeAnim
        });
    }
};
</script>

<style lang="scss" scoped>
.like-style {
    .like-motion {
        position: fixed;
        top: -10%;
        left: 0;
        right: 0;
        z-index: 4;
        background: rgba(0, 0, 0, 0.3);
    }
}
</style>


全部评论
感谢大佬分享!!!!
点赞 回复 分享
发布于 2022-01-16 17:01

相关推荐

Bug压路:老哥看得出来你是想多展示一些项目,但好像一般最多两个就够了😂页数一般一页,多的也就2页;这些项目应该是比较同质化的,和评论区其他大佬一样,我也觉得应该展示一些最拿手的(质量>数量)😁😁😁专业技能部分也可以稍微精简一些
点赞 评论 收藏
分享
头像
09-29 16:18
门头沟学院 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务