Z
С нами с 15.05.05
Сообщения: 55189
Рейтинг: 7770
|
Добавлено: 08/03/13 в 22:20 |
соосбтвенно сабж
есть .js меню всплывающее, чето перестало нормально работать
может кто поправит, хотя не полностью уверен что проблема в коде, но есть огромное подозрение что именно так и обстоит дело
сам код
Код: [развернуть] | if (typeof(MooTools) != 'undefined'){
var subnav = new Array();
Element.extend(
{
hide: function(timeout)
{
this.status = 'hide';
clearTimeout (this.timeout);
if (timeout)
{
this.timeout = setTimeout (this.anim.bind(this), timeout);
}else{
this.anim();
}
},
show: function(timeout)
{
this.status = 'show';
clearTimeout (this.timeout);
if (timeout)
{
this.timeout = setTimeout (this.anim.bind(this), timeout);
}else{
this.anim();
}
},
setActive: function () {
//this.addClass(classname);
this.className+='sfhover';
/*
for(var i=0;i<this.childNodes.length; i++) {
if(this.childNodes[i].nodeName.toLowerCase() == 'a') {
//$(this.childNodes[i]).addClass(classname);
$(this.childNodes[i]).setActive();
return;
}
}
*/
},
setDeactive: function () {
//this.removeClass(classname);
this.className=this.className.replace(new RegExp("sfhover\\b"), "");
/*
for(var i=0;i<this.childNodes.length; i++) {
if(this.childNodes[i].nodeName.toLowerCase() == 'a') {
$(this.childNodes[i]).setDeactive();
return;
}
}
*/
},
anim: function() {
if ((this.status == 'hide' && this.style.left != 'auto') || (this.status == 'show' && this.style.left == 'auto' && !this.hidding)) return;
this.setStyle('overflow', 'hidden');
if (this.status == 'show') {
this.hidding = 0;
this.hideAll();
//this.parentNode.setActive();
} else {
//this.parentNode.setDeactive();
}
if (this.status == 'hide')
{
this.hidding = 1;
//this.myFx1.stop();
this.myFx2.stop();
//this.myFx1.start(1,0);
if (this.parent._id) this.myFx2.start(this.offsetWidth,0);
else this.myFx2.start(this.offsetHeight,0);
} else {
this.setStyle('left', 'auto');
//this.myFx1.stop();
this.myFx2.stop();
//this.myFx1.start(0,1);
if (this.parent._id) this.myFx2.start(0,this.mw);
else this.myFx2.start(0,this.mh);
}
},
init: function() {
this.mw = this.clientWidth;
this.mh = this.clientHeight;
//this.myFx1 = new Fx.Style(this, 'opacity');
//this.myFx1.set(0);
if (this.parent._id)
{
this.myFx2 = new Fx.Style(this, 'width', {transition: Fx.Transitions.Quart.easeOut}, {duration: 300});
this.myFx2.set(0);
}else{
this.myFx2 = new Fx.Style(this, 'height', {transition: Fx.Transitions.Quart.easeOut}, {duration: 300});
this.myFx2.set(0);
}
this.setStyle('left', '-999em');
animComp = function(){
if (this.status == 'hide')
{
this.setStyle('left', '-999em');
this.hidding = 0;
}
this.setStyle('overflow', '');
}
this.myFx2.addEvent ('onComplete', animComp.bind(this));
},
hideAll: function() {
for(var i=0;i<subnav.length; i++) {
if (!this.isChild(subnav[i]))
{
subnav[i].hide(0);
}
}
},
isChild: function(_obj) {
obj = this;
while (obj.parent)
{
if (obj._id == _obj._id)
{
//alert(_obj._id);
return true;
}
obj = obj.parent;
}
return false;
}
});
var DropdownMenu = new Class({
initialize: function(element)
{
//$(element).mh = 0;
$A($(element).childNodes).each(function(el)
{
if(el.nodeName.toLowerCase() == 'li')
{
//if($(element)._id) $(element).mh += 30;
$A($(el).childNodes).each(function(el2)
{
if(el2.nodeName.toLowerCase() == 'ul')
{
$(el2)._id = subnav.length+1;
$(el2).parent = $(element);
subnav.push ($(el2));
el2.init();
el.addEvent('mouseover', function()
{
el.setActive();
el2.show(0);
return false;
});
el.addEvent('mouseout', function()
{
el.setDeactive();
el2.hide(20);
});
new DropdownMenu(el2);
el.hasSub = 1;
}
});
if (!el.hasSub)
{
el.addEvent('mouseover', function()
{
el.setActive();
return false;
});
el.addEvent('mouseout', function()
{
el.setDeactive();
});
}
}
});
return this;
}
});
Window.onDomReady(function() {new DropdownMenu($E('#topmenu ul.menu-nav'))});
}else {
sfHover = function() {
var sfEls = document.getElementById("#topmenu ul.menu-nav").getElementsByTagName("li");
for (var i=0; i<sfEls.length; ++i) {
sfEls[i].onmouseover=function() {
this.className+="sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp("sfhover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
} |
|
|
|
|
+ +
WP-Master
С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123
|
Добавлено: 08/03/13 в 23:53 |
andreich: муутулз, чувак пусть напишут на jquery.
|
|
|
|
Z
С нами с 15.05.05
Сообщения: 55189
Рейтинг: 7770
|
Добавлено: 09/03/13 в 00:36 |
Дартаньян: да этоготовое решение, а не писанное
тоесть всетаки дело в mootools ?
|
|
|
|
+ +
WP-Master
С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123
|
Добавлено: 09/03/13 в 00:58 |
andreich: дай ссылку на то где это юзают, может у тебя там Jquery выше объявлен вот и конфликт.
|
|
|
|
Z
С нами с 15.05.05
Сообщения: 55189
Рейтинг: 7770
|
Добавлено: 09/03/13 в 01:05 |
http://www.fluffy-favourite.ru
там вообще странная ситуация
хостился себе на php 4.x.x, но потом пришлось перехать на PHP 5.3.x
вначале эта менюшка вообще пропала, тупо не грузилась (точнее не грузились вообще никакие меню)
Joomla была 1.5.17 сегодня решил поковырять - апгрейдил joomla до 1.5.26, как я понял там и mootools апгейдился с верси 1.х до 2.х
меню появились, верхнее такое вот кривое
я просто не силен во всех этих фрэймворках, да и почасти программирования вообще
|
|
|
|
+ +
WP-Master
С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123
|
Добавлено: 09/03/13 в 01:10 |
andreich: у тебя топ меню не пашет, там просто пустое место.
|
|
|
|
Z
С нами с 15.05.05
Сообщения: 55189
Рейтинг: 7770
|
Добавлено: 09/03/13 в 01:13 |
странная хуйня только что работало
ебабокнулось
ладно завтра убду ковырять спать пора
|
|
|
|
+ +
WP-Master
С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123
|
Добавлено: 09/03/13 в 01:47 |
andreich: php логи кидай сюда.
|
|
|
|