使用计算开关在CSS中定义v-img的top属性
P粉704196697
P粉704196697 2023-08-30 23:50:32
[Vue.js讨论组]
<p>我想根据窗口的当前断点定义v-img的top属性。</p> <p>我想这样定义:</p> <pre class="brush:php;toolbar:false;">&lt;v-img contain id=&quot;logo-transparent&quot; :top=&quot;logoTop&quot; :width=&quot;logoWidth&quot; :src=&quot;logoTransparent&quot; class=&quot;hidden-xs-only&quot;&gt;&lt;/v-img&gt;</pre> <p>计算属性如下:</p> <pre class="brush:php;toolbar:false;">logoTop(){ switch (this.$vuetify.breakpoint.name) { case 'xl': return &quot;-4%&quot; case 'lg': return &quot;-6%&quot; case 'md': return &quot;-8%&quot; case 'sm': return &quot;-8%&quot; case 'xs': return 0 default: return &quot;-4%&quot; } },</pre> <p>CSS如下:</p> <pre class="brush:php;toolbar:false;">#logo-transparent{ z-index: 1; width: 400px; height: 300px; position: absolute; right: -1%; }</pre> <p>但问题是v-img没有top属性。</p> <p>我想使用计算属性来定义图像的CSS,如下所示:</p> <pre class="brush:php;toolbar:false;">logoTop(){ return { &quot;--top-property&quot; : switch (this.$vuetify.breakpoint.name) { case 'xl': return 400 case 'lg': return 300 case 'md': return 300 case 'sm': return 200 case 'xs': return 0 default: return 400 } } },</pre> <p>在CSS中使用它的方法如下:</p> <pre class="lang-css prettyprint-override"><code>top : var(--top-property) </code></pre> <p>但似乎我不能在这种情况下使用switch。</p> <p>我该如何做呢?</p>
P粉704196697
P粉704196697

全部回复(2)
P粉300541798

您原来的logoTop计算属性可以在样式绑定中用于设置v-imgtop位置:

<template>
  <v-img :style="{ top: logoTop }" ... />
</template>

<script>
export default {
  computed: {
    logoTop() {
      switch (this.$vuetify.breakpoint.name) {
        case 'xl': return "-4%"
        case 'lg': return "-6%"
        case 'md': return "-8%"
        case 'sm': return "-8%"
        case 'xs': return 0
        default: return "-4%"
      }
    },
  }
}
</script>

演示

P粉462328904

switch不返回任何内容。你应该像这样使用一个变量

logoTop() {
    let topProperty;
    switch (this.$vuetify.breakpoint.name) {
        case 'xl':
            topProperty =  400;
            break;
        case 'lg':
        case 'md':
            topProperty =  300;
            break;
        case 'sm':
            topProperty =  200;
            break;
        case 'xs':
            topProperty =  0;
            break;
        default:
            topProperty = 400;
    }
    return {
        "--top-property" : topProperty
    }
},

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号