vue-preview是一个常用的图片查看器,微博网页版就是用的这个插件:
我在项目中也用过这个插件,总体来说,还是比较满意。但是缺少一个图片旋转功能。
安装使用
第一步:安装
npm i vue-preview -S
第二步:引用配置
import VuePreview from 'vue-preview' Vue.use(VuePreview) Vue.use(preview, { mainClass: 'pswp--minimal--dark', barsSize: {top: 0, bottom: 0}, captionEl: false, fullscreenEl: false, shareEl: false, bgOpacity: 0.85, tapToClose: true, tapToToggleControls: false })
第三步:使用
// 定义预览图片列表 previewlist: [ { src: ‘./pic01.jpg', w: 1200, h: 900 }, { src: ‘./pic01.jpg', w: 1200, h: 900 } ] // 给图片添加“preview-img”类(必须添加且要同名),以及绑定“show”方法 <img :src="/UploadFiles/2021-04-02/decodeURIComponent(item.name)">动态获取图片宽高
如果图片列表资源是从服务器获取,则需要先获取图片的真实宽高,具体代码如下:
this. previewlist = []; //查看列表 let imglist = […]; //从服务器获取的图片地址列表 show (index) { for (let i = 0; i < imglist.length; i++) { // 获取图片实际大小 let newImage = {}; let img = new Image(); img.src = imglist[i]; img.onload = function () { newImage.src = imglist[i]; newImage.w = img.width; newImage.h = img.height; }; this.previewlist.push(newImage); } // 正常情况下javascript都是按照顺序执行的。但是我们可能让该语句后面的语句执行完再执行本身,用setTimeout延时0ms来实现。 setTimeout(() => { this.$preview.open(index, this.previewlist); }, 0); }新增图片旋转功能
默认的功能有全屏、放大、分享、图片切换等,有时候我们还需要图片旋转功能,怎么办呢?那只能自己动手改插件了。
第一步:添加旋转图标
图标文件路径:node_modules\photoswipe\dist\default-skin
原来只有前面8个图片,后面那个稍微大一点的旋转图标是我加上去的,当然你也可以把尺寸设置为和原来的一样。
第二步:添加旋转按钮到页面
页面文件路径:node_modules\vue-preview\src\plugins\preview\preview.vue
<button class="pswp__button pswp__button--rotate" title="旋转" @click="imgRotateFn"></button>
第三步:添加旋转按钮的样式
样式文件路径:node_modules\photoswipe\dist\default-skin
.pswp__button--rotate { background-position: -176px 0; }第四步:实现旋转方法
文件路径:node_modules\vue-preview\src\plugins\preview\preview.vue
imgRotateFn () { this.angle+=90; let imgNode = document.getElementsByClassName('pswp__img'); for (let i = 0; i<imgNode.length; i++) { imgNode[i].style.WebkitTransform = 'rotate('+this.angle+'deg)'; } }这里我只贴出了关键代码,需要你自己做浏览器兼容,以及切换图片时,应该将图片角度设置为0等。
测试结果
测试没有问题,终于可以下班了,哈哈哈。
Tips:懒得自己动手改插件的伙伴,可以在楼主的GitHub仓库下载改好后的文件,在你安装好 vue-preview 后用“attachment”文件夹中的三个文件替换你项目中的对应文件就拥有“旋转”功能了。GitHub地址:https://github.com/xiongjun0812/vue-preview
今天就分享到这里,有问题欢迎留言交流,希望能给大家一个参考,也希望大家多多支持。
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]