マウスが要素の上に置かれたときに表示される非表示の連絡先フォームを作成しています。これは非常に簡単で、次のようにして達成しました。
$(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) を追加すると思いますが、現在のテキスト カーソル位置を取得するにはどうすればよいですか?
お問い合わせフォーム ( ) には、ID 内に , , , の#contact_1
4 つの要素が含まれています。#cf_name
#cf_email
#cf_phone
#cf_text
注意: ユーザーが「表示/非表示」ボタンをクリックする必要がないようにしたい
*単純なクエリかもしれませんが、明確な答えがどこにも見つかりません。
------------------------------
解決:
以下の Diodeus のヘルプのおかげで、次のように解決できました。
すべての入力には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); });
});
});