uni-app实现图片双指缩放双击缩放及移动查看

3,943 阅读1分钟

一 、实现思路及代码

1.template

  • 图片设置双指放大缩小这个功能相对来说比较简单的,官方文档即可实现
  • (组件->视图容器->movable-area),movable-area可以做双指放大缩小
<view class="imagecontent">
        <movable-area scale-area class="movable-area">
            <movable-view
                class="movable-view"
                direction="all"
                @scale="onScale"
                scale="true"
                scale-min="1"
                scale-max="4"
                :scale-value="scale"
                @click="dblclick"
            >
                <image
                    class="lookimg"
                    src="../../../static/clouddisk/lookimg.jpg"
                    mode="heightFix"
                ></image>
            </movable-view>
        </movable-area>
    </view>

2. script

  • 如果 scale-min=“0.5” 的话那图片就会显示50%,不会完全100%显示,所以就让他初始化等于 1 scale-max 他的意思是双指放大可以放大几倍,比如 scale-max=“4” 那么双指放大4倍。
<script>
export default {
    data() {
        return {
            scale: 1,
            touchNum:0
        };
    },
    methods: {
        dblclick() {
	this.touchNum++
        setTimeout(() => {
		if (this.touchNum == 1) {
                    console.log('单击')
		}
		if (this.touchNum >= 2) {
                    console.log('双击')
                    if (this.scale == 10) {
                            this.scale = 1;
			} else {
                            this.scale = 10;
			}
                    }
		this.touchNum = 0
	}, 250)
    },
};
</script>

js里面写的是单击转双击事件,因为scale的最大值是10,最小值是1,所以如果双击的时候,如果他的值是10,那么久变成1那么大,反之则反。

3. style

<style>
.movable-view {
		height: 100%;
		width: 100%;
	}

.movable-area {
		height: 100%;
		width: 100%;
		overflow: hidden;
	}

.lookimg {
		width: 100%;
		height: 100%;
	}

.imagecontent {
		width: 50%;
		height: 100vh;
		margin: 0 40rpx;
	}
</style>