Английский перевод Феликса:
Я хочу создать меню, которое следует за курсором мыши и прекращает движение, если курсор находится на определенном расстоянии от него. Мое решение пока:
Я создал два вложенных div. Во внутреннем div содержится меню. Внешний div предназначен для остановки меню. Если курсор перемещается по внешнему элементу div, внутренний элемент div должен остановиться и оставаться в нем до тех пор, пока курсор находится над ним. * РЕДАКТИРОВАТЬ: И меню должно остановиться тихо, но быстро.
Оригинальный немецкий:
ich möchte ein Menü erstellen приветствует меня в своем творчестве и доброжелательности. Mein Lösungsansatz ist folgender:
Ich Baue 2 Ininchand Verschachtelte DIVs. Im inneren DIV ist das Menü vorhanden. Das äußere Div ist zum stoppen da. Также я хочу познакомиться с Mauszeiger в Das Außere Div Gehe Soll Das Innere DIV Стар Аббремсен и Штеен Блейбен, Соланж и Дрин Бин.
Hier mein derzeitiger Code (fw's: jQuery):
var div = jQuery("<div id='menubox'><div id='innerdiv'> </div></div>").appendTo("body");
var mouseX = 300, mouseY = 300;
jQuery(document).mousemove(function (el) {
if (onMenu == false) {
mouseX = el.pageX;
mouseY = el.pageY;
}
});
jQuery('#menubox').mouseenter(function (el) {
onMenu = true;
stopMoving();
}).mouseleave(function (el) {
onMenu = false;
startMoving();
});
var xp = 0, yp = 0;
function stopMoving() {
clearTimeout(timer);
timer = setTimeout(function () {
clearInterval(loop);
}, 100);
}
function startMoving() {
clearTimeout(timer);
clearInterval(loop);
loop = setInterval(function () {
xp += (mouseX - xp) / 20;
yp += (mouseY - yp) / 20;
jQuery('#menubox').css({ left: xp, top: yp });
}, 40);
}
startMoving(); // StartMoving on Page Load
* РЕДАКТИРОВАТЬ: У меня была ошибка IE. Я должен был поместить прозрачный GIF на внешний div. Теперь эта функция в порядке. Если я во внешнем или внутреннем div, div не перемещается, но он не останавливается быстро. Он должен остановиться очень мягко и быстро и не двигаться, то есть 200px, а затем останавливается или останавливается с помощью clearIntervall (). Должен ли я сделать еще один таймер?