另图片放大html,图片放大特效.html

图片放大特效

.box{width:350px;height:350px;border:1px solid #ccc;position:relative}

.big{width:400px;height:400px;position:absolute;top:0;left:360px;border:1px solid #ccc;overflow:hidden;display:none}

.mask{width:175px;height:175px;background:rgba(255,255,0,.4);position:absolute;top:0;left:0;cursor:move;display:none}

.small{position:relative}

.box img{vertical-align:top}

#bigBox img{position:absolute}

16.jpg

17.jpg

// 需求:鼠标经过盒子 显示遮罩和大图 鼠标移动的时候 让遮罩跟着移动让大图按照比例移动

function $(id) { // 根据id值获取元素对象

return document.getElementById(id);

}

// 鼠标经过盒子 显示遮罩和大图

$('smallBox').onmouseover = function() {

$('mask').style.display = 'block';

$('bigBox').style.display = 'block';

};

// 鼠标离开盒子 隐藏遮罩和大图

$('smallBox').onmouseout = function() {

//隐藏遮罩和大图

$('mask').style.display = 'none';

$('bigBox').style.display = 'none';

};

// 鼠标在盒子上移动的时候

// 让遮罩跟着鼠标移动

$('smallBox').onmousemove = function(event) {

var event = event || window.event;

//鼠标在页面中的坐标

var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;

var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;

// 计算鼠标的位置 距 盒子 的距离

var boxX = pageX - $('box').offsetLeft;

var boxY = pageY - $('box').offsetTop;

// 计算遮罩的位置

var maskX = boxX - $('mask').offsetWidth / 2;

var maskY = boxY - $('mask').offsetHeight / 2;

// 限定遮罩可移动范围

if (maskX < 0) {

maskX = 0;

}

if (maskX > $('smallBox').offsetWidth - $('mask').offsetWidth) {

maskX = $('smallBox').offsetWidth - $('mask').offsetWidth;

}

if (maskY < 0) {

maskY = 0;

}

if (maskY > $('smallBox').offsetHeight - $('mask').offsetHeight) {

maskY = $('smallBox').offsetHeight - $('mask').offsetHeight;

}

// 修改遮罩的显示位置

$('mask').style.left = maskX + 'px';

$('mask').style.top = maskY + 'px';

// 按照比例移动大图 大图片能够移动的总距离 = 大图的宽度 - 大盒子的宽度

var bigImgToMove = $('bigImg').offsetWidth - $('bigBox').offsetWidth;

// 遮罩能够移动的总距离 = 小盒子的宽度 - 遮罩的宽度

var maskToMove = $('smallBox').offsetWidth - $('mask').offsetWidth;

// 计算移动比例rate = 大图片能够移动的总距离/遮罩能够移动的总距离

var rate = bigImgToMove / maskToMove;

// 设置大图片当前的位置 = rate * 遮罩当前的位置

$('bigImg').style.left = - rate * maskX + 'px';

$('bigImg').style.top = - rate * maskY + 'px';

};

一键复制

编辑

Web IDE

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值