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

可視化大屏的終極解決方案居然這么簡單,vue-autofit一行全搞定!

這篇具有很好參考價值的文章主要介紹了可視化大屏的終極解決方案居然這么簡單,vue-autofit一行全搞定!。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

可視化大屏適配/自適應現(xiàn)狀

可視化大屏的適配是一個老生常談的話題了,現(xiàn)在其實不乏一些大佬開源的自適應插件、工具但是我為什么還要重復造輪子呢?因為目前市面上適配工具每一個都無法做到完美的效果,做出來的東西都差不多,最終實現(xiàn)效果都逃不出白邊的手掌心,可以解決白邊問題的,要么太過于復雜,要么會影響dom結構。

三大常用方式

  1. vw/vh方案
    1. 概述:按照設計稿的尺寸,將px按比例計算轉為vw和vh
    2. 優(yōu)點:可以動態(tài)計算圖表的寬高,字體等,靈活性較高,當屏幕比例跟 ui 稿不一致時,不會出現(xiàn)兩邊留白情況
    3. 缺點:每個圖表都需要單獨做字體、間距、位移的適配,比較麻煩
  2. scale方案
    1. 概述:也是目前效果最好的一個方案
    2. 優(yōu)點:代碼量少,適配簡單 、一次處理后不需要在各個圖表中再去單獨適配.
    3. 缺點:留白,據(jù)說有事件熱區(qū)偏移,但是我目前沒有發(fā)現(xiàn)有這個問題,即使是地圖也沒有
  3. rem + vw vh方案
    1. 概述:這名字一聽就麻煩,具體方法為獲得 rem 的基準值 ,動態(tài)的計算html根元素的font-size ,圖表中通過 vw vh 動態(tài)計算字體、間距、位移等
    2. 優(yōu)點:布局的自適應代碼量少,適配簡單
    3. 缺點:留白,有時圖表需要單獨適配字體

基于此背景,我決定要造一個簡單又好用的輪子。

解決留白問題

留白問題是在使用scale時才會出現(xiàn),而其他方式實現(xiàn)起來又復雜,效果也不算太理想,總會破壞掉原有的結構,可能使元素擠在一起,所以我們還是選擇使用scale方案,不過這次要做出一點小小的改變。

常用分辨率

首先來看一下我的拯救者的分辨率:

可視化大屏的終極解決方案居然這么簡單,vue-autofit一行全搞定! 它可以代表從1920往下的分辨率

我們可以發(fā)現(xiàn),比例分別是:1.77、1.6、1.77、1.6、1.33... 總之,沒有特別夸張的寬高比。

計算補齊白邊所需的px

只要沒有特別夸張的寬高比,就不會出現(xiàn)特別寬或者特別高的白邊,那么我們能不能直接將元素寬高補過去?也就是說,當屏幕右側有白邊時,我們就讓寬度多出一個白邊的px,當屏幕下方有白邊時,我們就讓高度多出一個白邊的px。

很喜歡CSGO玩家的一句話:"啊?"

先想一下,如果此時按寬度比例縮放,會在下方留下白邊,所以設置一下它的高度,設置多少呢?比如 scale==0.8 ,也就是說整個#app縮小了0.8倍,我們需要將高擴大多少倍才可以回到原來的大小呢?

可視化大屏的終極解決方案居然這么簡單,vue-autofit一行全搞定!

emmm.....

算數(shù)我最不在行了,啟動高材生

可視化大屏的終極解決方案居然這么簡單,vue-autofit一行全搞定!

原來是八分之十,我vue燒了。

當瀏覽器窗口比設計稿大或者小的時候,就應該觸發(fā)縮放,但是比例不一定,如果按照scale等比縮放時,寬度從1920縮小0.8倍也就是1536,而高度縮小0.8也就是743,如果此時瀏覽器高度過高,那么就會出現(xiàn)下方的白邊,根據(jù)高材生所說的,縮小0.8后只需要放大八分之十就可以變回原大小,所以以現(xiàn)在的高度743*1.25=928,使寬度=928px就可以完全充滿白邊!

真的是這樣嗎?感覺哪里不對勁...

是瀏覽器高度!我忽略了瀏覽器高度,我可以直接使用瀏覽器高度乘以1.25然后再縮放達0.8!就是 1 !

也就是說 clientHeight / scale 就等于我們需要的高度!

我們用代碼試一試

