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

vue-preview動(dòng)態(tài)獲取圖片寬高并增加旋轉(zhuǎn)功能的實(shí)現(xiàn)

 更新時(shí)間:2020年07月29日 10:39:26   作者:鍵盤上的草根舞者  
這篇文章主要介紹了vue-preview動(dòng)態(tài)獲取圖片寬高并增加旋轉(zhuǎn)功能的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

vue-preview是一個(gè)常用的圖片查看器,微博網(wǎng)頁(yè)版就是用的這個(gè)插件:

我在項(xiàng)目中也用過這個(gè)插件,總體來說,還是比較滿意。但是缺少一個(gè)圖片旋轉(zhuǎn)功能。

安裝使用

第一步:安裝

npm i vue-preview -S

第二步:引用配置

import VuePreview from 'vue-preview'
Vue.use(VuePreview)
Vue.use(preview, {
 mainClass: 'pswp--minimal--dark',
 barsSize: {top: 0, bottom: 0},
 captionEl: false,
 fullscreenEl: false,
 shareEl: false,
 bgOpacity: 0.85,
 tapToClose: true,
 tapToToggleControls: false
})

第三步:使用

// 定義預(yù)覽圖片列表
previewlist: [
  {
    src: ‘./pic01.jpg',
    w: 1200,
    h: 900
  },
  {
    src: ‘./pic01.jpg',
    w: 1200,
    h: 900
  }
]
 
// 給圖片添加“preview-img”類(必須添加且要同名),以及綁定“show”方法
<img :src="decodeURIComponent(item.name)" class="preview-img" @click="show(index)">
 
// 點(diǎn)擊圖片觸發(fā)預(yù)覽方法
show (index) {
  this.$preview.open(index, this. previewlist);
}

動(dòng)態(tài)獲取圖片寬高

如果圖片列表資源是從服務(wù)器獲取,則需要先獲取圖片的真實(shí)寬高,具體代碼如下:

this. previewlist = []; //查看列表
let imglist = […]; //從服務(wù)器獲取的圖片地址列表
show (index) {
  for (let i = 0; i < imglist.length; i++) {
    // 獲取圖片實(shí)際大小
    let newImage = {};
    let img = new Image();
    img.src = imglist[i];
    img.onload = function () {
      newImage.src = imglist[i];
      newImage.w = img.width;
      newImage.h = img.height;
    };
    this.previewlist.push(newImage);
  }
  // 正常情況下javascript都是按照順序執(zhí)行的。但是我們可能讓該語句后面的語句執(zhí)行完再執(zhí)行本身,用setTimeout延時(shí)0ms來實(shí)現(xiàn)。
  setTimeout(() => {
    this.$preview.open(index, this.previewlist);
  }, 0);
}

新增圖片旋轉(zhuǎn)功能

默認(rèn)的功能有全屏、放大、分享、圖片切換等,有時(shí)候我們還需要圖片旋轉(zhuǎn)功能,怎么辦呢?那只能自己動(dòng)手改插件了。

第一步:添加旋轉(zhuǎn)圖標(biāo)

圖標(biāo)文件路徑:node_modules\photoswipe\dist\default-skin

原來只有前面8個(gè)圖片,后面那個(gè)稍微大一點(diǎn)的旋轉(zhuǎn)圖標(biāo)是我加上去的,當(dāng)然你也可以把尺寸設(shè)置為和原來的一樣。

第二步:添加旋轉(zhuǎn)按鈕到頁(yè)面

頁(yè)面文件路徑:node_modules\vue-preview\src\plugins\preview\preview.vue

<button class="pswp__button pswp__button--rotate" title="旋轉(zhuǎn)" @click="imgRotateFn"></button>

第三步:添加旋轉(zhuǎn)按鈕的樣式

樣式文件路徑:node_modules\photoswipe\dist\default-skin

.pswp__button--rotate {
 background-position: -176px 0;
}

第四步:實(shí)現(xiàn)旋轉(zhuǎn)方法

文件路徑:node_modules\vue-preview\src\plugins\preview\preview.vue

imgRotateFn () {
   this.angle+=90;
   let imgNode = document.getElementsByClassName('pswp__img');
   for (let i = 0; i<imgNode.length; i++) {
      imgNode[i].style.WebkitTransform = 'rotate('+this.angle+'deg)';
   }
 }

