uni-app移动端图片预览组件 movable-area 、movable-view (支持缩放,拖动效果、替换部分代码图片可直接使用)

UniApp图片预览组件

利用uni-app官方<movable-area>、<movable-view>内置视图组件 配合 uView 组件的u-popup 弹框组件共同实现封装的图片预览组件,支持手指缩放、拖动效果,替换代码中部分图片后 可以直接使用。

效果图:

在这里插入图片描述

组件代码:

//图片预览组件代码
<template>
	<u-popup :show="showPicPreview" mode="center" @close="close" @open="open">
		<view class="picPreview">
			<view class="closePicPreview" @tap="closePicPreviewHandle()">
				<image src="../../static/img/x.png" mode=""></image> //预览组件关闭隐藏按钮
			</view>
			<movable-area scale-area>
				<movable-view direction="all" @scale="onScale" scale="true" scale-min="1" scale-max="4" :scale-value="scale">
					<image :src="previewUrl" mode="widthFix"></image> //需要展示的图片
				</movable-view>
			</movable-area>
		</view>
	</u-popup>
</template>
<script>
	export default {
   
		name: "photo-preview",
		props: {
   
			//父组件控制显示
			showPicPreview: {
   
				type: Boolean,
				require: true,
				default: false
			},
			//父组件传入图片url
			previewUrl: {
   
				type: String,
				default: ''
			},
		},
		data() {
   
			return {
   };
		},
		methods: {
   
			close() {
   },
			open() {
   },
			onScale() {
   },
			closePicPreviewHandle() {
   
				this.$emit('closePicPreviewHandle')
			}
		}
	}
</script>

<style lang="scss" scoped>
	.picPreview {
   
		position: relative;
		width: 750rpx;
		height: 100vh;
		z-index: 99999;
		background-color: rgba(0, 0, 0, 0.2);
		.closePicPreview {
   
			position: absolute;
			z-index: 99;
			right: 55rpx;
			top: 145rpx;
			width: 45rpx;
			height: 45rpx;
			image {
   
				width: 100%;
				height: 100%;
			}
		}
		movable-view {
   
			display: flex;
			align-items: center;
			justify-content: center;
			width: 100%;
			height: 100%;
		}
		movable-area {
   
			height: 100%;
			width: 100%;
			position: fixed;
			overflow: hidden;
		}
		movable-view image {
   
			width: calc(100% - 300rpx);
		}
	}
</style>



//组件的调用方法
//页面中使用图片预览组件
<template>
<PhotoPreview :showPicPreview="showPicPreview" @closePicPreviewHandle="closePicPreviewHandle()" :previewUrl="previewUrl"></PhotoPreview>
//showPicPreview:控制预览组件的显示,
//previewUrl:传入需要预览显示的图片url,
//closePicPreviewHandle : 关闭当前弹出层的事件
</template>

提示:注意,组件的要注册后再使用,切记!!

官方链接:

movable-area

最近更新

  1. TCP协议是安全的吗?

    2024-02-02 07:12:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-02 07:12:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-02 07:12:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-02 07:12:06       20 阅读

热门阅读

  1. 安装配置hive

    2024-02-02 07:12:06       33 阅读
  2. kafka

    2024-02-02 07:12:06       30 阅读
  3. Android 打包V1 / V2签名

    2024-02-02 07:12:06       27 阅读
  4. easyexcel实现相同内容的上下行合并

    2024-02-02 07:12:06       33 阅读
  5. 介绍 TensorFlow 的基本概念和使用场景。

    2024-02-02 07:12:06       34 阅读
  6. EXCEL VBA调用百度api识别身份证

    2024-02-02 07:12:06       31 阅读
  7. PyTorch与TensorFlow的安装与介绍

    2024-02-02 07:12:06       31 阅读
  8. Qt应用软件【协议篇】modbus-tcp示例

    2024-02-02 07:12:06       31 阅读
  9. Kafka客户端实战

    2024-02-02 07:12:06       34 阅读
  10. 考研经验总结——考试期间

    2024-02-02 07:12:06       35 阅读