最佳答案
您可以使用window.screenX和window.screenY获取窗口的屏幕位置.然后,您可以使用简单的间隔计时器跟踪它:
原文链接:https://www.f2er.com/html/426024.htmlsetInterval(function() { $('body').css('backgroundPosition',-window.screenX + 'px ' + -window.screenY + 'px'); },50);
@H_404_19@(它使用jQuery但不是必需的.)
Here is a jsbin to demonstrate.它有点跳跃,但它可能会使客户端机器升温,因此我不会太快地运行计时器.问题是,虽然浏览器会告诉您窗口大小的变化(“调整大小”事件),但它不会通过有关窗口移动的事件告诉您.
这是一个没有jQuery的更有效的版本,并且有一些检查以避免在窗口没有移动时触摸样式. This doesn’t seem to make Firefox or Chrome go too nuts甚至每15毫秒运行一次:
(function() { var sx = window.screenX,sy = window.screenY; setInterval(function() { if (window.screenX !== sx || window.screenY !== sy) document.body.style.backgroundPosition = -(sx = window.screenX) + 'px ' + -(sy = window.screenY) + 'px'; },15); })()
@H_404_19@