Участник:Тихмонатор Тестбот/common.js
Материал из Anekdot.me
Перейти к навигацииПерейти к поискуЗамечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
- Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
- Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
- Opera: Перейдите в Menu → Настройки (Opera → Настройки на Mac), а затем Безопасность → Очистить историю посещений → Кэшированные изображения и файлы
function createMorphObjects() {
var morphTargets = new Array(), morphLinks = new Array(), currentMorph = new Array();
function morphHandler(cont, num) {
return function() {
currentMorph[cont].curr = num;
var t = morphTargets[cont];
var l = morphLinks[cont];
for(i in t) if(currentMorph[cont].ms != null) t[i].style.display = t[i].className.match(l[num].className.replace(/.*morphlink\s+morph(\S+).*/, '$1'))? "" : "none"; else t[i].style.display = i==num ? "" : "none";
var h = currentMorph[cont].hilight, d = currentMorph[cont].defstyle;
for(i in l) l[i].setAttribute('style', (i!=num)?d:h);
};
};
function morphNext(cont) {
return function() {
var t = currentMorph[cont];
morphHandler(cont, t.curr<(t.max-1)?t.curr+1:0)();
}
}
function morphPrev(cont) {
return function() {
var t = currentMorph[cont];
morphHandler(cont, t.curr>0?t.curr-1:t.max-1)();
}
}
var morphContainers = document.querySelectorAll(".morphcontainer");
for(var i = 0; i<morphContainers.length; i++) {
var this_ = morphContainers[i];
morphTargets[i] = {};
morphLinks[i] = {};
var isHover = this_.className.match(/\bhover\b/);
var isManualsort = this_.className.match(/\bmanualsort\b/);
var morphCs = this_.querySelectorAll(".morphcontent");
var morphLs = this_.querySelectorAll(".morphlink");
var h = this_.querySelector(".morphlink_hilight");
h = h ? h.getAttribute('style') : "color:blue; text-decoration:underline; cursor: pointer;";
var def = this_.querySelector(".morphlink_default");
def = def ? def.getAttribute('style') : "color:blue; cursor: pointer;";
currentMorph[i] = {max: morphLs.length, curr: 0, hilight: h, defstyle: def, ms: isManualsort};
for(var m = 0; m<morphLs.length; m++) {
morphLinks[i][m] = morphLs[m];
$(morphLs[m]).on(isHover?'mouseover':'click',morphHandler(i, m));
morphLs[m].setAttribute('style', m?def:h);
};
for(var m = 0; m<morphCs.length; m++) {
morphTargets[i][m] = morphCs[m];
if (isManualsort != null) morphCs[m].style.display = morphCs[m].className.match(morphLs[0].className.replace(/.*morphlink\s+morph(\S+).*/, '$1'))? "" : "none"; else morphCs[m].style.display = m ? "none" : "";
};
if (this_.querySelector(".morphprev")) $(this_.querySelector(".morphprev")).click(morphPrev(i));
if (this_.querySelector(".morphnext")) $(this_.querySelector(".morphnext")).click(morphNext(i));
}
}
$(createMorphObjects);