2014-01-05 2 views
5

Если возможно, я бы предпочел сделать это в формате HTML/CSS/JS, но если нет, все будет.Исправлен фон независимо от позиции браузера (информация включена в изображение!)

Я пытаюсь установить фон для веб-страницы, чтобы иметь абсолютную позицию, которая останется там, независимо от того, где находится окно браузера на экране и независимо от размера.

Изображение разъяснений:

enter image description here

(Explaination для картины: Красный контур окна браузера, голубовато-прозрачная картина положение и размер, что картина всегда должна иметь)

+0

Я думаю, что вы не можете? Вы можете получить размер экрана и размер окна, но я не думаю, что вы можете заставить окно браузера смещаться относительно экрана, так что нет способа узнать, где находится браузер? – adeneo

+0

@adeneo Я думаю, что большинство браузеров дают вам 'window.screenX' и' screenY'. – Pointy

+0

@Pointy - Это довольно круто, я знал о них, но так и не нашел их полезным для чего-либо, я думаю, это все? – adeneo

ответ

4

Вы можете получить положение экрана окна с 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 миллисекундов:

+0

это хороший хак. Проблема, которую я вижу, - это css jquery, очень медленный. родной javascript улучшит его много. – Mohit

+0

@ Приговоры да, возможно, так - я буду возиться с jsbin и видеть. – Pointy

+2

@ Prongs [ну, по крайней мере, это не делает видимых различий в Firefox.] (Http://jsbin.com/oDadOvo/2) – Pointy

Смежные вопросы