基于vue的图片查看工具
可以切换图片
功能:
1.上一页;
2.下一页;
3.放大(根据个人喜好调整幅度);
4.缩小(根据个人喜好调整幅度);
5.旋转(顺时针,逆时针同理所以不写了);
6.重置;
//**上代码;***//
<style>
.screen {
width: 50vw;
height: 50vh;
position: relative;
overflow: hidden;
background:linear-gradient(90deg,rgb(2, 43, 66),rgb(14, 21, 61));
}
.screen-item {
width: 35vw;
height: 35vh;
top: 7.5vh;
left: 7.5vw;
position: absolute;
}
.tabbar {
width: 240px;
height: 35px;
position: absolute;
bottom: 1px;
background-color: white;
display: flex;
justify-content: space-between;
left: calc(25vw - 120px);
}
</style> <script>
new Vue({
el: "#viewer",
data: {
msg: "测试",
value: 0,
currentUrl:"",
imgList:["./images/atz.jpg","./images/sbl.jpg"]
},
mounted() {
// 初始化;
this.currentUrl = this.imgList[0];
},
methods: {
dragEvent(e) {
// e.target.offsetLeft js获取到元素的left;
// e.target.offsetTop js获取到元素的top;
// 监听全局鼠标移动事件;
let eOffsetLeft = e.target.offsetLeft;
let eOffsetTop = e.target.offsetTop;
document.onmousemove = (ev)=> {
let disX = eOffsetLeft + (ev.clientX - e.clientX);
let disY = eOffsetTop + (ev.clientY - e.clientY);
this.$refs.screenItem.style.left = `${disX}px`;
this.$refs.screenItem.style.top = `${disY}px`;
return false;
}
document.onmouseup = function() {
document.onmousemove = null;
document.onmouseup = null;
}
return false;
},
// 放大事件;
ampEvent() {
let currentWidth = this.$refs.screenItem.offsetWidth;
let currentHeight = this.$refs.screenItem.offsetHeight;
currentWidth += 40;
currentHeight += 40;
this.$refs.screenItem.style.width = currentWidth+"px";
this.$refs.screenItem.style.height = currentHeight+"px";
},
// 缩小事件;
shrink() {
let currentWidth = this.$refs.screenItem.offsetWidth;
let currentHeight = this.$refs.screenItem.offsetHeight;
currentWidth -= 40;
currentHeight -= 40;
this.$refs.screenItem.style.width = currentWidth+"px";
this.$refs.screenItem.style.height = currentHeight+"px";
},
//旋转事件;
rotate() {
if(!this.$refs.screenItem.style.transform) {
this.$refs.screenItem.style.transform = "rotate(90deg)";
}else {
let reg = /\d{1,}/;
let currentValue = reg.exec(this.$refs.screenItem.style.transform)[0]*1;
currentValue += 90;
this.$refs.screenItem.style.transform = `rotate(${currentValue}deg)`;
}
},
// 还原事件;
reset() {
//默认值;
let defaultWidth = "35vw";
let defaultHeight = "35vh";
let defaultLeft = "7.5vw";
let defaultTop = "7.5vh";
let defaultRotate = "rotate(0deg)";
//赋值
this.$refs.screenItem.style.width = defaultWidth;
this.$refs.screenItem.style.height = defaultHeight;
this.$refs.screenItem.style.left = defaultLeft;
this.$refs.screenItem.style.top = defaultTop;
this.$refs.screenItem.style.transform = defaultRotate;
},
// 上一页事件;
prevEvent() {
// 调用reset方法先重置图片状态;
this.reset();
let index = this.imgList.indexOf(this.currentUrl);
if (index == 0) {
this.currentUrl = this.imgList[0];
alert("当前是第一张图片了");
}
else {
index--;
this.currentUrl = this.imgList[index];
}
},
//下一页方法;
nextEvent() {
// 调用reset方法先重置图片状态;
this.reset();
let index = this.imgList.indexOf(this.currentUrl);
if (index == this.imgList.length - 1) {
this.currentUrl = this.imgList[this.imgList.length - 1];
alert("当前是最后一张张图片了");
}
else {
index++;
this.currentUrl = this.imgList[index];
}
}
},
})
</script> 