Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » меню на javascript

Ответить
Настройки темы
меню на javascript

Аватара для Multya

Новый участник


Сообщения: 49
Благодарности: 0

Профиль | Отправить PM | Цитировать


приветсвую...

может кто сталкивался, и знает как победить:
есть меню для html написанное на javascript. хочу его разместить в верхнем фрейме, НО... если верхний фрейм оказывается уже чем выпавшие пункты менюшки - то эти самые выпавшие пункты менюшки перекрываются нижним фреймом...
вопрос: можно ли сделать чтобы выпадающие пункты меню НЕ перекрывались нижним фреймом? а то лепить это самое меню на каждую страницу - нет желания, да и неправильно это

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


Отправлено: 15:45, 12-04-2005

 

Аватара для slaine

Ветеран


Сообщения: 675
Благодарности: 8

Профиль | Отправить PM | Цитировать


Multya
Выложи сюда меню для html написанное на javascript и мы все посмотрим.

-------
живодёр - практик


Отправлено: 17:23, 12-04-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Multya

Новый участник


Сообщения: 49
Благодарности: 0

Профиль | Отправить PM | Цитировать


извольтес

<table align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div class="ItemOff" onmouseover="javascript:wmItemOn(this,0,'ItemOn','ItemOff',null,null);"><a class="wmLink" href="main.html" target="main">главная</a></div></td>
<td><div class="ItemOff" onmouseover="javascript:wmItemOn(this,0,'ItemOn','ItemOff','interest',WM_BOTTOM);"><a class="wmLink" href="interest.html" target="main">интересно »</a></div></td>
<td><div class="ItemOff" onmouseover="javascript:wmItemOn(this,0,'ItemOn','ItemOff','support',WM_BOTTOM);"><a class="wmLink" href="support.html" target="main">поддержка »</a></div></td>
<td><div class="ItemOff" onmouseover="javascript:wmItemOn(this,0,'ItemOn','ItemOff','boss',WM_BOTTOM);"><a class="wmLink" href="stat.html" target="main">босам »</a></div></td>
</tr>
</table>

<div id="interest" class="wmSubMenuHidden">
<div class="ItemOff" onmouseover="javascript:wmItemOn(this,1,'ItemOn','ItemOff',null,null);"><a class="wmLink" href="interest/phone.html" target="main">телефоны</a></div>
<div class="ItemOff" onmouseover="javascript:wmItemOn(this,1,'ItemOn','ItemOff',null,null);"><a class="wmLink" href="interest/holiday.html" target="main">праздники</a></div>

ну и т.п.
сам скрипт взят с http://www.firdus.com/software/webMenu/webMenu.html


сам скрипт
/*
* ----------------------------------------------------------------------------
* WebMenu
*
* Version: 1.1
* Release date: 2005.03.05
*
* Copyright (c) Amir Firdus (Firdus Software), 2005.
* All rights reserved.
*
* License:
* This software is free as long as this header is not removed.
* Firdus Software welcomes improvements, suggestions as well as
* news about successful application. To contact us, please use either
* email or message board available at www.firdus.com.
* ----------------------------------------------------------------------------
*/

/*
* Notes:
*
* Public methods, those intended to be used on a web page, are prefixed with wm.
*
*/

// *** submenu position *******************************************************

// Two positions are available for now. New positions can be easily added.
var WM_BOTTOM = "bottom";
var WM_RIGHT = "right";

// Margin values in pixels. Allows for submenu position to be fine-tuned.
var MARGIN_BOTTOM = 1;
var MARGIN_RIGHT = 1;


// *** item activation ********************************************************

// One set of global values is enough,
// no one can navigate more than one menu at the time.

// There can be only one active item at the time on the whole page.
var currentItem = null;

// There is only one way to reach a submenu.
// The trail to that submenu is kept in this array.
// Every time an item is activated trail has to be reset.
// All submenus after the current level removed and the current one added.
var menuTrail = new Array();

// This is needed when switching from one menu to another with two different
// styles, otherwise last element gets styleOff from the other menu.
var currentStyleOff = null;

