国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Element-ui的Carousel走馬燈組件動(dòng)態(tài)渲染高度

這篇具有很好參考價(jià)值的文章主要介紹了Element-ui的Carousel走馬燈組件動(dòng)態(tài)渲染高度。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

在前端vue項(xiàng)目開發(fā)中經(jīng)常會(huì)用到走馬燈的場(chǎng)景,然而在采用Element-ui的情況下,el-carousel走馬燈組件有一個(gè)默認(rèn)的固定高度300px。如下所示:

.el-carousel__container {
    position: relative;
    height: 300px; // element-ui 默認(rèn)高度
}

這樣會(huì)導(dǎo)致網(wǎng)頁(yè)的全屏的banner被壓縮或拉伸,變形十分難看,在一個(gè)認(rèn)真的切圖仔眼里是無(wú)法容忍的。然而業(yè)務(wù)方在使用的時(shí)候沒有按照相關(guān)圖片規(guī)范來(lái)上傳符合規(guī)格的圖片大小。所以我們需要在程序中開發(fā)根據(jù)業(yè)務(wù)后臺(tái)上傳的圖片大小來(lái)動(dòng)態(tài)渲染走馬燈的高度。
下面我們來(lái)看看具體的代碼實(shí)現(xiàn):

<template>
 <!--banner 組件-->
	<el-carousel
        :height="imgHeight"
        style="width:100%;"
        indicator-position="none"
        :arrow="bannerList.length>1 ? 'hover' : 'never'"
        :loop="true"
        :autoplay="true"
      >
        <el-carousel-item v-for="(item,index) in bannerList" :key="index">
          <template v-if="item.jumpType">
            <el-image ref="image"
              style="width:100%;"
              :src="item.image"
              fit="fit"
              class="banner-img" />
          </template>
        </el-carousel-item>
      </el-carousel>
</template>
<script>
export default {
  props:{
    bannerList:{
      type: Array,
      require: false,
      default: () => []
    }
  },
  data(){
    return {
      imgHeight: ''
    }
  },
  mounted(){
    this.imgLoad();
    // 監(jiān)聽窗口變動(dòng)大小計(jì)算banner高度
    window.addEventListener("resize", () => {
      this.imgLoad()
    });
  },
  methods:{
    // 獲取圖片的實(shí)際長(zhǎng)度和寬度
    getImgAttr (url, callback) {
        let img = new Image()
        img.src = url
        if (img.complete) {
            callback(img.width, img.height);
            // console.log(img.width, img.height, 'img.width, img.height')
        } else {
            img.onload = function () {
                callback(img.width, img.height)
                img.onload = null
            }
        }
    },
    imgLoad() {
      this.$nextTick(function() {
        // 定義頁(yè)面初始的走馬燈高度, 默認(rèn)以第一張圖片高度
        if (this.bannerList.length) {
            this.getImgAttr(this.bannerList[0].image, (width, height) => {
                // 獲取屏寬計(jì)算圖片容器高度
                let screenWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth
                this.imgHeight = height / width * screenWidth + 'px'
                // console.log(this.imgHeight, 'this.imgHeight')
            })
        }
      });
    },
  }
}
</script>

寫到這兒基本上解決了圖片變形問(wèn)題。注意:組件的mounted鉤子中監(jiān)聽屏幕大小改變,在組件銷毀時(shí)監(jiān)聽盡可能的要移除事件監(jiān)聽,這里程序與文章相關(guān)不大省略掉了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-436433.html

