Я создаю скрытую контактную форму, которая будет появляться, когда мышь находится над элементом. Это довольно просто, и я добился этого, выполнив:
$(document).ready(function(){
$(function (){
$("#contact_1").hover(
function(){ $(this).stop(true,false).animate({right: 0}, 500); },
function(){ $(this).stop(true,false).animate({right: -218}, 500); });
});
});
Теперь проблема заключается в том, что когда пользователь просматривает элементы ввода или текстовое поле и начинает писать свои данные, он может переместить мышь из контейнера (весьма вероятно, что так и будет).
Как я могу предотвратить скрытие формы в этом случае?
Я бы добавил некоторые условные функции (if/else) в функции наведения, но как я могу получить текущую позицию текстового курсора?
Контактная форма (#contact_1
) содержит 4 элемента внутри ID: #cf_name
, #cf_email
, #cf_phone
, #cf_text
Обратите внимание: я хочу, чтобы пользователям не приходилось нажимать кнопку "Показать/скрыть"
* может быть, это простой вопрос, но я нигде не могу найти четкого ответа.
---------------------------------------------
РЕШЕНИЕ:
Благодаря помощи Диодеуса ниже мне удалось решить это следующим образом:
Каждый вход имеет onfocus
/onblur
действий:
<input type="text" id="cf_name" class="text" name="name" onfocus="allowcfhide=false;" onblur="allowcfhide=true;" />
Скрипт наведения был изменен:
var allowcfhide=true;
$(document).ready(function(){
$(function (){
$("#contact_1").hover(
function(){ if (allowcfhide) $(this).stop(true,false).animate({right: 0}, 500); },
function(){ if (allowcfhide) $(this).stop(true,false).animate({right: -218}, 500); });
});
});