Jquery. Изменение background-image
Как изменить background-image с помощью Jquery?
Делаю так: $("#round2").hover(function() { $(this).animate({background-image:'url(images/round2.gif)'}); }, function() {}); пока глухо. Предложения есть? |
Бр-р! Какое значение Вы собираетесь анимировать у background-image?
$(this).css('backgroundImage', 'url(…)'); |
не работает ни
$(this).css({'backgroundImage', 'url(images/round2.gif)'}); ни $(this).css({'backgroundImage', 'url(http://reklama.rus/themes/garland/images/round1.gif)'}); background-Image писал с черточкой и без |
Цитата:
<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> |
digital_sword,
Ах, вот, в чем дело! Синтаксис: .css('параметр', 'значение') или .css({'параметр': 'значение', 'параметр': 'значение', …}); но не .css({'параметр', 'значение'}); |
Спасибо! Работает!
И еще вопрос: сделать срабатывание только на удалении мыши с объекта. В справке: hover( over, out ). Over. Функция, запускающаяся, когда курсор мыши проходит над соответствующим элементом. А как опять же пользоваться? $("#round2").hover(function(over) { $(this).css('backgroundImage', 'url(/themes/garland/images/round1.gif)'); }, function() {}); не дает результата. т.е. нужна элементарная смена картинки при наведении и возврат в нач.положении при уведении курсора |
Так это, второй параметр у метода 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? Как писал в своем блоге кто-то из разработчиков Оперы, Цитата:
|
Спасибо! Работает как надо!
Значит вторая функция в событии описывает действие при завершении действия события? Или нет? А все-таки, это можно решить аргументами over? Случай ж не единственный, знание аргументов пригодится. Цитата:
|
Цитата:
|
Цитата:
|
Вот вариант решения анимации бэкграунда.
Кстати, subzey, как Вы делаете, чтобы примеры в сообщении отображались? <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script> <div id="my" style="height: 76px; width:336px; background: crimson; position:relative; z-index:0;"> <div style="position:relative; z-index:2;">Наведите на этот див</div> <div id="bg" style="position:absolute; z-index:1; background:url(http://javascript.ru/forum/images/ca_serenity/misc/logo.gif); width:336px; height:76px; top:0; left:0; display:none;" </div> <script> $("#my").hover( function(){ $('#bg').stop(true,true).fadeIn(); }, function(){ $('#bg').stop(true,true).fadeOut(); } ); </script> |
|
subzey, ОК, спасибо.
|
Цитата:
http://plugins.jquery.com/project/color |
А может есть код какой-нибудь который может плавно класс элемента сменить? Или плавный hover...
Что-то типа : <a class="portfolio" href="#"></a> .portfolio { background:url(../images/menu.png) no-repeat 0 0; } .portfolio:hover { background-position: 0 -40px; } Нужно что б изображение плавно менялось просто... Знает кто? |
animate. Плавно меняет стиль элемента.
|
Спасибо что ответили. Дело в том что я не знаю jquery :cray:
Мне бы какой-нибудь пример <script type='text/javascript'></script> |
Я так понимаю
<script type="text/javascript"> $('#menu').hover(function() { $('.portfolio').animate({ opacity: 0.25, }, 1000, function() { }); }); Только что написать нада что б плавно менялся класс элемента? Или так: <script type="text/javascript"> $('#menu').hover(function() { $('.portfolio').animate( { background-position: 0 -40px; }, 1000, function() { }); }); </script> Но так не получается что-то... Столько всего про этот jquery а элементарно hover анимированным сделать нужно лазить по всему интернету и еще ничего не найти ) |
Vivat плавно класс поменять не выйдет...Тебе нужно просто поменять стиль, через animate или fadeIn/Out или sladeDown/Up
$('#menu').hover(function() { $('.portfolio').animate( { background-position: 0 -40px; }, 1000, function() { }); }); если ты пытаешься сместить бекграунд, включи логику. Тебе нужно смещать марджин за какое-то количество секунд, например: $('.portfolio').animate({marginLeft: 40px},1000)И ровно за 1 секунду твой бекграунд сместится(плавно) на 40 пикселей вправо. |
Хорошо а как fadeIn/Out написать?
тогда .portfolio:hover переименую на .portfolio-hover и уже не селектор а класс получился. у меня такой html: <div class="menu"> <a class="portfolio" href="#"></a> <a class="services" href="#"></a> <a class="contacts" href="#"></a> </div> мне для каждого a элемента надо сделать fadeIn/Out Это как-то так: <script type="text/javascript"> $('.portfolio').hover(function() { $('.portfolio').animate({fadeIn/Out},1000) }) $('.services').hover(function() { $('.services').animate({fadeIn/Out},1000) }) }) </script> Да? У каждого класса изображение фона по разному сдвигается |
Vivat, нет! Совсем не так! Ты определись что именно ты хочешь сделать со своими ссылками. fadeIn или fadeOut - это таже анимация только, как:
$(".portfolio").animate({opacity:0},1000) Вобщем, четко сформулируй задачу и скажи что ИМЕННО надо сделать, а не просто поменять класс или стиль... |
Либо вот так делаешь:
<script type="text/javascript" src="/js/jQuery.js"></script> <script type="text/javascript"> $(function(){ $("#ee").hover(function(){ var bg = $(".portfolio"); var bg1 = $(".portfolio_1"); if (bg1.css("display") == "none"){ bg.fadeOut(500); bg1.fadeIn(500); } else if (bg.css("display") == "none"){ bg1.fadeOut(500); bg.fadeIn(500); } }) }); </script> <style type="text/css"> .portfolio,.portfolio_1{ background-image:url("/images/background.png"); float:left; position:absolute; top:0; z-index:1; width:100%; height:100%; text-align:center; font:14px tahoma; color:black; text-decoration:none; } .portfolio_1{ background-image:url("/images/background_1.png"); display:none; z-index:3; } #ee{ width:200px; height:100px; margin:20px; position:relative; } </style> <div id="ee"> <a href="#" class="portfolio">Текст</a> <a href="#" class="portfolio_1">Текст</a> </div> либо качаешь плагин и используя документацию и делаешь так как тебе именно надо. |
Спасибо, вроде разобрался :yes: :dance: :D
|
Всем здравствуйте.
У меня такой вопрос - а если необходимо прописывать пути элементов из переменной, как это необходимо прописать? а то что-то у меня пока полный провал. Заранее спасибо. |
У вас не один пример не работает!
|
на СSS
transition: background .25s ease-in-out; -moz-transition: background .25s ease-in-out; -webkit-transition: background .25s ease-in-out; |
либо background-position, а в фоне мультик
|
Часовой пояс GMT +3, время: 15:51. |