加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

javascript – 修正了浏览器位置的背景(包括说明图片!)

发布时间:2020-12-14 22:52:58 所属栏目:资源 来源:网络整理
导读:如果可能的话我宁愿在HTML / CSS / JS中这样做,但如果没有,任何事情都会发生. 我正在尝试将网页的背景设置为具有一种绝对位置,无论浏览器窗口在屏幕上的位置如何,都将保持不变. 图片澄清: (图片说明:红色轮廓是浏览器窗口,浅蓝色透明图片是图片应该始终具

如果可能的话我宁愿在HTML / CSS / JS中这样做,但如果没有,任何事情都会发生.

我正在尝试将网页的背景设置为具有一种绝对位置,无论浏览器窗口在屏幕上的位置如何,都将保持不变.

图片澄清:

(图片说明:红色轮廓是浏览器窗口,浅蓝色透明图片是图片应该始终具有的位置和大小)

最佳答案
您可以使用window.screenX和window.screenY获取窗口的屏幕位置.然后,您可以使用简单的间隔计时器跟踪它:

setInterval(function() {
  $('body').css('backgroundPosition',-window.screenX + 'px ' + -window.screenY + 'px');
},50);

(它使用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);
})()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读