亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue項(xiàng)目網(wǎng)頁(yè)自適應(yīng)等比例放大縮小實(shí)例代碼

 更新時(shí)間:2022年11月29日 08:54:43   作者:歐根老婆的狗  
等比例縮放可以在不同的分辨率下都能夠一屏展示,不會(huì)有滾動(dòng)條的問題,也不會(huì)有適配問題,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目網(wǎng)頁(yè)自適應(yīng)等比例放大縮小的相關(guān)資料,需要的朋友可以參考下

同樣是,雖然標(biāo)題寫的vue項(xiàng)目適用,但其它前端框架應(yīng)該也可以。其它框架我沒什么經(jīng)驗(yàn),可以參考著看看,應(yīng)該適用。

本文章不涉及第三方插件,純js。

自適應(yīng)這個(gè)問題,老早以前就有一個(gè)解決方式,css中的%,比如height:100%; width:100%;給主容器賦予該樣式,那主容器就可以自適應(yīng)屏幕,但里面的內(nèi)容不會(huì),如果要里面的內(nèi)容也自適應(yīng),那里面也得寫%,但問題隨之而來,font-size呢?

%雖然現(xiàn)在依然有用,但現(xiàn)在的項(xiàng)目很多都有設(shè)計(jì)稿,比如我接觸比較多的數(shù)據(jù)大屏,這類網(wǎng)頁(yè),長(zhǎng)寬比是固定的,%無法解決字體自適應(yīng)的問題。熟悉rem的,可以用rem,這個(gè)單位類似于微信小程序的rpx,算是自適應(yīng)屬性,但我沒用過,不講,今天的主角不是它。

接下來就是正文了。在長(zhǎng)寬比固定的情況下,網(wǎng)頁(yè)自適應(yīng),其實(shí)就是將網(wǎng)頁(yè)等比例放大或者縮小。我們提出一個(gè) 設(shè)想,在網(wǎng)頁(yè)初始化的時(shí)候,正確地放大或者縮小網(wǎng)頁(yè),來適應(yīng)屏幕;并在瀏覽器顯示區(qū)域發(fā)生變化時(shí),修改放大或者縮小的比例,使網(wǎng)頁(yè)始終能夠適應(yīng)屏幕。

放大和縮小,有什么現(xiàn)有的方法或者樣式嗎?有, css中的 zoom 以及 scale(),淺講一下兩個(gè)樣式的不同之處:

zoom:

        1. 使用該樣式的標(biāo)簽會(huì)等比例縮放。zoom:0.5 (縮放50%),zoom:2(放大兩倍)。

        2. 縮放的基準(zhǔn)點(diǎn)在原容器的左上角(應(yīng)該沒記錯(cuò),想證實(shí)的可以自己試試),意思就是,使用zoom放大縮小,原容器的左上角作為原點(diǎn)不動(dòng),然后邊長(zhǎng)放大縮小。在數(shù)學(xué)里的話,差不多就是原點(diǎn)固定,然后在第四象限放大縮小。

        3. 火狐firefox不支持。

scale():

        1. 使用該樣式的標(biāo)簽也會(huì)放大縮小,不過它可以讓長(zhǎng)寬獨(dú)立放大縮小。transform: scale(2, 2); (放大兩倍),transform: scale(0.5, 2); (水平方向縮放50%,垂直方向放大2倍)。

        2. 縮放的基準(zhǔn)點(diǎn)在原容器的中心,意思大概是以原容器中心為原點(diǎn),然后想一二三四象限擴(kuò)張火收縮。

        3. 火狐firefox支持。

對(duì)比下來,scale()優(yōu)勢(shì)明顯,我們就用scale(),它是css3的屬性,我們不考慮什么兼容問題,現(xiàn)在還不支持css3的瀏覽器,我都不稀罕用。如果非要用zoom,也可以,因?yàn)榇a方面差不多。

既然上面的 設(shè)想 可以有方法實(shí)現(xiàn),現(xiàn)在就剩最后一個(gè)問題了,縮放多少呢?

場(chǎng)景假設(shè):我們以設(shè)計(jì)稿 1920px*1080px為例,但是現(xiàn)在我們的屏幕沒有1920*1080,或者瀏覽器沒有最大化,就占了屏幕的一半,這時(shí)候很可能瀏覽器長(zhǎng)寬比連16:9都不是,我們可以寬度做基準(zhǔn),高度來適應(yīng)寬度(高度為基準(zhǔn),寬度適應(yīng)高度也可以,看場(chǎng)景和具體需要)。設(shè)計(jì)稿的寬度是1920px,而瀏覽器可視寬度是 window.innerWidth,我們需要在瀏覽器可視范圍內(nèi)自適應(yīng)縮放容器,也就是在 window.innerWidth 的寬度中來顯示 1920px的東西,那我們的 縮放比例 就是 window.innerWidth / 1920。

所有問題都解決了,現(xiàn)在就來實(shí)現(xiàn)我們的設(shè)想。下面我以scale()為例了。

 在網(wǎng)頁(yè)初始化的時(shí)候,正確地放大或者縮小網(wǎng)頁(yè),來適應(yīng)屏幕。翻譯:mounted() 的時(shí)候scale()主容器。

mounted() {
    var browerWidth = window.innerWidth; //瀏覽器可視寬度
    var baseWidth = 1920; //設(shè)計(jì)稿寬度
    var zoomValue = browerWidth / baseWidth; //縮放比例計(jì)算
    document.getElementById("mainContainer").style.transform = 
        "scale(" + zoomValue + "," + zoomValue + ")"; //mainContainer為主容器id
}

