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

vue3實(shí)現(xiàn)圖片縮放拖拽功能的示例代碼

 更新時(shí)間:2024年04月29日 08:47:48   作者:囂張農(nóng)民  
v3-drag-zoom 是基于 vue3 開發(fā)的一個(gè)縮放拖拽組件,方便開發(fā)者快速實(shí)現(xiàn)縮放拖拽功能,效果類似地圖的縮放與拖拽,本文給大家介紹了vue3如何快速實(shí)現(xiàn)圖片縮放拖拽功能,感興趣的朋友可以參考下

前言

因?yàn)樾枰獙?shí)現(xiàn)圖片拖拽,縮放的功能,項(xiàng)目是vue3的所以找到這個(gè)組件,很簡潔,api文檔描述的也清楚,能夠快速3分鐘內(nèi)搞完一個(gè)功能

縮放拖拽組件(v3-drag-zoom)

v3-drag-zoom 是基于 vue3 開發(fā)的一個(gè)縮放拖拽組件,方便開發(fā)者快速實(shí)現(xiàn)縮放拖拽功能。

效果類似地圖的縮放與拖拽,但是不同的是,v3-drag-zoom 可以縮放任意元素,而不僅僅是地圖。

使用場景:

  • 地圖縮放與拖拽
  • 圖片縮放與拖拽
  • 任意元素縮放與拖拽
  • 其他任意需要縮放與拖拽的場景

安裝?

使用以下命令安裝 v3-drag-zoom

bash

npm install v3-drag-zoom
# 或
yarn add v3-drag-zoom

導(dǎo)入組件?

全局導(dǎo)入?

在 main.js 中全局引入 v3-drag-zoom

import {createApp} from "vue";
import App from "./App.vue";
// v3-drag-zoom 組件
import V3DragZoom from "v3-drag-zoom";
// v3-drag-zoom 全局樣式(必須導(dǎo)入,否則無法正常使用)
import "v3-drag-zoom/dist/style.css";

createApp(App).use(V3DragZoom).mount("#app");

按需導(dǎo)入?

在需要的組件中導(dǎo)入 v3-drag-zoom

<script setup lang="ts">
  import {V3DragZoomContainer} from "v3-drag-zoom";
</script>

<template>
  <v3-drag-zoom-container>
    <div>需要縮放與拖拽的元素</div>
  </v3-drag-zoom-container>
</template>

由于v3-drag-zoom 全局導(dǎo)入也就只有 2 個(gè)組件,因此建議全局導(dǎo)入。

基本使用?

使用 v3-drag-zoom 組件包裹需要縮放與拖拽的元素即可。

如果 v3-drag-zoom 內(nèi)部存在 img 元素,則會自動等待所有元素加載完畢后初始化,因此不需要手動等待圖片加載完畢后再初始化。

<script setup lang="ts"></script>

<template>
  <v3-drag-zoom-container style="width: 600px; height: 400px; background-color: #ccc">
    <div
      class="flex-column flex-same"
      style="background-color: darkred; height: 500px; width: 900px"
    >
      <div class="flex-grow flex-horiz flex-same" v-for="i in 10">
        <div class="border-box bca-border" v-for="i in 10"></div>
      </div>
    </div>
  </v3-drag-zoom-container>
</template>

API參數(shù)?

v3-drag-zoom-container?

Props?

參數(shù)名類型默認(rèn)值說明
alignStringcontain內(nèi)容對齊方式,可選值有 auto、 contain、cover
autoResizeBooleantrue是否自動重置尺寸,當(dāng)容器尺寸為百分比的時(shí)候,會根據(jù)父容器變化而自動變化
followPointerBooleantrue縮放時(shí)是否跟隨鼠標(biāo)
maxZoomFloat100最大縮放倍數(shù)
minZoomFloat0.01最小縮放倍數(shù)
zoomFactorFloat0.1鼠標(biāo)滾輪一次的縮放比例
loadingBooleanfalse是否加載中
animateDurationNumber200縮放時(shí)候的過度動畫時(shí)長,單位 ms

Slots?

Slot說明
default直接填寫需要放置的內(nèi)容

Exposed?

參數(shù)名類型說明
zoom(zoom:Float) => void手動縮放 zoom: 為縮放倍數(shù)
reset() => void重置縮放

v3-drag-zoom-item?

Props?

參數(shù)名類型默認(rèn)值是否必須說明
offsetArray[-50,-50]偏移量,默認(rèn)值代表橫向和縱向均偏移 -50%,也就是對齊中心點(diǎn)位置,偏移量單位為 %, 不支持 px
fixedSizeBooleanfalse是否固定大小, true代表在縮放過程中該item內(nèi)容尺寸不變
rotateFloat0旋轉(zhuǎn)角度單位 deg (360度)
draggableBooleanfalse是否可以拖拽移動
position(v-model)CurPosition該 item 在內(nèi)容中的位置(百分比位置)

Slots?

Slot說明
default直接填寫需要放置的內(nèi)容

Events?

事件名參數(shù)說明
onMove( pos :Position)=> void每移動一點(diǎn)距離觸發(fā),返回當(dāng)前位置
onMoveFinished( pos :Position)=> void移動結(jié)束(鼠標(biāo)抬起或超出范圍)觸發(fā), 返回當(dāng)前位置

CurPosition?

參數(shù)名類型默認(rèn)值是否必須說明
xFloat橫向位置 %
yFloat縱向位置 %

Position extend CurPosition?

