欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

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

v3-drag-zoom 是基于 vue3 開發(fā)的一個縮放拖拽組件,方便開發(fā)者快速實現(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 個組件,因此建議全局導(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ù)名類型默認值說明
alignStringcontain內(nèi)容對齊方式,可選值有 auto、 contain、cover
autoResizeBooleantrue是否自動重置尺寸,當容器尺寸為百分比的時候,會根據(jù)父容器變化而自動變化
followPointerBooleantrue縮放時是否跟隨鼠標
maxZoomFloat100最大縮放倍數(shù)
minZoomFloat0.01最小縮放倍數(shù)
zoomFactorFloat0.1鼠標滾輪一次的縮放比例
loadingBooleanfalse是否加載中
animateDurationNumber200縮放時候的過度動畫時長,單位 ms

Slots?

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

Exposed?

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

v3-drag-zoom-item?

Props?

參數(shù)名類型默認值是否必須說明
offsetArray[-50,-50]偏移量,默認值代表橫向和縱向均偏移 -50%,也就是對齊中心點位置,偏移量單位為 %, 不支持 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每移動一點距離觸發(fā),返回當前位置
onMoveFinished( pos :Position)=> void移動結(jié)束(鼠標抬起或超出范圍)觸發(fā), 返回當前位置

CurPosition?

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

Position extend CurPosition?

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

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

相關(guān)文章

  • VUE3使用Element-Plus時如何修改ElMessage中的文字大小

    VUE3使用Element-Plus時如何修改ElMessage中的文字大小

    在使用Element-plus的Elmessage時使用默認的size無法滿足我們的需求時,我們可以自定義字體的大小,但是直接重寫樣式后,并沒有起作用,甚至使用::v-deep深度選擇器也沒有效果,本文介紹VUE3使用Element-Plus時如何修改ElMessage中的文字大小,感興趣的朋友一起看看吧
    2023-09-09
  • vue3響應(yīng)式原理之Ref用法及說明

    vue3響應(yīng)式原理之Ref用法及說明

    這篇文章主要介紹了vue3響應(yīng)式原理之Ref用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Vue使用distpicker插件實現(xiàn)省市級下拉框三級聯(lián)動

    Vue使用distpicker插件實現(xiàn)省市級下拉框三級聯(lián)動

    這篇文章主要介紹了Vue使用distpicker插件實現(xiàn)省市級下拉框三級聯(lián)動,比如通過JSON文件生成對應(yīng)的區(qū)域下拉框,element-china-are插件,包括distpicker插件,通過代碼講解如何使用distpicker插件實現(xiàn)省市級三聯(lián)跳動,需要的朋友可以參考下
    2023-02-02
  • 在Vue中實現(xiàn)深度監(jiān)聽的示例代碼

    在Vue中實現(xiàn)深度監(jiān)聽的示例代碼

    在 Vue 中,深度監(jiān)聽是指監(jiān)聽一個對象或數(shù)組的嵌套屬性(深層結(jié)構(gòu))的變化,而不僅僅是監(jiān)聽頂層屬性的引用變化,本文給大家介紹了如何在Vue中實現(xiàn)深度監(jiān)聽,并通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2025-03-03
  • vue實現(xiàn)調(diào)取手機攝像頭和相冊功能

    vue實現(xiàn)調(diào)取手機攝像頭和相冊功能

    這篇文章主要為大家詳細介紹了vue實現(xiàn)調(diào)取手機攝像頭和相冊功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 如何使用el-cascader組件寫下拉級聯(lián)多選及全選功能

    如何使用el-cascader組件寫下拉級聯(lián)多選及全選功能

    這篇文章主要介紹了如何使用el-cascader組件寫下拉級聯(lián)多選及全選功能,因為是有全選的功能,所以不能直接使用el-cascader組件,?而是選擇使用el-select組件,?在此組件內(nèi)部使用el-cascader-panel級聯(lián)面板,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • vue實現(xiàn)列表倒計時

    vue實現(xiàn)列表倒計時

    這篇文章主要為大家詳細介紹了vue實現(xiàn)列表倒計時,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Vue設(shè)計器form-create-designer配置表單默認值示例詳解

    Vue設(shè)計器form-create-designer配置表單默認值示例詳解

    這篇文章主要介紹了如何使用開源項目form-create-designer來靈活調(diào)整表單的默認值,通過config.formOptions,您可以自定義表單的全局布局,文章提供了一個詳細的例子,展示了如何使用form-create-designer的配置選項來調(diào)整表單的布局和外觀,感興趣的朋友一起看看吧
    2024-11-11
  • vue動態(tài)循環(huán)出的多個select出現(xiàn)過的變?yōu)閐isabled(實例代碼)

    vue動態(tài)循環(huán)出的多個select出現(xiàn)過的變?yōu)閐isabled(實例代碼)

    本文通過實例代碼給大家分享了vue動態(tài)循環(huán)出的多個select出現(xiàn)過的變?yōu)閐isabled效果,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-11-11
  • Vue axios 將傳遞的json數(shù)據(jù)轉(zhuǎn)為form data的例子

    Vue axios 將傳遞的json數(shù)據(jù)轉(zhuǎn)為form data的例子

    今天小編就為大家分享一篇Vue axios 將傳遞的json數(shù)據(jù)轉(zhuǎn)為form data的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10

最新評論