Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Всплывающее меню в 100 раз :)


Автор: sergejzr 26.3.2005, 00:29
По разным соображениям хочу сделать так:

В коде ХТМЛ прописаны несколько div'ов я хочу их по нажатию на кнопку показывать возле той кнопки.
Не пашет вообще.. то есть показывается, но не возле кнопки... как же сдвинуть с места ? smile
Код

<script>
function showMenu(obj, id)
{
 alert(id+"_menu");
 menu=document.getElementById(id+"_menu");
 menu.style.left=obj.offsetLeft+"px";
 menu.style.top=obj.offsetTop+"px";
 menu.style.visibility="visible";
}
</script>
<body>
<span onclick="showMenu(ihis, 'math')">Math</span> 

<div id="math_menu">
  <!--здесь менюшка сама-->
  <table>
   <tr>
    <td>
          <span onclick="doInsert('\\sum')">Sum</span>
    </td>
    <td>
          <span onclick="doInsert('\\vec')">Vector</span>
    </td>
   </tr>
  </table>
  </div>
</body>

Автор: Aliance 26.3.2005, 00:51
Попробуй сначала показывать, а потом сдвигать.
В стилях прописано, что объект позиционируемый?
Лучше использовать для меня display, т.к. он не резервирует место для контейнера.

Автор: sergejzr 26.3.2005, 01:01
Пишу в стиле:
position: absolute;
Ведь так?
Добавлено @ 01:04
Во! заработало! Только не пойму, почему мне для этого пришлось стили прям в ХТМЛ писать...

Aliance, спасибо, натолкнул на мысль стили пересмотреть smile

Автор: Aliance 26.3.2005, 01:06
Вот, так будет правильнее:
Код

<HTML><HEAD><script>
function showMenu(obj, id)
{
 alert(id+"_menu");
 var menu=document.getElementById(id+"_menu");
 menu.style.left=obj.offsetLeft+"px";
 menu.style.top=obj.offsetTop+"px";
 menu.style.display = "block";
}
</script>
</HEAD><body>
<span onclick="showMenu(this, 'math')">Math</span> 

<div id="math_menu" style="display: none; position: relative;">
  <!--здесь менюшка сама-->
  <table>
   <tr>
    <td>
          <span>Sum</span>
    </td>
    <td>
          <span>Vector</span>
    </td>
   </tr>
  </table>
  </div>
</body>
</HTML>

Добавлено @ 01:09
Цитата(sergej @ 26.3.2005, 01:01)
position: absolute;

Можно и так, тут зависит от результата, который ты хочешь получить. Разницы нет, главное задать.
Просто по умолчанию все не заданное есть null, смотри http://forum.vingrad.ru/index.php?showtopic=44858&view=findpost&p=345755, тут сам писал скрипт показа всех свойств, но еще и я написал, запусти мой (он немного отличается от твоего), так вот у незаданных увидишь, что не стоит 0, а ничего не стоит :-)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)