Смена bg при клике на таб

pessimizator
На сайте с 14.01.2013
Offline
65
466

Добрый день, помогите пожайлуста с сабжем. Делаю простенький сайт, все бы ничего, но есть момент, который я слабо представляю как можно реализовать. http://czech.abcsites.com.ua/ вот сайт. Кликая по табам нужно чтобы менялся фон сайта, для каждого пункта свой bg. В качестве менюшки использую модуль js_contentabs, который выводит материалы из категории.

Вот js менюшки

// When the DOM is ready

(function($) {

$.fn.jSimpleTabs = function(options) {

//Yo' defaults
var defaults = {
allContentBoxes:".content-box",
allTabs:".tabs li a",
$el:"", $colOne:"", $colTwo:"", $colThree:"",
hrefSelector:"",
speedOne:1000,
speedTwo:2000,
speedOne:1000,
columnReadyCounter:0
};

//Extend those options
var options = $.extend(defaults, options);

return this.each(function() {
var module_id = this.id;
options.allContentBoxes = "#"+module_id+" "+options.allContentBoxes;
options.allTabs = "#"+module_id+" "+options.allTabs;
$("#"+module_id+" .tabs li:first-child a, #"+module_id+" .content-box:first").addClass("current");
$("#"+module_id+" .box-wrapper .current .col").css("top", 0);

//$(this).delegate(".tabs a", "click", function() {
($(this).find(".tabs a")).click(function() {

$el = $(this);

if ( (!$el.hasClass("current")) && ($(":animated").length == 0 ) ) {

// current tab correctly set
$(options.allTabs).removeClass("current");
$el.addClass("current");

// optional... random speeds each time.
speedOne = Math.floor(Math.random()*1000) + 500;
speedTwo = Math.floor(Math.random()*1000) + 500;
speedThree = Math.floor(Math.random()*1000) + 500;

// each column is animated upwards to hide
// kind of annoyingly redudundant code

colOne = $("#"+module_id+" .box-wrapper .current .col-one");
colOne.animate({
"top": colOne.height()
}, speedOne);

colTwo = $("#"+module_id+" .box-wrapper .current .col-two");
colTwo.animate({
"top": colTwo.height()
}, speedTwo);

colThree = $("#"+module_id+" .box-wrapper .current .col-three");
colThree.animate({
"top": colThree.height()
}, speedThree);

// new content box is marked as current
$(options.allContentBoxes).removeClass("current");
hrefSelector = $el.attr("href");
$(hrefSelector).addClass("current");

// columns from new content area are moved up from the bottom
// also annoying redundant and triple callback seems weird
$("#"+module_id+" .box-wrapper .current .col-one").animate({
"top": 0
}, speedOne, function() {
ifReadyThenReset(module_id,options);
});

$("#"+module_id+" .box-wrapper .current .col-two").animate({
"top": 0
}, speedTwo, function() {
ifReadyThenReset(module_id,options);
});

$("#"+module_id+" .box-wrapper .current .col-three").animate({
"top": 0
}, speedThree, function() {
ifReadyThenReset(module_id,options);
});


}; return false;
});

function ifReadyThenReset(module_id,options) {

options.columnReadyCounter++;

if (options.columnReadyCounter == 3) {
$("#"+module_id+" .col").not(".current .col").css("top", 350);
columnReadyCounter = 0;
}

};
});



}//jSimpleTabs plugin call
})($jsmart||jQuery);

Насколько я понял из всего нарытого по теме, нужно получать id таба, и через условные операторы назначать соответсвующий фон определенному id. Если еще с сравниями разберусь, то как сменить фон при определенном id таба для меня загадка... Если не трудно ткните носом. Спасибо.

дани мапов
На сайте с 06.09.2012
Offline
204
#1

После строки $(hrefSelector).addClass("current"); добавьте код


var $body = $("body");

if (hrefSelector == "#theme220190") {
$body.removeClass().addClass("bg");
} else if (hrefSelector == "#theme220191") {
$body.removeClass().addClass("bg2");
} else if (hrefSelector == "#theme220192") {
$body.removeClass().addClass("bg3");
} else if (hrefSelector == "#theme220193") {
$body.removeClass().addClass("bg4");
} else if (hrefSelector == "#theme220194") {
$body.removeClass().addClass("bg5");
} else if (hrefSelector == "#theme220195") {
$body.removeClass().addClass("bg6");
} else if (hrefSelector == "#theme220196") {
$body.removeClass().addClass("bg7");
} else if (hrefSelector == "#theme220197") {
$body.removeClass().addClass("bg8");
}

В style1.css добавьте:


body.bg2 {background:url(http://czech.abcsites.com.ua/images/number2.jpg)}
body.bg3 {background:url(http://czech.abcsites.com.ua/images/number3.jpg)}
body.bg4 {background:url(http://czech.abcsites.com.ua/images/number4.jpg)}
body.bg5 {background:url(http://czech.abcsites.com.ua/images/number5.jpg)}
body.bg6 {background:url(http://czech.abcsites.com.ua/images/number6.jpg)}
body.bg7 {background:url(http://czech.abcsites.com.ua/images/number7.jpg)}
body.bg8 {background:url(http://czech.abcsites.com.ua/images/number8.jpg)}

Картинки не забудьте залить :)

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
pessimizator
На сайте с 14.01.2013
Offline
65
#2

Спасибо огромное,сейчас буду пробывать )

R
На сайте с 18.12.2009
Offline
92
#3

А может проще в имени файла картинки прописать значение hrefSelector, чтобы не плодить кучу if else?

дани мапов
На сайте с 06.09.2012
Offline
204
#4
rerighter:
А может проще в имени файла картинки прописать значение hrefSelector, чтобы не плодить кучу if else?

Еще один "супероптимизатор" ? А что может быть сложного: вставить готовый код? Или вы думаете, что очень помогли ТС своим советом?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий