随机背景案例

14 篇文章 5 订阅

随机背景案例

本文主要是展示使用自定义vue指令来实现的案例。它主要用于在网络环境差的情况下,图片可能会加载不出来,这时我们可以让原本应该显示图片的地方使用一个随机背景色来填充,在图片装载完成后使用图片来覆盖原来填充了随机色的地方。
代码如下:

<template>
    <div v-img="'src/assets/logo.png'"></div>
</template>

<script setup lang="ts">
import { Directive, DirectiveBinding} from 'vue'

// 自定义指令
const vImg: Directive = {
    mounted(el: HTMLElement, binding: DirectiveBinding) {
        //console.log(el)
        // 定义一个随机的 6 位数
        let color = Math.floor(Math.random() * 1000000)
        //console.log(color);
        el.style.backgroundColor = '#' + color

        //console.log(binding.value);
        // 创建 image 对象
        const img = new Image()
        img.src = binding.value
        img.onload = () => {
            el.style.backgroundImage = 'url(' + img.src + ')'
        }
    }
}

</script>

<style>
body,html,#app {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}
div {
    width: 100%;
    height: 100%;
}
</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值