Положение элемнта .offset().left и position:absolutle
На странице есть поля типа input и у каждого есть атрибут tooltip="Подсказка":
<input type="text" name="name" value="ФИО" title="ФИО" tooltip="Введите ФИО"/> JS скриптом я ниже каждого такого поля создаю <span> с подсказкой. $('[tooltip]').each(function(){ $(this).after('<span class="tooltip">'+$(this).attr('tooltip')+'</span>'); }); СSS .tooltip{ width: 200px; visibility: hidden; z-index: 99; position: absolute; .................... При focus()/blur() делаю их visible/hidden $('input[type=text]').focus(function(e){ var left = $(this).offset().left; var top = $(this).offset().top+30; $(this).next('.tooltip').css({'visibility':'visible','top':top,'left':left}) }).blur(function() { $(this).next('.tooltip').css({'visibility':'hidden'}) }); Все работает. Но есть проблема. Есть div. Изначально display:none; В нем форма. У него position:absolutle. По событию его display:block; Он появляется по центру экрана. Когда кликаю у поля подсказки появляют внизу экранаб а не под полями. Там где он распологает в коде, без стиля position:absolutle Если у #forma убираю position:absolutle, то все работает. но как тогда помести ее в центр экрана поверх страницы. Как сделать что бы подсказки в блоке с position: absolute; выводитлись там где спозиционирован блок? Вот пример. В примере нажмите на поле в фильтре(подсказка ниже появится) и нажмите кнопку добавить и в любом поле (подсказка будет внизу) <div id="forma"> ........ <input type="text" name="name1" value="Фамилия" title="Фамилия" tooltip="Укажите фамилию."/> ........ </div> CSS #forma{ position: absolute; top:25%; left: 40%; display: none; } |
.position() помогло! всем спасибо, сам додумался :)
Можно темку закрывать. |
Часовой пояс GMT +3, время: 23:39. |