js 写一个前端图片查看器

本文介绍了一款基于Vue和iView的自定义图片查看器,不仅具备基本的图片预览功能,还提供了图片放大缩小、鼠标滚轮缩放、拖拽、全屏查看、上/下一张切换、双击还原等功能,以及业务层面的图片裁剪、下载、标记、删除操作。

1. 前言

网上已经有不少成熟的图片查看器插件,如果是单纯想要点击图片放大预览的话,可以直接使用插件。例如viewerjs

但是,当打开图片后还需要对图片进行一些像删除、下载、标记等业务层面上的操作,使用插件就显得不那么便捷,于是决定自己简单写个图片查看器

2. 设计思路

项目中用的是vue+iview,于是使用Modal弹窗组件做为播放器的盒子,考虑需要用到的基本功能有:
放大缩小、
监听鼠标滚轮放大缩小、
拖拽、
全屏查看、
查看上/下一张、
双击图片回到初始大小和初始位置

3. 完成效果

在这里插入图片描述
4. 代码思路

html部分:

<Modal
	id="picture_viewer_modal"
	v-model="visible"
	:mask-closable = "false"
	@on-cancel="cancel()"
	footer-hide
	width="70%"
	:fullscreen="fullscreen"
>
	<div class="wrap">
		<p class="num_tip">第 {
  
  {index+1}}/{
  
  {picArr.length}} 张</p>
		
		<!-- 查看图片的盒子 -->
		<div id="father" class="box">
		    <img id="box" class="img_max img_auto" @dblclick="getDefault()" :src="row.src">
		    <!-- 查看上一张 -->
		    <span class="next_btn btn_left" @click="left()"></span>
		    <!-- 查看下一张 -->
		    <span class="next_btn btn_right" @click="right()"></span>
		</div>
		
		<!-- 按钮条 -->
		<div class="tool_bar">
		    <!-- 裁剪 -->
		    <span class="tool_btn btn_1" @click="cutPic()"></span>
		    <!-- 全屏 -->
		    <span class="tool_btn btn_2" @click="fullScreen()"></span>
		    <!-- 放大 -->
		    <span class="tool_btn btn_3" @click="big()"></span>
		    <!-- 缩小 -->
		    <span class="tool_btn btn_4" @click="small()"></span>
		    <!-- 下载 -->
		    <span class="tool_btn btn_5" @click="download()"></span>
	       <!-- 选中 -->
	       <span class="tool_btn btn_8" @click="choose()"></span>
	       <!-- 删除 -->
	       <span class="tool_btn btn_9" @click="del(row.id)"></span>
	   </div>
	</div>
</Modal>

js部分:

props: {
   
   
    picList:Array,
    rowData:Object
},
data() {
   
   
    return {
   
   
    	//弹窗显隐
        visible: false,
        //当前查看的图片
        row: {
   
   },
        //当前查看的图片在数组中的位置
        index: 0,
        //所有图片
        picArr: [],
        //是否全屏
        fullscreen: false,
    };
},
watch: {
   
   
	//监听弹窗打开事件
    modal(val) {
   
   
        this
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值