Javascript 使div朝向光标
通过组合前面的一些答案,我成功地使多个div元素三维旋转到光标(类似于眼睛的行为)。但是,仍然存在一些小错误:Javascript 使div朝向光标,javascript,jquery,css,Javascript,Jquery,Css,通过组合前面的一些答案,我成功地使多个div元素三维旋转到光标(类似于眼睛的行为)。但是,仍然存在一些小错误: 水平移动光标时,在某一点,阴影将“中断”并被置换 如果光标被放置在所有4个元素的中间,则我期望对称行为。然而,事实并非如此 有人能帮我一下吗 这是代码(和笔:) 对于对称问题,解决方案是偏移主体宽度的一半: bodyHalfWidth = $('body').width()/2; // ... More code ... tilty = -Math.min(dx / (elCent
- 水平移动光标时,在某一点,阴影将“中断”并被置换 如果光标被放置在所有4个元素的中间,则我期望对称行为。然而,事实并非如此
对于对称问题,解决方案是偏移主体宽度的一半:
bodyHalfWidth = $('body').width()/2;
// ... More code ...
tilty = -Math.min(dx / (elCenterX + bodyHalfWidth), 1);
这减少了效果,所以我添加了一个增益常数
bodyHalfWidth = $('body').width()/2;
gain = 2;
// ... More code ...
tilty = -Math.min(gain*dx / (elCenterX + bodyHalfWidth), 1);
(编辑:George Lee在此处发布的其他子问题的解决方案,以整合整体答案)
要修复阴影破坏,请删除最后一条if语句
if(dx>elCenterX)
,只保留$(this.css('box-shadow',+shady+'px'+(-shadx)+'px 5px 352a')代码>我已经解决了阴影破坏问题,我只是想看看它们为什么不对称。要修复阴影破坏,请删除最后一条if
语句if(dx>elCenterX)
,只保留$(this).css('box-shadow',+shady+'px'+(-shadx)+'px 5px352a')代码>谢谢!对称问题确实很奇怪……你能解释一下对称问题的起源吗?提供的代码确实有效,但我无法立即想到为什么偏移主体宽度和tilty
会相互连接…您正在使用tilty作为阴影的水平偏移<代码>$(this.css('box-shadow',+shady+'px'+(-shadx)+'px 5px#3D352A')代码>和身体一半的偏移量是因为那是你的零参考。
bodyHalfWidth = $('body').width()/2;
gain = 2;
// ... More code ...
tilty = -Math.min(gain*dx / (elCenterX + bodyHalfWidth), 1);