function keepFit(designWidth, designHeight, renderDom) {
  let clientHeight = document.documentElement.clientHeight;
  let clientWidth = document.documentElement.clientWidth;
  let scale = 1;
  if (clientWidth / clientHeight < designWidth / designHeight) {
    scale = (clientWidth / designWidth)
    document.querySelector(renderDom).style.height = `${clientHeight / scale}px`;
  } else {
    scale = (clientHeight / designHeight)
    document.querySelector(renderDom).style.width = `${clientWidth / scale}px`;
  }
  document.querySelector(renderDom).style.transform = `scale(${scale})`;
}

上面的代碼可能看起來亂糟糟的,我來解釋一下:

參數(shù)分別是:設計稿的寬高和你要適配的元素,在vue中可以直接傳#app。

下面的if判斷的是寬度固定還是高度固定,當屏幕寬高比小于設計寬高比時,

我們把高度寫成 clientHeight / scale ,寬度也是同理。

最終效果

將這段代碼放到App.vue的mounted運行一下

可視化大屏的終極解決方案居然這么簡單,vue-autofit一行全搞定!

如上圖所示:我們成功了,我們僅用了1 2 3 4....這么幾行代碼,就做到了足以媲美復雜寫法的自適應!

我把這些東西封裝了一個npm包:autofit.js ,開箱即用,歡迎下載!

親手打造集成工具:autofit.js

這是一款可以使你的項目一鍵自適應的工具 github源碼??go

  • 從npm下載
npm i autofit.js
  • 引入
import autofit from 'autofit.js'
  • 快速開始
autofit.init()

默認參數(shù)為1920*929(即去掉瀏覽器頭的1080), 直接在大屏啟動時調用即可

  • 使用
export default {  
  mounted() {
  autofit.init({
        designHeight: 1080,
        designWidth: 1920,
        renderDom:"#app",
        resize: true
    })
  },
}

以上使用的是默認參數(shù),可根據(jù)實際情況調整,參數(shù)分別為

   * - renderDom(可選):渲染的dom,默認是 "#app",必須使用id選擇器 
   * - designWidth(可選):設計稿的寬度,默認是 1920 
   * - designHeight(可選):設計稿的高度,默認是 929 ,如果項目以全屏展示,則可以設置為1080
   * - resize(可選):是否監(jiān)聽resize事件,默認是 true

結語

諾克薩斯即將崛起文章來源地址http://www.zghlxwxcb.cn/news/detail-422379.html