到了這里,關(guān)于Element-ui的Carousel走馬燈組件動(dòng)態(tài)渲染高度的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 自定義element-ui走馬燈(輪播)樣式

    自定義element-ui走馬燈(輪播)樣式

    自定義el-carousel-item指示器樣式 把指示器變成圓點(diǎn) 效果圖: ?

    2024年02月13日
    瀏覽(30)
  • Element UI 走馬燈的使用

    Element UI 走馬燈的使用

    目錄 走馬燈是什么 原生js實(shí)現(xiàn) Element UI的走馬燈使用 el-carousel Carousel Events el-carousel-item 在有限空間內(nèi),循環(huán)播放同一類型的圖片、文字等內(nèi)容,走馬燈也叫輪播圖。 比如 ? JS實(shí)現(xiàn)輪播圖效果(同時(shí)播放音頻)_trigger333的博客-CSDN博客 Element - The world\\\'s most popular Vue UI framework 代

    2024年02月02日
    瀏覽(28)
  • ElementUI淺嘗輒止14:Carousel 走馬燈

    在有限空間內(nèi),循環(huán)播放同一類型的圖片、文字等內(nèi)容 結(jié)合使用 el-carousel 和 el-carousel-item 標(biāo)簽就得到了一個(gè)走馬燈?;脽羝膬?nèi)容是任意的,需要放在 el-carousel-item 標(biāo)簽中。默認(rèn)情況下,在鼠標(biāo) hover 時(shí)底部的指示器時(shí)就會(huì)觸發(fā)切換。通過(guò)設(shè)置 trigger 屬性為 click ,可以達(dá)到點(diǎn)

    2024年02月10日
    瀏覽(28)
  • 制作輪播圖經(jīng)驗(yàn)分享——element ui走馬燈的使用(附源碼,效果截圖)

    制作輪播圖經(jīng)驗(yàn)分享——element ui走馬燈的使用(附源碼,效果截圖)

    先附上效果圖: ??element ui鏈接地址:Carousel 走馬燈 | Element Plus (gitee.io) 源碼: 這里我使用的是靜態(tài)圖片(本地) 經(jīng)驗(yàn)分享: 在制作輪播圖的時(shí)候經(jīng)常會(huì)發(fā)現(xiàn)圖片大小不一,這時(shí)候可以在img標(biāo)簽里加上width:100%;height:100%即可實(shí)現(xiàn)圖片鋪滿。 當(dāng)然,這只是輪播圖的一種,還

    2024年02月11日
    瀏覽(25)
  • element-plus走馬燈不顯示

    element-plus走馬燈不顯示

    依賴正確,代碼用法正確,但是element-plu走馬燈就是不顯示!! 并且盒子的寬度總是0 在現(xiàn)有的布局中插入官方的案例,也不能顯示 但是把整個(gè)頁(yè)面都使用官方案例就可以正常顯示 所以,懷疑時(shí)自己的樣式?jīng)_突了 就content一個(gè)盒子,看到 display: flex; 就知道不對(duì)勁,去掉flex布

    2024年02月07日
    瀏覽(21)
  • 簡(jiǎn)單實(shí)現(xiàn)微信小程序?qū)崿F(xiàn)文字從右往左無(wú)縫滾動(dòng)(走馬燈)的組件(類似公告)

    簡(jiǎn)單實(shí)現(xiàn)微信小程序?qū)崿F(xiàn)文字從右往左無(wú)縫滾動(dòng)(走馬燈)的組件(類似公告)

    文章目錄 目錄 文章目錄 概要 代碼部分 wxss部分 wxss部分 js部分 小結(jié) ??最近做一個(gè)微信小程序項(xiàng)目突發(fā)奇想,想到做一個(gè)文字無(wú)縫滾動(dòng)的公告,然后查了好多資料發(fā)現(xiàn)沒看懂他們的想法然后自己想了好久如何才能實(shí)現(xiàn)無(wú)縫滾動(dòng),我發(fā)現(xiàn)好多博主發(fā)出來(lái)的都是不是無(wú)縫滾動(dòng)的

    2024年02月08日
    瀏覽(99)
  • 實(shí)現(xiàn)NoticeBar 通知欄。走馬燈公告欄

    微信小程序封裝公共組件——實(shí)現(xiàn)NoticeBar 通知欄。走馬燈公告欄 代碼如下(示例): index.wxml代碼如下(示例): index.ts 公告通知欄父組件傳notice數(shù)組,組件設(shè)置了timer可以多條進(jìn)行輪播

    2024年02月10日
    瀏覽(60)
  • 用 React+ts 實(shí)現(xiàn)無(wú)縫滾動(dòng)的走馬燈

    用 React+ts 實(shí)現(xiàn)無(wú)縫滾動(dòng)的走馬燈

    走馬燈是一種常見的網(wǎng)頁(yè)交互組件,可以展示多張圖片或者內(nèi)容,通過(guò)自動(dòng)播放或者手動(dòng)切換的方式,讓用戶能夠方便地瀏覽多張圖片或者內(nèi)容。 本次實(shí)現(xiàn)的不是輪播圖而是像傳送帶一樣的無(wú)限滾動(dòng)的形式。 走馬燈可設(shè)置一下屬性: 滾動(dòng)速度 滾動(dòng)方向 一屏要顯示項(xiàng)的個(gè)數(shù)

    2024年02月13日
    瀏覽(24)
  • Proteus仿真--基于51單片機(jī)的走馬燈實(shí)現(xiàn)(仿真文件+程序)

    Proteus仿真--基于51單片機(jī)的走馬燈實(shí)現(xiàn)(仿真文件+程序)

    本文主要介紹基于51單片機(jī)的走馬燈仿真(完整仿真源文件及代碼見文末鏈接) 本設(shè)計(jì)中有16個(gè)LED燈用于流水走馬演示,一位數(shù)碼管用于顯示當(dāng)前模式狀態(tài),3個(gè)按鍵分別用于選擇模式及加減速度控制 仿真圖如下 其中 K1:用于模式切換選擇,有多種模式可切換 K2:加速流水/走

    2024年02月06日
    瀏覽(69)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包