为了账号安全,请及时绑定邮箱和手机立即绑定

老师这段代码还是有点小BUG啊,为什么在IE中当鼠标悬浮到小图片所在范围边框时,放大镜就会出了小图片的范围跑到外面去了,这是为什么啊?    课程下载的源代码也是这样。

正在回答

3 回答

最终找到了解决方法:

  1. 问题的原因:由于demo的盒子比img要大两个像素的边框,smallbox的盒子比demo的盒子又大两个像素的边框,所以会出现超出边框的情况。

  2. 解决方法:将在计算中用smallbox的长宽值替换成smallimg原本的长宽值,即可解决BUG。

```

var ObjSmallbox = $("small-box");

var ObjSmallimg = ObjSmallbox.getElementsByTagName("img")[0];

//获取floatbox的定位值

var left = _event.clientX - ObjDemo.offsetLeft - ObjSmallbox.offsetLeft - ObjFloatBox.offsetWidth / 2;

var top = _event.clientY - ObjDemo.offsetTop - ObjSmallbox.offsetTop - ObjFloatBox.offsetHeight / 2;


if(left < 0) left = 0;

else if(left > (ObjSmallimg.offsetWidth - ObjFloatBox.offsetWidth))

left = ObjSmallimg.offsetWidth - ObjFloatBox.offsetWidth;


if(top < 0) top = 0;

else if(top > (ObjSmallimg.offsetHeight - ObjFloatBox.offsetHeight)) 

top = ObjSmallimg.offsetHeight - ObjFloatBox.offsetHeight;


ObjFloatBox.style.left = left + 'px';

ObjFloatBox.style.top = top + 'px';


var pecentX = left / (ObjSmallimg.offsetWidth - ObjFloatBox.offsetWidth);

var pecentY = top / (ObjSmallimg.offsetHeight - ObjFloatBox.offsetHeight);

```

0 回复 有任何疑惑可以回复我~
#1

ErogenousMonstar

原来不是用Markdown写的,,,
2017-07-17 回复 有任何疑惑可以回复我~
#2

ErogenousMonstar

还有一种解决方法,把smallbox的长宽度全部用mark遮盖层的长宽度替换
2017-07-17 回复 有任何疑惑可以回复我~

然后就发现我回答错了!!!!!把border去掉之后还是有BUG!

0 回复 有任何疑惑可以回复我~

原因是smallbox长度多了两像素是floatbox的边框长度,但是我不知道怎么修改才能解决这个BUG

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信