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

vue2中使用viewer.js的實(shí)現(xiàn)示例

 更新時(shí)間:2025年10月01日 09:21:50   作者:王闊闊  
本文主要介紹了vue2中使用viewer.js的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

先展示下實(shí)現(xiàn)效果

簡(jiǎn)單的圖片放大縮小、切換上一張下一張、左右旋轉(zhuǎn)可使用ElementUi中的el-image組件,但像上下左右鏡像翻轉(zhuǎn)el-image組件就無法滿足,因此我這里使用到了viewer.js。

1. 安裝插件

npm install v-viewer@1.7.4

2. main.js

import "viewerjs/dist/viewer.css";
import Viewer from "v-viewer";

Vue.use(Viewer);

3. 圖片查看器組件

<template>
  <div class="pics-view" v-viewer="viewerOptions">
    <div
      class="pics-item"
      v-for="item in picsList"
      :key="item.title + item.url"
    >
      <h4 class="title" :title="item.title">{{ item.title }}</h4>
      <img :src="item.url" :alt="item.title" class="preview-img" />
    </div>
  </div>
</template>

<script>
export default {
  props: {
  	// 圖片列表(title、url)
    picsList: {
      type: Array,
      default: () => [],
    },
  },
  data() {
    return {
      // 配置viewer.js的參數(shù)
      viewerOptions: {
        navbar: true,
        title: true,
        toolbar: {
          prev: true,
          next: true,
          zoomIn: true,
          zoomOut: true,
          rotateLeft: true,
          rotateRight: true,
          flipHorizontal: true,
          flipVertical: true,
          reset: true,
        },
        button: function () {
          const container = document.createElement("div");
          container.className = "viewer-toolbar-custom";

          // 上一張按鈕
          const prevBtn = document.createElement("button");
          prevBtn.type = "button";
          prevBtn.className = "viewer-button viewer-prev";
          prevBtn.innerHTML = '<i class="el-icon-arrow-left"></i>';
          prevBtn.title = "上一張";
          container.appendChild(prevBtn);

          // 下一張按鈕
          const nextBtn = document.createElement("button");
          nextBtn.type = "button";
          nextBtn.className = "viewer-button viewer-next";
          nextBtn.innerHTML = '<i class="el-icon-arrow-right"></i>';
          nextBtn.title = "下一張";
          container.appendChild(nextBtn);

          return container;
        },
        initialized: function (viewer) {
          // 綁定上一張事件
          const prevBtn = viewer.element.querySelector(".viewer-prev");
          prevBtn.addEventListener("click", () => viewer.prev());

          // 綁定下一張事件
          const nextBtn = viewer.element.querySelector(".viewer-next");
          nextBtn.addEventListener("click", () => viewer.next());
        },
      },
    };
  },
};
</script>

<style scoped lang="scss">
.pics-view {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;

  .pics-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 200px;

    .title {
      width: 100%;
      padding: 4px;
      background-color: #ccc;
      color: #fff;
      text-align: center;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .preview-img {
      width: 100%;
      height: 100px;
      object-fit: contain;
      cursor: pointer;
      border: 1px solid #eee;
      border-radius: 4px;
      transition: all 0.3s;
      border: 1px solid #ccc;

      &:hover {
        border-color: #409eff;
      }
    }
  }
}
</style>

到此這篇關(guān)于vue2中使用viewer.js的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)vue2使用viewer.js內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue2中項(xiàng)目打包優(yōu)化的方法詳解

    Vue2中項(xiàng)目打包優(yōu)化的方法詳解

    這篇文章主要為大家詳細(xì)介紹了vue2項(xiàng)目的打包優(yōu)化方法,包括減少打包代碼體積和提升編譯時(shí)間等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • element-ui點(diǎn)擊查看大圖的方法示例

    element-ui點(diǎn)擊查看大圖的方法示例

    這篇文章主要介紹了element-ui查看大圖的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Vue3中的ref為何要用.value進(jìn)行值的調(diào)用呢

    Vue3中的ref為何要用.value進(jìn)行值的調(diào)用呢

    這篇文章主要介紹了Vue3中的ref為何要用.value進(jìn)行值的調(diào)用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Vue項(xiàng)目如何設(shè)置反向代理和cookie設(shè)置問題

    Vue項(xiàng)目如何設(shè)置反向代理和cookie設(shè)置問題

    這篇文章主要介紹了Vue項(xiàng)目如何設(shè)置反向代理和cookie設(shè)置問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue3中provide和inject數(shù)據(jù)修改規(guī)則

    Vue3中provide和inject數(shù)據(jù)修改規(guī)則

    在Vue3中,通過inject接收到的數(shù)據(jù)是否可以直接修改,取決于provide提供的值的類型和響應(yīng)式處理方式,本文給大家介紹Vue3中provide和inject數(shù)據(jù)修改規(guī)則,感興趣的朋友一起看看吧
    2025-04-04
  • 一文詳解Pinia和Vuex與兩個(gè)Vue狀態(tài)管理模式

    一文詳解Pinia和Vuex與兩個(gè)Vue狀態(tài)管理模式

    這篇文章主要介紹了一文詳解Pinia和Vuex與兩個(gè)Vue狀態(tài)管理模式,Pinia和Vuex一樣都是是vue的全局狀態(tài)管理器。其實(shí)Pinia就是Vuex5,只不過為了尊重原作者的貢獻(xiàn)就沿用了這個(gè)看起來很甜的名字Pinia
    2022-08-08
  • Vue中如何判斷對(duì)象是否為空

    Vue中如何判斷對(duì)象是否為空

    這篇文章主要介紹了Vue中如何判斷對(duì)象是否為空,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue引入高德地圖并繪制點(diǎn)線面的方法

    vue引入高德地圖并繪制點(diǎn)線面的方法

    這篇文章主要介紹了vue引入高德地圖并繪制點(diǎn)線面的實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-03-03
  • Vue3中Element Plus Table(表格)點(diǎn)擊獲取對(duì)應(yīng)id方式

    Vue3中Element Plus Table(表格)點(diǎn)擊獲取對(duì)應(yīng)id方式

    這篇文章主要介紹了Vue3中Element Plus Table(表格)點(diǎn)擊獲取對(duì)應(yīng)id方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue 虛擬DOM的原理

    vue 虛擬DOM的原理

    這篇文章主要介紹了vue 虛擬DOM的原理,幫助大家更好的理解和學(xué)習(xí)vue,感興趣的朋友可以了解下
    2020-10-10

最新評(píng)論

图木舒克市| 武山县| 抚州市| 凤山市| 水城县| 乐陵市| 普陀区| 灌阳县| 满洲里市| 靖西县| 赤峰市| 云安县| 策勒县| 巢湖市| 邵阳县| 疏附县| 承德市| 额尔古纳市| 南木林县| 淮南市| 老河口市| 青海省| 巴彦淖尔市| 固始县| 扶沟县| 张家界市| 黑水县| 韩城市| 拉孜县| 观塘区| 墨玉县| 正安县| 长垣县| 磐安县| 冀州市| 井陉县| 宣化县| 华池县| 冕宁县| 冷水江市| 民县|