在瀏覽器顯示區(qū)域發(fā)生變化時(shí),修改放大或者縮小的比例,使網(wǎng)頁(yè)始終能夠適應(yīng)屏幕。翻譯:窗口尺寸變化時(shí),重新計(jì)算縮放比例,并重新scale()主容器。

window.onresize = function () {
      var browerWidth = window.innerWidth;
      var baseWidth = 1920;
      var zoomValue = browerWidth / baseWidth;
      document.getElementById("mainContainer").style.transform = 
        "scale(" + zoomValue + "," + zoomValue + ")";
    }

整合一下:

mounted() {
    var browerWidth = window.innerWidth; //瀏覽器可視寬度
    var baseWidth = 1920; //設(shè)計(jì)稿寬度
    var zoomValue = browerWidth / baseWidth; //縮放比例計(jì)算
    document.getElementById("mainContainer").style.transform = "scale(" + zoomValue + "," + zoomValue + ")"; //mainContainer為主容器id
    window.onresize = function () { //窗口尺寸變化時(shí),重新計(jì)算和縮放
      browerWidth = window.innerWidth;
      zoomValue = browerWidth / baseWidth;
      document.getElementById("mainContainer").style.transform = "scale(" + zoomValue + "," + zoomValue + ")";
    }
}

到這里,自適應(yīng)的內(nèi)容已經(jīng)結(jié)束,但還不完美。如果顯示區(qū)域的比例不是16:9。兩種情況:

        1. 寬度更大,高度為了適應(yīng)寬度,會(huì)導(dǎo)致垂直方向顯示不全,需要上下滾動(dòng)顯示。這個(gè)就改成以高度為基準(zhǔn)。上面的 場(chǎng)景假設(shè) 有提到。

        2. 高度更大,或者使用了1的解決方法。因?yàn)轱@示區(qū)域不是16:9,而設(shè)計(jì)稿是16:9,總會(huì)有部分區(qū)域不屬于主容器,那這部分區(qū)域就是白色的很難看,像這樣:

這個(gè)問題其實(shí)就很簡(jiǎn)單了,我們給主容器再套一個(gè)父容器,父容器來設(shè)置背景色填充留白。父容器的樣式這么寫(自適應(yīng)窗口,并讓子元素水平垂直居中,留白部分用背景色填充):

#app {
  width: 100vw;
  height: 100vh;
  background: rgb(24, 25, 35);
  display: flex;
  align-items: center;
  justify-content: center;
}

最終效果圖:

總結(jié)

到此這篇關(guān)于vue項(xiàng)目網(wǎng)頁(yè)自適應(yīng)等比例放大縮小的文章就介紹到這了,更多相關(guān)vue網(wǎng)頁(yè)自適應(yīng)等比例放大縮小內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vant4 封裝日期段選擇器的實(shí)現(xiàn)

    vant4 封裝日期段選擇器的實(shí)現(xiàn)

    本文主要介紹了vant4 封裝日期段選擇器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Vue Spa切換頁(yè)面時(shí)更改標(biāo)題的實(shí)例代碼

    Vue Spa切換頁(yè)面時(shí)更改標(biāo)題的實(shí)例代碼

    本篇文章主要介紹了Vue Spa切換頁(yè)面時(shí)更改標(biāo)題的實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • vue實(shí)現(xiàn)拖拽交換位置

    vue實(shí)現(xiàn)拖拽交換位置

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)拖拽交換位置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue中多個(gè)元素、組件的過渡及列表過渡的方法示例

    Vue中多個(gè)元素、組件的過渡及列表過渡的方法示例

    這篇文章主要介紹了Vue中多個(gè)元素、組件的過渡及列表過渡的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • vue項(xiàng)目打包部署_nginx代理訪問方法詳解

    vue項(xiàng)目打包部署_nginx代理訪問方法詳解

    今天小編就為大家分享一篇vue項(xiàng)目打包部署_nginx代理訪問方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue如何實(shí)現(xiàn)表單多選并且獲取其中的值

    vue如何實(shí)現(xiàn)表單多選并且獲取其中的值

    這篇文章主要介紹了vue如何實(shí)現(xiàn)表單多選并且獲取其中的值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • vue實(shí)現(xiàn)前端按鈕組件權(quán)限管理

    vue實(shí)現(xiàn)前端按鈕組件權(quán)限管理

    這篇文章主要為大家介紹了vue實(shí)現(xiàn)前端按鈕組件權(quán)限管理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • vue-cli瀏覽器實(shí)現(xiàn)熱更新的步驟

    vue-cli瀏覽器實(shí)現(xiàn)熱更新的步驟

    這篇文章主要介紹了vue-cli-瀏覽器實(shí)現(xiàn)熱更新,最常用的是webpack-dev-server,它是一個(gè)小型的Node.js?Express服務(wù)器,它使用webpack-dev-middleware來服務(wù)于webpack的包,本文結(jié)合實(shí)例代碼介紹的非常詳細(xì),需要的朋友參考下吧
    2024-03-03
  • Vue開發(fā)中常見的套路和技巧總結(jié)

    Vue開發(fā)中常見的套路和技巧總結(jié)

    這篇文章主要給大家介紹了關(guān)于Vue開發(fā)中常見的套路和技巧的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • vue實(shí)現(xiàn)簡(jiǎn)易的雙向數(shù)據(jù)綁定

    vue實(shí)現(xiàn)簡(jiǎn)易的雙向數(shù)據(jù)綁定

    這篇文章主要介紹了vue如何實(shí)現(xiàn)簡(jiǎn)易的雙向數(shù)據(jù)綁定,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-12-12

最新評(píng)論