Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.12.2011, 22:30
Аспирант
Отправить личное сообщение для denisOgr Посмотреть профиль Найти все сообщения от denisOgr
 
Регистрация: 26.07.2010
Сообщений: 31

Положение элемнта .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; 
}

Последний раз редактировалось denisOgr, 22.12.2011 в 22:32.
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2011, 23:46
Аспирант
Отправить личное сообщение для denisOgr Посмотреть профиль Найти все сообщения от denisOgr
 
Регистрация: 26.07.2010
Сообщений: 31

.position() помогло! всем спасибо, сам додумался

Можно темку закрывать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск