изменить положение бэкграунда относительно центра
Здравствуйте все. Имеется див с таким стилем:
div.bg { background-position: center top; } Подскажите, пожалуйста, можно ли с помощью jquery сместить его текущую позицию по горизонтали на заданное количество пикселей? |
Цитата:
Как вариант саму картинку сделать "кособокой"... :D Тогда при центрировании она будет смотреться смещёной относительно центра. ;) |
Цитата:
<!DOCTYPE HTML> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> </head> <body> <div id="a"></div> <button onclick="a();">Click</a> <script> function a() { $('#a').css({backgroundPositionX: '+=50px'}); } </script> <style> #a { width: 200px; height: 50px; background-image: url(http://javascript.ru/forum/images/smilies/smile.gif); background-repeat: no-repeat; background-position: center top; border: 1px solid black; } </style> </body> </html> |
Цитата:
|
В ФФ - ноль... :(
|
|
Цитата:
Цитата:
Цитата:
Это означает что к текущему значению добавить еще 50 пикселей |
Цитата:
|
<!DOCTYPE HTML> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> </head> <body> <div style="border:1px solid red"> <div id="a"></div> </div> <button onclick="a();">Click</a> <script> function a() { $('#a').css('marginBottom', '-10px'); $('#a').css('paddingBottom', '10px'); } </script> <style> #a { width: 200px; height: 90px; background-image: url(http://javascript.ru/forum/images/smilies/smile.gif); background-repeat: no-repeat; background-position: center center; /*border: 1px solid black;*/ } </style> </body> </html> |
Snipe, это не интересно... Ты просто установил другое значение, а не "сместил относительно центра". :)
<!DOCTYPE HTML> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> </head> <body> <div id="a"></div> <button onclick="a();">Click</a> <script> function a() { $('#a').css('backgroundPosition', 'center 10px'); } </script> <style> #a { width: 200px; height: 120px; background-image: url(http://javascript.ru/forum/images/smilies/smile.gif); background-repeat: no-repeat; background-position: center center; border: 1px solid black; } </style> </body> </html> |
Цитата:
Тогда, наверное, можно через хак. ) Поправил свой пример. |
Цитата:
|
Цитата:
|
Цитата:
Но по твоему коду ты двигаешь не бекграунд, как просил ТС... ;) |
Цитата:
Но я ж говорю, что это хак. :) |
Можно конечно написать кроссбраузерный код с таким алгоритмом:
|
можно сдвигать так
в старых ie не будет работать <!DOCTYPE html> <html> <head> <meta http-equiv="X-Ua-Compatible" content="IE=Edge"/> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>demo</title> <style type='text/css'> #a { width: 150px; height: 100px; background: url(http://javascript.ru/forum/images/smilies/smile.gif) no-repeat center; border: 1px solid; padding: 0 0 10px; } #a:hover { background-origin: content-box; } </style> </head> <body> <div id="a">навести мышку</div> </body> </html> к сожалению тег <meta http-equiv="X-Ua-Compatible" content="IE=Edge"/> не работает похоже в здесь в iframe чтобы в IE9 и выше заработало надо отдельно запускать или ручками перевести IE9 в режим IE9 |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 22:21. |