在上一个案例-可移动的对话框中, 出现了一个bug,当我按下鼠标并拖动对话框时,鼠标距离对话框总有个距离,且永远无法移动到文档的四个角,如下图:
百度无果以后,自己排查:
- 查看js中的代码,因为是按下鼠标并拖动时,才出现的情况,所以思考是不是公式写错,或者我写的公式逻辑上有误,排查以后发现不是;
仔细查看有问题的页面,发现对话框弹出来以后,就会有滚动条。
固第二个排查思路是检查CSS样式。
因为CSS样式写的很多,排查起来很困难,一度想放弃算了。但是,还是想想而已。
最后定位这段样式
.login{
width: 400px;
height: 220px;
position: fixed;
border-radius: 30px;
background: #ffffff;
box-shadow: 0px 0px 20px #ddd;
z-index: 9999;
transform: translate(110%, 80%);
text-align: center;
position: relative;
margin: 300px auto;
display: none;
}
-
发现自己写了两个position,为了让盒子可以在文档流中自由移动,所以position要设置成fixed或者absolute。注释掉 position: relative;注释完以后,右侧和下方的滑动条不见了。
-
关于鼠标跟盒子之间一直有个距离,我一开始以为是哪个地方的height设置了,后面发现即使注释了,也不影响这个bug的出现。最后问题定位在 margin: 300px auto;是我在盒子固定不动时,想着让他水平居中,而设置了margin,结果就导致了数据距离盒子有一段距离。