搜尋

首頁  >  問答  >  主體

使用計算開關在CSS中定義v-img的top屬性

<p>我想根據視窗的目前斷點定義v-img的top屬性。 </p> <p>我想這樣定義:</p> <pre class="brush:php;toolbar:false;"><v-img contain id="logo-transparent" :top="logoTop" :width="logoWidth"logoTop" :width="logoWidth" :src=" logoTransparent" class="hidden-xs-only"></v-img></pre> <p>計算屬性如下:</p> <pre class="brush:php;toolbar:false;">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%" } },</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 { "--top-property" : 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粉704196697P粉704196697461 天前492

全部回覆(2)我來回復

  • P粉300541798

    P粉3005417982023-08-31 16:51:55

    您原來的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>
    

    示範

    回覆
    0
  • P粉462328904

    P粉4623289042023-08-31 14:24:05

    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
        }
    },
    
    

    回覆
    0
  • 取消回覆