html中让图片放大的代码,HTML5图片预览 放大(示例代码)

图片预览

* {

margin: 0;

padding: 0;

}

.picture {

margin: 20px;

position: relative;

}

#show {

position: absolute;

top: 0;

left: 0;

width: 98px;

height: 98px;

border: 1px solid #e8e8e8;

background: #fff;

opacity: .5;

}

.wrap {

width: 198px;

height: 198px;

border: 1PX solid #e8e8e8;

margin-bottom: 10px;

}

.wrap img {

width: 100%;

height: 100%;

}

.subWrap {

width: 298px;

height: 298px;

overflow: hidden;

position: relative;

border: 1px solid #e8e8e8;

}

.sub {

position: absolute;

top: 0;

left: 0;

width: 598px;

height: 598px;

}

.sub img {

width: 100%;

height: 100%;

}

window.onload = function() {

function p(arg) {

console.log(arg);

}

let file = document.querySelector(‘#file‘),

picture = document.querySelector(‘.picture‘),

wrap = document.querySelector(‘.wrap‘),

sub = document.querySelector(‘.sub‘),

show = document.getElementById(‘show‘),

showTop = 0,

showLeft = 0,

moveTop = 0,

moveLeft = 0;

function move() {

show.onmousemove = function(ev) {

let e = ev || window.event;

e.stopPropagation();

e.preventDefault();

moveTop = e.clientY - picture.offsetTop - wrap.offsetTop - show.offsetHeight / 2;

moveLeft = e.clientX - picture.offsetLeft - wrap.offsetLeft - show.offsetWidth / 2;

p(moveLeft);

if (moveTop < 0) {

show.style.top = ‘0px‘;

console.log(‘上‘);

} else if (moveLeft < 0) {

show.style.left = ‘0px‘;

console.log(‘左‘);

} else if (moveTop > 100) {

show.style.top = ‘100px‘;

console.log(‘上2‘);

} else if (moveLeft > 100) {

show.style.left = ‘100px‘;

console.log(‘左2‘);

} else {

show.style.top = moveTop + ‘px‘;

show.style.left = moveLeft + ‘px‘;

sub.style.top = -moveTop * 3 + ‘px‘;

sub.style.left = -moveLeft * 3 + ‘px‘;

}

}

show.onmouseup = function() {

this.onmousemove = null;

}

}

file.addEventListener(‘change‘, function() {

let reader = new FileReader(),

img = wrap.querySelector(‘img‘),

subImg = sub.querySelector(‘img‘);

reader.readAsDataURL(this.files[0]);

reader.onloadend = function() {

img.src = this.result;

subImg.src = this.result

}

}, false);

move();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值