* { margin:0; } li { list-style:none; } .list { width:1200px; margin:100px auto; } .list li { float:left; width:240px; height:240px; position:relative; overflow:hidden; } .list li img { width:100%; height:100%; display:block; transition:all 1s; } .list li .mask { background:rgba(255,255,255,0.6); position:absolute; left:-1000px; top:-1000px; width:100%; height:100%; box-sizing:border-box; padding:0 30px; padding-top:30px; color:#003eff; } .list li:hover img { transform:scale(1.5); }
当每一个选项有鼠标滑入时,会滚据进入的方向滑入一个半透明浮层,当鼠标滑出时,再按照滑出的方向进行隐藏
Math.atan2(y, x) 反正切的弧度值 (返回的值是 -PI/2 到 PI/2 之间的弧度值);
弧度值 * (180 / Math.PI) = 角度值;
返回的角度值 是-180°到180°(+180)就是0-360°了
0-360° 除以90° 返回值 是(0.xxxx - 3.xxxx 的小数)等于是 对应在 一二三四的象限(数学中三角函数的象限)里了
此时的Y Y构成的坐标轴(对应DIV的中心点)是正常的垂直水平线X和垂直X轴的Y,+3 就把XY轴旋转一定角度,即坐标轴构成这个div的两根对角线 对角线把DIV分成4部分 对应的就是 四象限。 根据四象限的正切值 判断 鼠标是从上下左右哪个方向进入的
回复var direction = Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4;这句看蒙逼了,为什么 + 180) / 90) + 3) % 4,我知道这部的目的是判断戍边距离哪个边框最近,但不知道怎么实现的,求大神指点
回复