jquery эффект смены бекграунда, хелп плз - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB89.2589
BTC/USD68674.6194
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 22.08.2012, 18:38   #1
smsupport
Senior Member
 
Аватар для smsupport
 
Регистрация: 12.07.2009
Сообщений: 1,579
Бабло: $361075
Question jquery эффект смены бекграунда, хелп плз

Суть: сделать смену заднего фона кнопок при клике, дополнительно открывается скрытый блок с контентом. Я все сделал, вот только получилась проблема. При клике на кнопку она меняет свой фон и от открывает скрытый блок, при повторном клике, скрытый блок закрывается, но сам фон кнопки не меняется на изначальный. Не знаю как это решить. Мой код ниже. Фон каждой кнопки подгружается из спрайта, всего 2 кнопки и 4 положения (активно/неактивно).

Код:
<script type="text/javascript">
 
$(document).ready(function(){
 
        $(".slidingcat").hide();
        $(".showcat").show();
		

   $('.showcat').click(function(){
		
	$(".showcat").css("background-position","0 -43px"); - вывод активного положения	
	
	
	
	
    $(".slidingcat").slideToggle();
    });
 
});

$(document).ready(function(){
 
    $(".slidinginter").hide();
    $(".showinteres").show();
	
    $('.showinteres').click(function(){
   $(".showinteres").css("background-position","0 -129px"); - вывод активного положения	
    $(".slidinginter").slideToggle();
    });
 
});
 
</script>
__________________
Swissdoc heavy spec
smsupport вне форума  
Старый 22.08.2012, 18:50   #2
Zond
Ебланнед
 
Регистрация: 01.04.2011
Сообщений: 47
Бабло: $17375
По умолчанию

>но сам фон кнопки не меняется на изначальный.

с чего это должно происходить, если в коде ты такого не делаешь?
при каждом клике у тебя происходит

вывод активного положения
.slideToggle();

тебе нужно ввести доп переменную по которой при клике будешь проверять положение кнопки.
что-то типа

if(isButtonActive) {
вернуть фон
скрыть блок
} else {
поменять фон
показать блок
}
Zond вне форума  
Старый 22.08.2012, 20:16   #3
smsupport
Senior Member
 
Аватар для smsupport
 
Регистрация: 12.07.2009
Сообщений: 1,579
Бабло: $361075
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от Zond Посмотреть сообщение
>но сам фон кнопки не меняется на изначальный.

с чего это должно происходить, если в коде ты такого не делаешь?
при каждом клике у тебя происходит

вывод активного положения
.slideToggle();

тебе нужно ввести доп переменную по которой при клике будешь проверять положение кнопки.
что-то типа

if(isButtonActive) {
вернуть фон
скрыть блок
} else {
поменять фон
показать блок
}
А на примере это как?
__________________
Swissdoc heavy spec
smsupport вне форума  
Старый 22.08.2012, 20:49   #4
Zond
Ебланнед
 
Регистрация: 01.04.2011
Сообщений: 47
Бабло: $17375
По умолчанию

типа такого
Цитата:
$(document).ready(function() {

$(".slidingcat,.slidinginter").hide();
$(".showcat,.showinteres").show();
window.isButtonActive = 0;
window.isButton1Active = 0;

$('.showcat').click(function() {
$(".slidingcat").slideToggle(); // показываем/прячем блок

if (window.isButtonActive == 0) {
$(".showcat").css("background-position", "0 -43px"); // меняем фон
window.isButtonActive = 1;
} else {
$(".showcat").css("background-position", "0 -20px"); // меняем фон на первоночальный
window.isButtonActive = 0;
}
});

$('.showinteres').click(function() {
$(".slidinginter").slideToggle(); // показываем/прячем блок

if (window.isButton1Active == 0) {
$(".showinteres").css("background-position", "0 -43px"); // меняем фон
window.isButton1Active = 1;
} else {
$(".showinteres").css("background-position", "0 -20px"); // меняем фон на первоночальный
window.isButton1Active = 0;
}
});

});
Zond вне форума