You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Vue文件中为v-navigation-drawer设置CSS背景图片?

解决Vuetify导航抽屉本地背景图的问题

嘿,我来帮你搞定这个导航抽屉的背景图设置问题~其实有两种常用的方法,看你需求选就行:

方法一:直接在scoped样式中使用相对路径

这种方法最简单,不需要额外的JS代码,直接在style里写就行。注意几个关键点:

  • 本地图片路径要用url()包裹,Vue项目里可以用~@指向src目录(@是Vue默认配置的别名),这样不管组件在哪个层级,路径都不会出错
  • 你原来写的rgba(-1, 0, 0, 0)是无效的,rgba的颜色值范围是0-255,所以应该改成rgba(0, 0, 0, 0)或者直接用transparent

修改后的样式代码:

<v-navigation-drawer mini-variant dark app permanent class="withBackground" >
  <!-- 抽屉内容 -->
</v-navigation-drawer>

<style scoped>
.withBackground {
  background-color: transparent; /* 或者 rgba(0, 0, 0, 0) */
  background-image: url('~@/assets/image.jpg');
  /* 可以再加一些优化样式,让背景图显示更好 */
  background-position: center center;
  background-size: cover;
}
</style>

方法二:通过import导入图片后动态绑定样式

如果之后需要动态切换背景图,或者想在JS里控制样式,就适合用这种方法:

  1. 先在script里导入本地图片
  2. 在data中定义样式对象
  3. 给导航抽屉绑定:style属性

完整代码示例:

<template>
  <v-navigation-drawer 
    mini-variant 
    dark 
    app 
    permanent 
    :style="drawerBackgroundStyle"
  >
    <!-- 抽屉内容 -->
  </v-navigation-drawer>
</template>

<script>
// 导入本地图片
import drawerBg from '@/assets/image.jpg'

export default {
  data() {
    return {
      drawerBackgroundStyle: {
        backgroundColor: 'transparent',
        backgroundImage: `url(${drawerBg})`,
        backgroundPosition: 'center',
        backgroundSize: 'cover'
      }
    }
  }
}
</script>

小提示

两种方法都能生效,选哪种看你的需求:

  • 静态背景图选方法一,简单省心
  • 需要动态控制背景图(比如切换主题时换图)选方法二,灵活性更高

内容的提问来源于stack exchange,提问作者xetra11

火山引擎 最新活动