Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменить меню на сайте 
:(
    Опции темы
Cobalt
Дата 2.2.2011, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.8.2006

Репутация: нет
Всего: 1



вообщем дело такое, сайт старый, писался в 2005 году кажись. вообщем тогда разработчики сделали рабочее меню для ИЕ и успокоились(хотя может и нет), сейчас оно не пашет в опере, хроме, новом ИЕ.
в ФФ вроде пашет почему то.

вопрос, может можно малой кровью изменить скрипт и заставить его работать нормально

я в этих делах вообщем нуб
scripts.js
Код



    function unFocus()
    {
        document.search.str.blur();
    }
    function jm(mainDiv,apearDiv)
    {
        menuPosition(mainDiv,apearDiv);
        showLayer(apearDiv);
    }
    function menuPosition(mainDiv,apearDiv)
    {
        var is=new Is();        
        if (is.ie)
        {
            var mainMenu=document.all[mainDiv];
            mainLeft = 0; 
            mainTop = -12;
            while (mainMenu && mainMenu.offsetParent)
            {
                mainLeft+=mainMenu.offsetLeft;
                mainTop+=mainMenu.offsetTop;
                mainMenu=mainMenu.offsetParent;
            }
            document.all[apearDiv+"Div"].style.pixelLeft=mainLeft;
            document.all[apearDiv+"Div"].style.pixelTop=mainTop+34;
            if(navigator.appName=='Opera')
            {
                
                document.all[apearDiv+"Div"].style.pixelTop=mainTop;
            }
        }
        else
        {
            if(is.ns)
            {
                var mainMenu=document.getElementById(mainDiv);
                mainLeft = 0; 
                mainTop = 0; 
                while (mainMenu && mainMenu.offsetParent)
                {
                    mainLeft+=mainMenu.offsetLeft;
                    mainTop+=mainMenu.offsetTop;
                    mainMenu=mainMenu.offsetParent;
                }
                document.getElementById(apearDiv+"Div").style.left=mainLeft;
                document.getElementById(apearDiv+"Div").style.top=mainTop+14;
            }
            if(navigator.appName=='Opera')
            {
                
                document.all[apearDiv+"Div"].style.pixelTop=mainTop;
            }
        }
    }    
    
    //**********************************************
    function Is()
    {
        var appName = navigator.appName;
        var version = navigator.appVersion;
    
        this.ns = ( appName == "Netscape" );
        this.ns4 = this.ns && version.indexOf("4.")!=-1;
        this.ns5 = this.ns && version.indexOf("5.")!=-1;
        this.ns6 = ( this.ns5 || (this.ns && version.indexOf("6.")!=-1) );

        this.ie = ( appName == "Microsoft Internet Explorer" );
        this.ie4 = this.ie && version.indexOf("MSIE 4.")!=-1;
        this.ie5 = this.ie && version.indexOf("MSIE 5.")!=-1;
        this.ie6 = this.ie && version.indexOf("MSIE 6.")!=-1;
    
        var userAgent = navigator.userAgent.toLowerCase();
        this.mac = ( userAgent.indexOf( "mac" ) != -1 );
        this.win = ( userAgent.indexOf( "windows" ) != -1 );
        this.linux = ( userAgent.indexOf( "linux" ) != -1 );
    }
    Is.prototype.toString = function()
    {
        var s = '';
        for( var i in this )
        {
            s += i + ': ' + this[i] + '\n';
        }
        return s;
    }
    var is = new Is();
    function objectMenu( div )
    {
        this.id = div.id;
        this.name = div.id.replace(/Div/, "");

        this.div = div;
        this.style = ( is.ns4 ) ? this.div : this.div.style;

        //this.position = this.getPosition();
        //this.size = this.getSize();
    }
    objectMenu.all = new Array();
    objectMenu.add = function( div )
    {
        var name = div.id.slice(0, -3);
        if( div.id == name + "Div")
        {
            objectMenu.all[ name ] = new objectMenu( div );
            eval( name + " = objectMenu.all." + name );
        }
    }
    objectMenu.init = function( doc )
    {
        this.isLoaded = true;
        if( document.layers )
        {
            if( doc == null ) doc = document;
            for( var i=0; i<doc.layers.length; i++ )
            {
                objectMenu.add( doc.layers[i] );
                objectMenu.init( doc.layers[i].document );
            }
            return true;
        } 
        var allD = false;
        if( is.ie4 ) 
            allD = document.all.tags("DIV");
            
        else 
            if( is.ie5 || is.ie6 ) 
                allD = document.getElementsByTagName("DIV");
            else 
                if( is.ns6 ) 
                    allD = document.getElementsByTagName("DIV");
        if( allD )
        {
            for( var i=0; i<allD.length; i++ )
                objectMenu.add( allD[i] );
            return true;
        }
        return false;
    }
    objectMenu.prototype.show = function()
    {
        this.style.visibility = "visible";
    }
    objectMenu.prototype.hide = function()
    {
        this.style.visibility = "hidden";
    }
    function show(obj)
    {
        
        if(objectMenu.all[obj])
        {
            objectMenu.all[obj].show();
        }
    }
    function hide(obj)
    {
        if(objectMenu.all[obj])
            objectMenu.all[obj].hide();
    }

// Установка переменных
window.onerror = null;
 var bName = navigator.appName;
 var bVer = parseInt(navigator.appVersion);
 var NS4 = (bName == "Netscape" && bVer == 4);
 var NS4 = (bName == "Netscape" && bVer >= 4);
 var IE4 = (bName == "Microsoft Internet Explorer" && bVer >= 4);
 var IE4 = ((bName == "Microsoft Internet Explorer" && bVer >= 4) || (bName == "Netscape" && bVer == 5));
 var NS3 = (bName == "Netscape" && bVer < 4);
 var IE3 = (bName == "Microsoft Internet Explorer" && bVer < 4);
 var menuActive = 0;
 var menuOn = 0;
 var onLayer;
 var timeOn = null;
 var loaded = 0;
 var onLayerSize = 0;

 
// УстанавливАем цвет меню
var menuColor = "#FFFFFF";
var menuBorderColor = "#000000";

if (NS4 || IE4) {
 if (navigator.appName == "Netscape") {
  layerStyleRef="layer.";
  layerRef="document.layers";
  styleSwitch="";
  }else{
  layerStyleRef="layer.style.";
  layerRef="document.all";
  styleSwitch=".style";
 }
}


// Показываем слои
function showLayer(layerName)
{
    if (NS4 || IE4) 
    {
        if (timeOn != null) 
        {
            clearTimeout(timeOn);
            hideLayer(onLayer);
            
        }
        onLayer = layerName;
        if (NS4 || IE4) 
        {
            if(navigator.appName != "Netscape")
            {
                eval(layerRef+'["'+layerName+'Div"]'+styleSwitch+'.display=""');
            }
            show(layerName);
        }
        
    }
}

// Прячем слои
function hideLayer(layerName)
{
    if (menuActive == 0)
    {
         if (NS4 || IE4) 
         {
         hide(layerName);
         }
    }
}

// Счетчик для пряталки слоев
function btnTimer(opt) 
{
    timeOn = setTimeout("btnOut()",250);
}

// Если время вышло
function btnOut(layerName) 
{
    if (menuActive == 0) 
    {
        hideLayer(onLayer);
    }
}

// Мышка на слое
function menuOver(itemName) 
{
    clearTimeout(timeOn);
    menuActive = 1;
}

// мышка вне слоя
function menuOut(itemName) 
{
    menuActive = 0;
    timeOn = setTimeout("hideLayer(onLayer)", 400);
}


// Создаем меню
function menuLink(title, url) 
{
    this.title = title;
    this.url = url;
}

// Создание меню
function menuMaker(menuArray, LayerSize) 
{
    onLayerSize = LayerSize;
    n = "";
    j = eval(menuArray + ".length") - 1;
    nameOfLayer = eval(menuArray + ".id.slice(0, -3)");
    topTable = "<div ID='" + eval(menuArray + ".id") + "'><table border=1 style='border-collapse: collapse; border-width: 1px; border-top-width: 0px; border-color:#D0D0D8;' Cellpadding=0 cellspacing=0 bgcolor='" + menuColor +"' bordercolor='" + menuBorderColor +"'>";
    cell = "<tr><td onmouseover=\"showLayer('" + nameOfLayer + "'); this.className='menuover'; \" onmouseout=\"btnTimer(); this.className='menuout'; \" class='menuout' style='border-color: #C4C4C4; border-top-width: 0px; padding: 3px; padding-left: 6px; padding-right: 6px;'>";
    cellend = "</td></tr>";
    btmTable = "</table></div>";
    n += topTable;
    for( var i = 1; i <=j; i++)
    {
        n += cell+"<a class=menu href='" + eval(menuArray + "[" + i + "].url") + "' target='_top' >" + eval(menuArray + "[" + i + "].title") + "</a><br>"+cellend;
    }
    n += btmTable;
    return n;
}

function CallThisMenu() 
{
    for(i=0; i<menuSize.length;i++)
    {
        document.write(menuMaker(menuSize[i],21));
        nameMenu=eval(menuSize[i]+".id");
        if(navigator.appName != "Netscape")
        {
            eval(layerRef+'["'+nameMenu+'"]'+styleSwitch+'.display="none"');
        }
    }
}
onload=objectMenu.init;




rollover.js
Код

menu1_on=new Image();
menu1_on.src='/_img/menu1l.gif';
menu1_off=new Image();
menu1_off.src='/_img/menu1.gif';

menu2_on=new Image();
menu2_on.src='/_img/menu2l.gif';
menu2_off=new Image();
menu2_off.src='/_img/menu2.gif';

menu3_on=new Image();
menu3_on.src='/_img/menu3l.gif';
menu3_off=new Image();
menu3_off.src='/_img/menu3.gif';

menu4_on=new Image();
menu4_on.src='/_img/menu4l.gif';
menu4_off=new Image();
menu4_off.src='/_img/menu4.gif';

menu5_on=new Image();
menu5_on.src='/_img/menu5l.gif';
menu5_off=new Image();
menu5_off.src='/_img/menu5.gif';

menu6_on=new Image();
menu6_on.src='/_img/menu6l.gif';
menu6_off=new Image();
menu6_off.src='/_img/menu6.gif';


    function chg(img)
    {
        document[img].src=eval(img+"_on.src");
    }
    function rst(img)
    {
        document[img].src=eval(img+'_off.src');
    }



array.js
Код


menuSize = new Array();
menuSize[0] = "Menu1";
menuSize[1] = "Menu2";
menuSize[2] = "Menu3";


Menu1 = new Array(3);
Menu1.id = "Menu1Div";
Menu1[1] = new menuLink("Новости", "/news.html");
Menu1[2] = new menuLink("О компании", "/about.html");
Menu1[3] = new menuLink("Наши партнеры","/partners.html");

Menu2 = new Array(2);
Menu2.id = "Menu2Div";
Menu2[1] = new menuLink("Каталог контрольно-измерительных приборов", "http://www.kip.spektr.org/index.html");
Menu2[2] = new menuLink("Каталог горно-шахтного оборудования", "/rock_catalog.html");
Menu2[3] = new menuLink("Каталог трубопроводной арматуры", "/truboprovod.html");


Menu3 = new Array(11);
Menu3.id = "Menu3Div";
Menu3[1] = new menuLink("Прайс-лист на поставляемые приборы", "/price.html");
Menu3[2] = new menuLink("Работа в системе ГОСЗАКАЗОВ", "/goszakaz.html");
Menu3[3] = new menuLink("Приборы контроля состояния турбоагрегатов", "/aktiv.html");
Menu3[4] = new menuLink("Газоанализаторы, кондуктометры", "/kondukt.html");
Menu3[5] = new menuLink("Провода термокомпенсационные","/provod.html");
Menu3[6] = new menuLink("Электроисполнительные механизмы и приводы", "/mie.html");
Menu3[7] = new menuLink("Часы Электроника 7-06...", "/chasi_elektronika.html");
Menu3[8] = new menuLink("Измерительные преобразователи", "/vzep.html");
Menu3[9] = new menuLink("Пневмоаппаратура", "/pnevmo.html");
Menu3[10] = new menuLink("Горношахтное оборудование", "/rock_catalog.html");
Menu3[11] = new menuLink("Механизмы, приводы, реле", "/khark.html");



spektr.org



Это сообщение отредактировал(а) Cobalt - 3.2.2011, 09:00
--------------------
Стоишь на берегу И чувствуешь соленый запах ветра, Что веет с моря,И знаешь что свободен ты, и жизнь лишь началась....И губы жжет.. подруги поцелуй, Пропитанный слезой!
PM MAIL ICQ   Вверх
Evghenusi
Дата 2.2.2011, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 3
Всего: 15



Cobalt, выбрав для JavaScript "разметку HTML" ты убил желание читать код smile 
PM WWW   Вверх
Cobalt
Дата 3.2.2011, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.8.2006

Репутация: нет
Всего: 1



Evghenusi, пардон
--------------------
Стоишь на берегу И чувствуешь соленый запах ветра, Что веет с моря,И знаешь что свободен ты, и жизнь лишь началась....И губы жжет.. подруги поцелуй, Пропитанный слезой!
PM MAIL ICQ   Вверх
Evghenusi
Дата 3.2.2011, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 3
Всего: 15



Цитата(Cobalt @  2.2.2011,  11:24 Найти цитируемый пост)
вопрос, может можно малой кровью изменить скрипт и заставить его работать нормально

имхо бредовое меню ( до сих пор такие не встречал, где больше js чем css). 
хотел помочь (не критиковать же только), но не хватает ума разобраться в этом коде.

предлагаю поставить какое нибудь другое меню, например одно из этих
http://www.webmagazine.biz/articles/css-ho...pdown-menu.html
http://www.cssor.ru/css/polezno-interesnoe/cssmenu

хотя это конечно же не ответ на твой вопрос   smile 
PM WWW   Вверх
GZep
Дата 4.2.2011, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 1
Всего: 32



Cobalt, +1 это действительно не очень удачная реализация, мягко говоря. Посмотрите примеры, в данном вопросе есть кой-какие тенденции, упрощающие реализацию этого велосипеда...


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Cobalt
Дата 4.2.2011, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.8.2006

Репутация: нет
Всего: 1



писали местные умельцы в 2005 вроде  smile 

их сайт до сих пор вызывает недоумение http://ifrigate.ru/main.html  smile 


Цитата(Evghenusi @  3.2.2011,  22:12 Найти цитируемый пост)
хотел помочь (не критиковать же только), но не хватает ума разобраться в этом коде.

вот и  я такой же.

прост сайт большой, везде лазить менять меню  smile  и есть еще брат близнец, где страниц просто немерено, там такая же лажа с меню
--------------------
Стоишь на берегу И чувствуешь соленый запах ветра, Что веет с моря,И знаешь что свободен ты, и жизнь лишь началась....И губы жжет.. подруги поцелуй, Пропитанный слезой!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0635 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.