私がここでやろうとしているのは、MooToolsを使用してフォームを送信した後、カーソルの後に続く読み込みボックスを表示することです。ただし、問題を1つのdivと1つの形式に単純化しました。
脚本:
document.addEvent('domready', function(){
$('test_form').addEvent('submit', function(){
var box = $('box');
document.addEvent('mousemove', function(e){
box.setStyles({
top: e.page.y,
left: e.page.x
});
});
box.setStyle('display', 'block');
return false;
});
});
html:
<div id="box">
</div>
<form id="test_form" action="">
<label>Name: </label><input type="text" name="name" /><br/>
<input type="submit" value="Submit" />
</form>
css:
#box {
width: 50px;
height: 50px;
background-color: blue;
position: absolute;
display: none;
}
#test_form {
margin-left: 150px;
}
フォームが送信されると、非表示の青いdivが表示され、カーソルに従います。ただし、フォームの送信時にdivをマウスの位置に表示させることはできません。'mousemove'は、マウスを動かすまで起動しません。したがって、青いdivは、表示直後の位置(0,0)に表示されます。フォームが送信された直後にマウスの位置を取得する方法はありますか?またはそれを行う別の方法はありますか?
どんな提案でも大歓迎です!
更新しました:
フォームを送信する前にマウスイベント(mousemove)を追加したくありません。その理由は、必要のないときにjavascriptがマウスの位置をチェックし続けたくないからです。パフォーマンスの問題を回避するようにしてください。