// This function activates an item.
// An item is active when mouse is over that item.
// Parameters:
// - item . . . . . . . item to be activated
// - level . . . . . . . level of the submenu
// - styleOn . . . . . . style class name when item is active
// - styleOff. . . . . . style class name when item is not active
// - submenuId . . . . . id of the submenu that is to be attached to this item, pass null if no submenu
// - submenuPosition . . position of the submenu, ex: WM_RIGHT or WM_BOTTOM, pass null if no submenu
function wmItemOn(item, level, styleOn, styleOff, submenuId, submenuPosition) {

debug("level:" + level + ", styleOn:" + styleOn + ", styleOff:" + styleOff + ", submenu:" + submenuId + "/" + submenuPosition);

// assign timer off function to the item - makes html code cleaner
if (item.onmouseout == null) {
item.onmouseout = startOffTimer;
}

// stop timer on entry
stopOffTimer();

// turn off previous item
if (currentItem != null) {
if (styleOff != currentStyleOff && currentStyleOff != null) {
currentItem.className = currentStyleOff;
} else {
currentItem.className = styleOff;
}
}

// make this item new current item
currentItem = item;
item.className = styleOn;
currentStyleOff = styleOff;


if (submenuId != null) {

// take care of attached submenu

hide(level);

var menu = document.getElementById(submenuId);

// item dimensions: item.offsetHeight, item.offsetWidth
if (submenuPosition == WM_BOTTOM) {
menu.style.top = findOffsetTop(item) + item.offsetHeight + MARGIN_BOTTOM;
menu.style.left = findOffsetLeft(item);
}

if (submenuPosition == WM_RIGHT) {
menu.style.top = findOffsetTop(item);
menu.style.left = findOffsetLeft(item) + item.offsetWidth + MARGIN_RIGHT;
}

menu.style.visibility = "visible";

menuTrail[level] = menu;
} else {

// item has no submenu attached, update the menuTrail

hide(level);
}

}


// Hide all submenus after the level passed in, inclusive.
function hide(level) {
for (var i = level; i < menuTrail.length; i++) {
menuTrail[i].style.visibility = "hidden";
}
}


// *** timer ******************************************************************

// Timer is needed to turn off all the items and submenus,
// once mouse moves away from the menu.

var timerID = null;
var timerOn = false;
var timecount = 250;

function startOffTimer() {
if (timerOn == false) {
timerID = setTimeout("offAll()", timecount);
timerOn = true;
}
}

function stopOffTimer() {
if (timerOn) {
clearTimeout(timerID);
timerID = null;
timerOn = false;
}
}

// Hide all submenus and turn current item off.
function offAll() {
hide(0);

if (currentStyleOff != null) {
currentItem.className = currentStyleOff;
}

debug("All off by timer.");
}


// *** debug ******************************************************************

// Print text to the debug element. If the element that debugId is pointing to
// is not found on the page, it does nothing.

var debugId = "wmDebug";

function debug(text) {
var debug = document.getElementById(debugId);
if (debug != null) {
debug.innerHTML = "» " + text + "<br>" + debug.innerHTML;
}
}


// *** position ***************************************************************

// Utility code to calculate element position.

// Find total left offset.
function findOffsetLeft(obj){
var curleft = 0;
if (obj.offsetParent){
while (obj.offsetParent){
curleft += obj.offsetLeft;
obj = obj.offsetParent;
}
} else if (obj.x) {
curleft += obj.x;
}

return curleft;
}

// Find total top offset.
function findOffsetTop(obj){
var curtop = 0;
if (obj.offsetParent) {
while (obj.offsetParent){
curtop += obj.offsetTop;
obj = obj.offsetParent;
}
}else if (obj.y){
curtop += obj.y;
}

return curtop;
}

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


Отправлено: 18:36, 12-04-2005 | #3


Аватара для slaine

Ветеран


Сообщения: 675
Благодарности: 8

Профиль | Отправить PM | Цитировать


Даа.. задачку ты задал. Лучше незабивай этим себе голову.
А если ты не хочешь прописывать этот скрипт на кажждую страницу, то
создай файл menu.js и дай ссылку на него на каждой странице.

-------
живодёр - практик


Отправлено: 16:06, 13-04-2005 | #4


Аватара для Multya

Новый участник


Сообщения: 49
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
Даа.. задачку ты задал. Лучше незабивай этим себе голову.
не могу не забивать... очень нада

Цитата:
А если ты не хочешь прописывать этот скрипт на кажждую страницу, то создай файл menu.js и дай ссылку на него на каждой странице.
дык так оно и есть. но кроме самого файла menu.js в страницу нужно вставлять кучу тегов, само меню... а есть одна неприятность в виде того, что автоматом (другим софтом) генерируется ОЧЕНЬ много html страниц.. и в ручную их туда повставлять просто нереально...

тут на forum.sysadmins.ru попробовать вставить
Код: Выделить весь код
window.top.frames['contentFrameName'].document.getElementById('menuDivId').style.visibility='visible'
только вот куда? и даст ли это что-то??

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


Отправлено: 17:45, 13-04-2005 | #5



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » меню на javascript

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] История переходов в меню Пуск (все вопросы) kortez Microsoft Windows 7 35 02-05-2011 10:09
Разное - [решено] Доп-ое меню в св-вах "Мой компьютер" и Меню восстановление forcik Microsoft Windows 2000/XP 3 24-12-2008 02:42
Меню на JavaScript и Валидация помогите разобратся с скриптом vipdim Вебмастеру 5 21-09-2006 11:46
JavaScript Sulako Вебмастеру 5 05-02-2003 23:27
JavaScript Roman Go Вебмастеру 7 30-09-2002 03:27




 
Переход