這里我只貼出了關(guān)鍵代碼,需要你自己做瀏覽器兼容,以及切換圖片時(shí),應(yīng)該將圖片角度設(shè)置為0等。

測(cè)試結(jié)果

測(cè)試沒有問題,終于可以下班了,哈哈哈。

Tips:懶得自己動(dòng)手改插件的伙伴,可以在樓主的GitHub倉(cāng)庫(kù)下載改好后的文件,在你安裝好 vue-preview 后用“attachment”文件夾中的三個(gè)文件替換你項(xiàng)目中的對(duì)應(yīng)文件就擁有“旋轉(zhuǎn)”功能了。GitHub地址:https://github.com/xiongjun0812/vue-preview

今天就分享到這里,有問題歡迎留言交流,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue-router history模式服務(wù)器端配置過程記錄

    vue-router history模式服務(wù)器端配置過程記錄

    vue路由有hash和history兩種模式,這篇文章主要給大家介紹了關(guān)于vue-router history模式服務(wù)器端配置的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • 前端vue3?setup使用教程

    前端vue3?setup使用教程

    這篇文章主要為大家介紹了前端vue3架構(gòu)setup使用教程,詳細(xì)介紹?setup?的用法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-02-02
  • 詳解如何優(yōu)雅的進(jìn)行Vue的狀態(tài)管理

    詳解如何優(yōu)雅的進(jìn)行Vue的狀態(tài)管理

    隨著項(xiàng)目的發(fā)展和復(fù)雜性的增加,對(duì) Vuex 進(jìn)行更深入的了解和使用就變得非常重要,本篇文章將帶您探索 Vuex 的進(jìn)階使用,包括模塊化、命名空間、getter 的高級(jí)用法等,需要的朋友可以參考下
    2023-09-09
  • Vue3自定義drag指令詳解

    Vue3自定義drag指令詳解

    這篇文章主要為大家詳細(xì)介紹了Vue3自定義drag指令的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • uniapp使用v-loading并且不引入element-ui的操作方法

    uniapp使用v-loading并且不引入element-ui的操作方法

    這篇文章主要介紹了uniapp使用v-loading并且不引入element-ui,首先創(chuàng)建loading.js,創(chuàng)建lloading.scss,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • Vue刷新修改頁(yè)面中數(shù)據(jù)的方法

    Vue刷新修改頁(yè)面中數(shù)據(jù)的方法

    今天小編就為大家分享一篇Vue刷新修改頁(yè)面中數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 使用vue/cli出現(xiàn)defineConfig?is?not?function錯(cuò)誤解決辦法

    使用vue/cli出現(xiàn)defineConfig?is?not?function錯(cuò)誤解決辦法

    這篇文章主要給大家介紹了關(guān)于使用vue/cli出現(xiàn)defineConfig?is?not?function錯(cuò)誤的解決辦法,當(dāng)我們?cè)谧龃虬渲玫臅r(shí)候,出現(xiàn)了這個(gè)錯(cuò)誤,需要的朋友可以參考下
    2023-11-11
  • vue圖片加載失敗時(shí)用默認(rèn)圖片替換的方法

    vue圖片加載失敗時(shí)用默認(rèn)圖片替換的方法

    這篇文章主要給大家介紹了關(guān)于vue圖片加載失敗時(shí)用默認(rèn)圖片替換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Vue 3.0 前瞻Vue Function API新特性體驗(yàn)

    Vue 3.0 前瞻Vue Function API新特性體驗(yàn)

    這篇文章主要介紹了Vue 3.0 前瞻Vue Function API新特性體驗(yàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • vue中如何通過函數(shù)傳參數(shù)

    vue中如何通過函數(shù)傳參數(shù)

    這篇文章主要介紹了vue中如何通過函數(shù)傳參數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評(píng)論

喀喇沁旗| 通城县| 嘉义市| 仲巴县| 福建省| 山东省| 兴和县| 武鸣县| 平山县| 准格尔旗| 巫山县| 克拉玛依市| 海伦市| 隆安县| 永康市| 潮州市| 沾益县| 五常市| 汶上县| 宜春市| 大连市| 阿合奇县| 闵行区| 江都市| 巴林右旗| 崇左市| 寻乌县| 河曲县| 临沧市| 开封县| 定陶县| 阳曲县| 桑日县| 嵩明县| 霸州市| 伊金霍洛旗| 金山区| 曲靖市| 唐山市| 武宁县| 于田县|