參數(shù)名類型默認(rèn)值是否必須說明
xFloat橫向位置 %
yFloat縱向位置 %
sub(pos:Position)=>Position計(jì)算當(dāng)前 Position 與 pos 之間的差值 new Position(this.x - pos.x, this.y - pos.y);
add(pos:Position)=>Position計(jì)算當(dāng)前 Position 與 pos 之間的和值 new Position(this.x + pos.x, this.y + p

以上就是vue3實(shí)現(xiàn)圖片縮放拖拽功能的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于vue3圖片縮放拖拽的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何在Vue項(xiàng)目中應(yīng)用TypeScript類

    如何在Vue項(xiàng)目中應(yīng)用TypeScript類

    與如何在React項(xiàng)目中應(yīng)用TypeScript類類似在VUE項(xiàng)目中應(yīng)用typescript,我們需要引入一個(gè)庫vue-property-decorator,需要的小伙伴可續(xù)看下文具體介紹
    2021-09-09
  • vue前端開發(fā)輔助函數(shù)狀態(tài)管理詳解示例

    vue前端開發(fā)輔助函數(shù)狀態(tài)管理詳解示例

    vue的應(yīng)用狀態(tài)管理提供了mapState、mapGetters、mapMutations、mapActions四個(gè)輔助函數(shù),所謂的輔助函數(shù)分別對State、Getters、Mutations、Actions在完成狀態(tài)的使用進(jìn)行簡化
    2021-10-10
  • ElementUI表單驗(yàn)證validate和validateField的使用及區(qū)別

    ElementUI表單驗(yàn)證validate和validateField的使用及區(qū)別

    Element-UI作為前端框架,最常使用到的就是表單驗(yàn)證,下面這篇文章主要給大家介紹了關(guān)于ElementUI表單驗(yàn)證validate和validateField的使用及區(qū)別,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 在Vue項(xiàng)目中優(yōu)化字體文件的加載和緩存的常用方法

    在Vue項(xiàng)目中優(yōu)化字體文件的加載和緩存的常用方法

    在現(xiàn)代 Web 開發(fā)中,字體文件通常是頁面加載時(shí)間的重要因素之一,特別是在字體文件較大或網(wǎng)絡(luò)環(huán)境不佳的情況下,用戶體驗(yàn)可能會受到影響,本文將詳細(xì)探討如何在 Vue.js 項(xiàng)目中優(yōu)化字體文件的加載和緩存,以提高頁面性能,需要的朋友可以參考下
    2024-09-09
  • vue elementUI 表單校驗(yàn)的實(shí)現(xiàn)代碼(多層嵌套)

    vue elementUI 表單校驗(yàn)的實(shí)現(xiàn)代碼(多層嵌套)

    這篇文章主要介紹了vue elementUI 表單校驗(yàn)的實(shí)現(xiàn)代碼(多層嵌套),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Vue開發(fā)環(huán)境的搭建全過程

    Vue開發(fā)環(huán)境的搭建全過程

    文章介紹了在網(wǎng)頁中使用Vue.js的四種方式:基本方式、腳手架方式(Vue2.0)、使用WebStorm集成環(huán)境創(chuàng)建vue-cli項(xiàng)目(Vue3.0)以及Vue項(xiàng)目的目錄結(jié)構(gòu),每種方式都有詳細(xì)的步驟和示例,幫助讀者快速上手Vue.js開發(fā)
    2024-11-11
  • vue watch關(guān)于對象內(nèi)的屬性監(jiān)聽

    vue watch關(guān)于對象內(nèi)的屬性監(jiān)聽

    這篇文章主要介紹了vue watch關(guān)于對象內(nèi)的屬性監(jiān)聽的相關(guān)知識,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-04-04
  • Vue異步更新機(jī)制及$nextTick原理的深入講解

    Vue異步更新機(jī)制及$nextTick原理的深入講解

    最近在學(xué)習(xí)一些底層方面的知識,所以想做個(gè)系列嘗試去聊聊這些比較復(fù)雜又很重要的知識點(diǎn),下面這篇文章主要給大家介紹了關(guān)于Vue異步更新機(jī)制及$nextTick原理的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • vue使用Highcharts實(shí)現(xiàn)3D餅圖

    vue使用Highcharts實(shí)現(xiàn)3D餅圖

    這篇文章主要為大家詳細(xì)介紹了vue使用Highcharts實(shí)現(xiàn)3D餅圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue如何跳轉(zhuǎn)到其他頁面

    vue如何跳轉(zhuǎn)到其他頁面

    跳轉(zhuǎn)到指定URL,向history棧添加一個(gè)新的紀(jì)錄,點(diǎn)擊后退會返回至上一個(gè)頁面,這篇文章給大家介紹vue如何跳轉(zhuǎn)到其他頁面,包括無參跳轉(zhuǎn)和帶參跳轉(zhuǎn),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-10-10

最新評論

延吉市| 青铜峡市| 广灵县| 北流市| 黔西| 阿拉善左旗| 玉树县| 诸城市| 临夏市| 芷江| 宽城| 湛江市| 东山县| 彭州市| 阿拉善左旗| 吴忠市| 连南| 左权县| 柳林县| 双城市| 宁阳县| 平安县| 化德县| 桐城市| 文昌市| 浑源县| 旬阳县| 大竹县| 安吉县| 丽水市| 阿拉善右旗| 阳江市| 浦县| 南郑县| 广平县| 城市| 长春市| 通许县| 高淳县| 云龙县| 五寨县|