[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: выежающее меню
kuzroman
Написал скриптик, который заставляет блок выплывать слева, полностью рабочий, вопрос только в том что если часто наводить и убирать мышь, на это меню, то цикл будет продолжаться (т.е. навели и убрали фокус раз 10, меню всплыло и убралось 10 раз, причем без остановки)
Хотелось бы сделать
1) небольшую задержку перед открытием и закррытием меню
2) если человек навел убрал и сразу же навел снова мышь на меню, то чтоб оно не до конца закрылось, а сразу же открылось.

Вот скрипт на jquery:

$(document).ready(function() {

var num = 0;
var num2 = 0;

$("#zona_mouseover").mouseover(
function (){
num2++;
if(num2==1){
$("#left_blocs").animate({opacity: "1", left: "+=260"}, 1000);

}
num=1;
}
);


$("#page").mouseover(
function (){

if(num==1){
$("#left_blocs").animate({opacity: "1", left: "-=260"}, 1000);
num=0;
num2=0;
}
}

);


});



кто знает помогите решить эти 2 задачи.

_____________
kuzroman@list.ru
Winston
Может стоит добавить setTimeout в событие mouseover ?
sergeiss
С джиквери не общался, по коду не подскажу, но алгоритм простой простится:
1. Надо иметь идентификатор текущего состояния (открывается, закрывается, открыто, закрыто).
2. При наведении/убирании мышки менять состояние. И обрабатывать это всё в зависимости от текущего и, возможно, предыдущего состояний.

PS. А у тебя же каждый раз запускается новая процедура. Состояние уже изменилось, а процедура об этом не знает и продолжает отрабатывать то, что ты ей сказал. Потому и многократные дерганья туда-сюда.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Renden
kuzroman
мб как-то так?
и под #left_blocs используй лучше класс а не id.

$('#zona_mouseover').hover(
function () {
$('#left_blocs',$(this)).stop().animate({'marginLeft':'0px'},200);
},
function () {
$('#left_blocs',$(this)).stop().animate({'marginLeft':'-260px'},200);
}
);
kuzroman
Всем спасибо, все попробую.

_____________
kuzroman@list.ru
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.