Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Jquery. Изменение background-image (https://javascript.ru/forum/jquery/6588-jquery-izmenenie-background-image.html)

digital_sword 07.12.2009 18:39

Jquery. Изменение background-image
 
Как изменить background-image с помощью Jquery?
Делаю так:
$("#round2").hover(function() {
	$(this).animate({background-image:'url(images/round2.gif)'});
}, function() {});



пока глухо. Предложения есть?

subzey 07.12.2009 18:56

Бр-р! Какое значение Вы собираетесь анимировать у background-image?
$(this).css('backgroundImage', 'url(…)');

digital_sword 07.12.2009 19:03

не работает ни
$(this).css({'backgroundImage', 'url(images/round2.gif)'});

ни
$(this).css({'backgroundImage', 'url(http://reklama.rus/themes/garland/images/round1.gif)'});


background-Image писал с черточкой и без

subzey 07.12.2009 19:17

Цитата:

Сообщение от digital_sword (Сообщение 37380)
не работает

Странно.

<script type="text/javascript" src="/misc/pack.2.js"></script>
<div id="my" style="height: 100px; background: crimson">Наведите на этот див</div>
<script>
$("#my").hover(function(){
$(this).css('backgroundImage', 'url(http://javascript.ru/forum/images/ca_serenity/misc/logo.gif)')
})
</script>

subzey 07.12.2009 19:21

digital_sword,
Ах, вот, в чем дело!
Синтаксис:
.css('параметр', 'значение')

или
.css({'параметр': 'значение', 'параметр': 'значение', …});

но не
.css({'параметр', 'значение'});

digital_sword 07.12.2009 19:47

Спасибо! Работает!
И еще вопрос: сделать срабатывание только на удалении мыши с объекта.
В справке: hover( over, out ). Over. Функция, запускающаяся, когда курсор мыши проходит над соответствующим элементом. А как опять же пользоваться?
$("#round2").hover(function(over) {
 $(this).css('backgroundImage', 'url(/themes/garland/images/round1.gif)');
}, function() {});


не дает результата.
т.е. нужна элементарная смена картинки при наведении и возврат в нач.положении при уведении курсора

subzey 07.12.2009 22:02

Так это, второй параметр у метода hover, а не у функции, которая первый параметр.

<script type="text/javascript" src="/misc/pack.2.js"></script>
<div id="my" style="height: 100px; background: crimson">Наведите на этот див</div>
<script>
$("#my").hover(
	function(){
		$(this).css('backgroundImage', 'url(http://javascript.ru/forum/images/ca_serenity/misc/logo.gif)')
	},
	function(){
		$(this).css('backgroundImage', 'none')
	}
);
</script>


Кстати, а Вы уверены, что в Вашем случае нельзя обойтись голым CSS?
Как писал в своем блоге кто-то из разработчиков Оперы,
Цитата:

предоставьте это браузеру

digital_sword 07.12.2009 22:19

Спасибо! Работает как надо!
Значит вторая функция в событии описывает действие при завершении действия события? Или нет?
А все-таки, это можно решить аргументами over? Случай ж не единственный, знание аргументов пригодится.
Цитата:

Сообщение от subzey (Сообщение 37392)
Кстати, а Вы уверены, что в Вашем случае нельзя обойтись голым CSS?

Голый css не сделает плавную смену фона, которую я хочу ввести с функцией animate. И еще jquery у меня и так в этом скрипте используется. Просто пара строк довеска в него.

smok 07.12.2009 22:40

Цитата:

Сообщение от digital_sword (Сообщение 37394)
А все-таки, это можно решить аргументами over?

Здесь это используется.. 1ая функция - onmouseover, 2ая - onmouseout, просто они не подписаны

subzey 07.12.2009 23:38

Цитата:

Сообщение от digital_sword
Просто пара строк довеска в него.

...и баржа выполняющегося кода при каждом mouseover/mouseout над элементом. Но дело Ваше, хехе.


Часовой пояс GMT +3, время: 15:42.