• vue在移动端使用alloyfinger手势库操作图片拖拽、缩放


    最近开发一个活动需要在手机上给上传的头像加上边框、装饰,需要拖拽、手势缩放边框下的头像图片,因为是vue项目,开始尝试了vue-drag-resize这个组件,对图片拖拽支持很完美,但是无法手势缩放,果断放弃,最后选用了腾讯的AlloyTeam团队的开源的手势库AlloyFinger,闲话少说直接上代码

    1、下载

    npm install alloyfinger
    

      

    2、main.js全局配置

    import AlloyFinger from 'alloyfinger'
    import AlloyFingerPlugin from 'alloyfinger/vue/alloy_finger_vue'
    
    Vue.use(AlloyFingerPlugin,{
      AlloyFinger
    })
    

      

    3、组件内使用

    <div v-finger:pinch="pinchHandler"
         v-finger:press-move="pressMoveHandler"
         v-finger:multipoint-start="multipointStartHandler"
         v-finger:rotate="rotateHandler"
         v-finger:tap="tapHandler"
         v-finger:multipoint-end="multipointEndHandler"
         v-finger:double-tap="doubleTapHandler"
         v-finger:long-tap="longTapHandler"
         v-finger:swipe="swipeHandler"
         v-finger:single-tap="singleTapHandler">
    
    //滑动的有效区域
    </div>
    

      

            pointStartHandler() {
                //手指触摸屏幕触发
            },
            multipointStartHandler() {
                //一个手指以上触摸屏幕触发
            },
            rotateHandler(evt) {
                //evt.angle代表两个手指旋转的角度
                console.log(evt.angle);
            },
            pinchHandler(evt) {
                //evt.scale代表两个手指缩放的比例
                console.log(evt.scale);
            },
            multipointEndHandler() {
                //当手指离开,屏幕只剩一个手指或零个手指触发
            },
            pressMoveHandler(evt) {
                //evt.deltaX和evtdeltaY代表在屏幕上移动的距离
                console.log(evt.deltaX);
                console.log(evt.deltaY);
            },
            tapHandler(evt) {
                //点按触发
            },
            doubleTapHandler(evt) {
                //双击屏幕触发
            },
            longTapHandler(evt) {
                //长按屏幕750ms触发
            },
            swipeHandler(evt) {
                //evt.direction代表滑动的方向
                console.log("swipe" + evt.direction);
            },
            singleTapHandler(evt) {
                //单击
            }    
    

      

    ps:拖动对于移动端兼容不是太理想,正在优化中~

  • 相关阅读:
    数据持久化的复习
    iOS: 消息通信中的Notification&KVO
    iOS 证书与签名 解惑详解
    数据持久化 技术比较
    iOS开发拓展篇-XMPP简单介绍
    iOS block并发
    Xcode把应用程序打包成ipa
    谈谈用SQLite和FMDB而不用Core Data
    cannot use the same dataset for report.dataset and page.dataset
    cxGRID中的字段怎么能以0.00的格式显示
  • 原文地址:https://www.cnblogs.com/dinghaoran/p/13724145.html
Copyright © 2020-2023  润新知