到了這里,關于可視化大屏的終極解決方案居然這么簡單,vue-autofit一行全搞定!的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 數(shù)字孿生城市,智慧城市可視化技術解決方案案例

    數(shù)字孿生城市,智慧城市可視化技術解決方案案例

    近年來,數(shù)字孿生智慧城市的發(fā)展一直是人類社會的焦點話題。作為人口載體的城市給人民的生活帶來了極大的便利。但與此同時,數(shù)字孿生智慧城市發(fā)展也帶來了許多問題。可視化技術的迅速發(fā)展以及不合理的規(guī)劃等,導致了城市人口劇增,資源短缺,環(huán)境污染,交通擁堵

    2024年02月11日
    瀏覽(92)
  • 數(shù)字孿生智慧校園三維可視化管理系統(tǒng)解決方案

    數(shù)字孿生智慧校園三維可視化管理系統(tǒng)解決方案

    隨著科學技術的進步,人們對于生活的要求也越來越高。而教育也不例外。要想讓學生受益于科學的進步,那么教育就必須要跟上時代的步伐。這就是“智慧校園”誕生的原因。 教育部等六部門于2021年7月印發(fā)的《關于推進教育新型基礎設施建設構建高質量教育支撐體系的指

    2024年02月16日
    瀏覽(98)
  • 智慧電網(wǎng)數(shù)據(jù)可視化運維云平臺解決方案

    智慧電網(wǎng)數(shù)據(jù)可視化運維云平臺解決方案

    智慧電力概述 智慧電力是通過采用先進的大數(shù)據(jù)、云計算、物聯(lián)網(wǎng)、邊緣計算等技術,實現(xiàn)生產(chǎn)信息與管理信息的智慧,實現(xiàn)人、技術、經(jīng)營目標和管理方法的集成,是企業(yè)管理思想的一個新突破。智慧電廠建設具備智能化、一體化、可觀測、可互動、自學習、自尋優(yōu)等九大

    2024年01月20日
    瀏覽(31)
  • 工廠企業(yè)消防安全AI可視化視頻智能監(jiān)管解決方案

    工廠企業(yè)消防安全AI可視化視頻智能監(jiān)管解決方案

    2023年11月20日下午6時30分許,位于江蘇省無錫市惠山區(qū)前洲街道的某公司突發(fā)嚴重火災,共造成7人死亡。這次火災提醒我們工業(yè)安全至關重要,企業(yè)都應該時刻保持警惕,加強安全意識和培訓,提高應對突發(fā)事件的能力,最大程度地減少火災等意外事故的發(fā)生。 然而,企業(yè)消

    2024年02月19日
    瀏覽(20)
  • 如何實現(xiàn)數(shù)據(jù)可視化分析?有這個解決方案就夠了

    如何實現(xiàn)數(shù)據(jù)可視化分析?有這個解決方案就夠了

    在這個數(shù)據(jù)呈爆炸式增長的時代,每天都有海量數(shù)據(jù)在產(chǎn)生。如何通過簡單的方式實現(xiàn)業(yè)務上的分析、計算、交互,并最終呈現(xiàn)出可視化的分析結果,幫助業(yè)務人員更好地理解數(shù)據(jù)的價值,將數(shù)據(jù)變現(xiàn),是當前眾多企業(yè)都需要面對的問題。 想要直觀準確地從不同領域中的數(shù)據(jù)

    2024年02月06日
    瀏覽(22)
  • Vue大屏自適應終極解決方案

    Vue大屏自適應終極解決方案

    v-scale-screen 是一個大屏自適應組件,在實際業(yè)務中,我們常用圖表來做數(shù)據(jù)統(tǒng)計,數(shù)據(jù)展示,數(shù)據(jù)可視化等比較直觀的方式來達到一目了然的數(shù)據(jù)查看,但在大屏開發(fā)過程中,常會因為適配不同屏幕而感到困擾,下面我們使用 v-scale-screen 來解決一下這個難題 廢話不多說,先

    2024年02月12日
    瀏覽(37)
  • 京東開源的、高效的企業(yè)級表格可視化搭建解決方案:DripTable

    京東開源的、高效的企業(yè)級表格可視化搭建解決方案:DripTable

    DripTable 是京東零售推出的一款用于企業(yè)級中后臺的動態(tài)列表解決方案,項目基于 React 和 JSON Schema,旨在通過簡單配置快速生成頁面動態(tài)列表來降低列表開發(fā)難度、提高工作效率。 DripTable 目前包含以下子項目:drip-table、drip-table-generator。 drip-table :動態(tài)列表解決方案的核心庫

    2024年02月14日
    瀏覽(22)
  • 數(shù)字孿生智慧工廠三維可視化系統(tǒng)解決方案,打造新一代智慧工廠

    數(shù)字孿生智慧工廠三維可視化系統(tǒng)解決方案,打造新一代智慧工廠

    在制造業(yè)的快速發(fā)展和數(shù)字化轉型的時代,智慧工廠已經(jīng)成為制造企業(yè)前進的必經(jīng)之路。數(shù)字孿生技術,作為工業(yè)數(shù)字化轉型的核心動力,為打造智慧工廠提供了關鍵支持。其中,數(shù)字孿生智慧工廠三維可視化系統(tǒng)解決方案無疑是制造企業(yè)的得力助手,通過實時數(shù)據(jù)采集、數(shù)

    2024年02月08日
    瀏覽(101)
  • 【前端可視化】前端大屏適配方案

    動態(tài)設置 html 根字體的大小和 body 字體大小(使用 lib_flexible.js) 將設計稿的寬(1920)平均分成 24 等份,每一份 80px; html 根字體大小就設置為 80px,即 1rem = 80px,24rem = 1920px(移動端推薦分為 10 份); 將 body 字體大小設置為 16px; 最后需要使用插件或者其他方式將 px 轉為 rem 單位:

    2024年02月11日
    瀏覽(32)
  • AI人工智能+區(qū)塊鏈+物聯(lián)網(wǎng)+大數(shù)據(jù)可視化平臺建設綜合解決方案

    AI人工智能+區(qū)塊鏈+物聯(lián)網(wǎng)+大數(shù)據(jù)可視化平臺建設綜合解決方案

    因轉載眾多,無法找到真正來源,如標錯來源,或對于文中所使用的圖片、文字、鏈接中所包含的軟件/資料等,如有侵權,請跟我們聯(lián)系刪除,謝謝。將在收到信息后第一時間進行刪除。 參考資料來源網(wǎng)絡,僅用于行業(yè)知識分享,供個人學習參考,不得作商業(yè)用途。 AI人工

    2024年01月17日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包