最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue自定義指令結(jié)合阿里云OSS優(yōu)化圖片的實現(xiàn)方法

 更新時間:2019年11月12日 14:14:36   作者:7coder  
這篇文章主要介紹了Vue自定義指令結(jié)合阿里云OSS優(yōu)化圖片的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

圖片往往在加載前端項目中占大頭,如何既不損失圖片質(zhì)量,又提升加載速度呢?

  • 根據(jù)顯示設(shè)備pixelRatio和元素寬高來顯示合適圖片
  • 略微壓縮圖片質(zhì)量
  • 使用webp

注冊全局自定義指令

Vue.directive('img-condense', {
 bind: (el, binding, vnode) => {
  let src = el.getAttribute('src')
  let newSrc = compressImg(src, el)
  el.setAttribute('src', newSrc)
 }
})

獲取元素寬高和顯示設(shè)備pixelRatio

let compressImg = (imgUrl, el) => {
 // 獲取顯示設(shè)備 pixelRatio
 let pixelRatio = window.devicePixelRatio
 let elWidth = elStyle.width * pixelRatio
 let elHeight = elStyle.height * pixelRatio
 let resize = '/resize'
 if (elWidth) {
  resize += `,w_${elWidth}`
 }
 if (elHeight) {
  resize += `,h_${elHeight}`
 }
})

判斷webp

let canUseWebp = document.createElement('canvas').toDataURL('image/webp').indexOf('data:image/webp') == 0
let webp = ''
if (canUseWebp) {
 webp = '/format,webp'
}

質(zhì)量降低至80%

let ossParam?x-oss-process=image${resize}/auto-orient,1/quality,Q_80/bright,-1${webp}

完整版

<img v-img-condense alt="Vue logo" src="../assets/logo.png">
Vue.directive('img-condense', {
 bind: (el, binding, vnode) => {
  let src = el.getAttribute('src')
  let newSrc = compressImg(src, el)
  el.setAttribute('src', newSrc)
 }
})
let compressImg = (imgUrl, el) => {
 // 如果不是oss 或者已經(jīng)壓縮過的圖片直接返回
 if (imgUrl.includes('aliyuncs.com') || imgUrl.indexOf('blob') === 0 || imgUrl.includes('x-oss-process=')){
  return imgUrl 
 }
 // 獲取顯示設(shè)備 pixelRatio
 let pixelRatio = window.devicePixelRatio
 let elWidth = el.width * pixelRatio
 let elHeight = el.height * pixelRatio
 let resize = '/resize'
 if (elWidth) {
  resize += `,w_${elWidth}`
 }
 if (elHeight) {
  resize += `,h_${elHeight}`
 }
 if (!elWidth && !elHeight) {
  resize = ''
 }
 // 判斷webp
 let canUseWebp = document.createElement('canvas').toDataURL('image/webp').indexOf('data:image/webp') == 0
 let webp = ''
 if (canUseWebp) {
  webp = '/format,webp'
 }
 return `${imgUrl}?x-oss-process=image${resize}/auto-orient,1/quality,Q_80/bright,-1${webp}`
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • mockjs+vue頁面直接展示數(shù)據(jù)的方法

    mockjs+vue頁面直接展示數(shù)據(jù)的方法

    這篇文章主要介紹了mockjs+vue頁面直接展示數(shù)據(jù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • vue2.0實現(xiàn)的tab標(biāo)簽切換效果(內(nèi)容可自定義)示例

    vue2.0實現(xiàn)的tab標(biāo)簽切換效果(內(nèi)容可自定義)示例

    這篇文章主要介紹了vue2.0實現(xiàn)的tab標(biāo)簽切換效果,結(jié)合實例形式分析了vue.js實現(xiàn)內(nèi)容可自定義的tab點擊切換功能相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • v-html渲染組件問題

    v-html渲染組件問題

    最近在學(xué)習(xí)vue,今天正好發(fā)現(xiàn)個問題,本文介紹了v-html渲染組件問題,整理了問題的解決方法,有需要的小伙伴可以參考下
    2021-05-05
  • 在Vue中實現(xiàn)拖拽功能的實例

    在Vue中實現(xiàn)拖拽功能的實例

    Vue實現(xiàn)拖拽功能的基本原理是監(jiān)聽鼠標(biāo)事件,實時更新拖拽元素的位置,最后在合適的時機停止拖拽并更新元素位置,在Vue中,我們可以通過綁定相關(guān)事件來實現(xiàn)這一功能
    2025-02-02
  • Vue正則表達式限制input的輸入范圍

    Vue正則表達式限制input的輸入范圍

    我們有時需要限制文本框輸入內(nèi)容的類型,本節(jié)分享下正則表達式限制文本框只能輸入數(shù)字、小數(shù)點、英文字母、漢字等代碼,感興趣的朋友跟隨小編一起看看吧
    2023-12-12
  • Vue-resource實現(xiàn)ajax請求和跨域請求示例

    Vue-resource實現(xiàn)ajax請求和跨域請求示例

    本篇文章主要介紹了Vue-resource實現(xiàn)ajax請求和跨域請求示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • vue實現(xiàn)websocket客服聊天功能

    vue實現(xiàn)websocket客服聊天功能

    這篇文章主要為大家詳細介紹了vue實現(xiàn)websocket客服聊天功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Element Tooltip 文字提示的使用示例

    Element Tooltip 文字提示的使用示例

    這篇文章主要介紹了Element Tooltip 文字提示的使用示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Vue中如何設(shè)置全局的cookie對象

    Vue中如何設(shè)置全局的cookie對象

    這篇文章主要介紹了Vue中如何設(shè)置全局的cookie對象,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue前端解析Excel數(shù)據(jù)方式

    Vue前端解析Excel數(shù)據(jù)方式

    這篇文章主要介紹了Vue前端解析Excel數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評論

桦川县| 布尔津县| 辽阳县| 瑞昌市| 咸阳市| 大洼县| 林甸县| 饶平县| 姜堰市| 桓台县| 樟树市| 新宁县| 手游| 密云县| 垣曲县| 佛教| 阜康市| 大安市| 灵台县| 宁国市| 贡嘎县| 手机| 翁牛特旗| 云安县| 民乐县| 虎林市| 淅川县| 琼结县| 德令哈市| 乐至县| 迁西县| 罗源县| 弥渡县| 瑞金市| 巫山县| 新邵县| 翼城县| 酒泉市| 中山市| 广饶县| 财经|