//11. 当鼠标在中图上移动时, 显示对应大图的附近部分区域
function bigImg () {
var $mediumImg = $('#mediumImg')
var $mask = $('#mask')//小黄块
var $maskTop = $('#maskTop')//覆盖在图片外的和图片大小一样的一层
var $largeImgContainer = $('#largeImgContainer')
var $loading = $('#loading')
var $largeImg = $('#largeImg')
//黄块长宽
var maskWidth = $mask.width()
var maskHeight = $mask.height()
//图片长宽
var maskTopWidth = $maskTop.width()
var maskTopHeight = $maskTop.height()
$maskTop.hover(function(event){//进入
//显示小黄块
$mask.show()
//动态加载对应的大图
//images\products\product-s1-m.jpg
//images\products\product-s1-l.jpg
var src = $mediumImg.attr('src').replace('-m.', '-l.')
//给大图添加src
$largeImg.attr('src', src)
//显示放大镜框架
$largeImgContainer.show()
//绑定加载完成的监听
$largeImg.on('load',function(){//大图加载完成
//得到大图的尺寸
var largeWidth = $largeImg.width
var largeHeight = $largeImg.height
//给$largeImgContainer大图容器设置尺寸
$largeImgContainer.css({
width : largeWidth/2
height : largeHeight/2
})
//显示大图
$largeImg.show()
//隐藏加载进度条
$loading.hide()
//绑定mouseMove监听,鼠标移动的监听
$maskTop.mousemove(function(event){//在移动过程中反复调用
/*
1.移动小黄块
2.移动大图
*/
//1.移动小黄块
//计算出小黄块的left/top
var left = 0
var top = 0
//事件的坐标
var eventLeft = event.offsetX
var eventTop = event.offsetY
left = eventLeft - maskWidth/2
top = eventTop - maskHeight/2
//left在[0,maskTopWidth - maskWidth]
if(left < 0) {
left = 0
}else if(left > maskTopWidth - maskWidth) {
left = maskTopWidth - maskWidth
}
//top在[0,maskTopHeight - maskHeight]
if(top < 0) {
top = 0
}else if(top > maskTopHeight - maskHeight) {
top = maskTopHeight - maskHeight
}
//给$mask小黄块重新定位
$mask.css({
left : left,
top : top
})
//2.移动大图
//得到大图的坐标
left = -left*largeWidth/maskTopWidth
top = -top*largeHeight/maskTopHeight
//设置大图的坐标
$largeImg.css({
left : left,
top : top
})
})
})
},function(){
//隐藏小黄块
$mask.hide()
//隐藏大图容器
$largeImgContainer.hide()
//隐藏大图
$largeImg.hide()
})
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)