1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > html js 图片放大效果 JavaScript实现图片放大预览效果

html js 图片放大效果 JavaScript实现图片放大预览效果

时间:2020-02-18 15:32:23

相关推荐

html js 图片放大效果 JavaScript实现图片放大预览效果

代码实现:

Document

.preview-img {

position: relative;

height: 398px;

}

.mask {

display: none;

position: absolute;

top: 0;

left: 0;

width: 300px;

height: 300px;

background-color: skyblue;

opacity: .4;

border: 1px solid #ccc;

cursor: move;

}

.big {

overflow: hidden;

display: none;

position: absolute;

top: 0;

left: 410px;

width: 500px;

height: 500px;

background-color: pink;

z-index: 99;

border: 1px solid #ccc;

}

.big img {

position: absolute;

top: 0;

left: 0;

}

window.addEventListener('load', function() {

var preview_img = document.querySelector('.preview-img');

var mask = document.querySelector('.mask');

var big = document.querySelector('.big');

// 显示与隐藏

preview_img.addEventListener('mouseover', function() {

mask.style.display = 'block';

big.style.display = 'block';

});

preview_img.addEventListener('mouseout', function() {

mask.style.display = 'none';

big.style.display = 'none';

});

// 盒子跟随鼠标移动

preview_img.addEventListener('mousemove', function(e) {

var x = e.pageX - this.offsetLeft;

var y = e.pageY - this.offsetTop;

var maskX = x - mask.offsetWidth / 2;

var maskY = y - mask.offsetHeight / 2;

var maskMax = preview_img.offsetHeight - mask.offsetHeight;

if (maskX <= 0) {

maskX = 0;

} else if (maskX >= maskMax) {

maskX = maskMax;

}

if (maskY <= 0) {

maskY = 0;

} else if (maskY >= maskMax) {

maskY = maskMax;

}

mask.style.left = maskX + 'px';

mask.style.top = maskY + 'px';

// 大图,根据比例计算坐标

var bigImg = document.querySelector('.bigImg');

var bigMax = bigImg.offsetWidth - big.offsetWidth;

var bigX = bigMax * maskX / maskMax;

var bigY = bigMax * maskY / maskMax;

bigImg.style.left = -bigX + 'px';

bigImg.style.top = -bigY + 'px';

});

});

实现效果:

以上就是JavaScript实现图片放大预览效果的详细内容,更多关于JavaScript 图片放大的资料请关注脚本之家其它相关文章!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。