2012-05-17 3 views
0

У меня есть несколько вложенных divs с различными статьями в них.Несколько Div Jquery Animated Hover

<div id="maindiv" onmouseover="showbuttons()" onmouseout="hidebuttons()"> 
    <div style="float: left"></div> 
    <div style="float: right"> 
     <div id="buttons"></div> 
    </div> 
</div> 

function show() { 
    $('#buttons').slideDown('fast') 
    //$('#buttons').stop().slideDown('fast') 

} 

function hide() { 
    $('#buttons').slideUp('fast') 
    //$('#buttons').stop().slideUp('fast') 

} 

Проблема в том, я думаю, что событие парения увольняет пару раз, так что я держать имея кнопки исчезают и снова появляются. Поэтому я добавил stop() - Что прокомментировано в коде выше. Но тогда у меня есть кнопки наполовину через страницу (из-за отмененной анимации), когда у меня остается мышь.

Или, возможно, это способ сделать это в CSS?

+0

Hiya man кажется работающим здесь: http://jsfiddle.net/Zarhu/1/ let me kn если это поможет и хочу, чтобы я настроил ответ! B-) –

+0

Кажется, что у вас такая же проблема, переместите мышь в div, но выключите и снова на кнопке div – Akshat

ответ

2

Удалите onmouseover и onmouseout атрибуты из div и заменить JavaScript с:

$('#maindiv').hover(
    function() { 
     $('#buttons').stop().slideDown('fast'); 
    }, 
    function() { 
     $('#buttons').stop().slideUp('fast'); 
    } 
); 
+0

«onmouseenter - это конкретный IE. Не работает в других браузерах, если вы не используете jQuery, который может имитировать это событие «. http://stackoverflow.com/a/1638929/246260 – dezso

+0

Это работает именно так, как я хочу – Akshat

1

Я считаю, что вы должны сделать что-то вроде:

$('#maindiv').hover(function() { 
    $('#buttons').stop().slideDown('fast') 
}, function() { 
    $('#buttons').stop().slideUp('fast') 
}) 

Это чище и просто.

0

для начала,

show() 

уже используется JQuery поэтому для здравомыслия избежать этого имени

удалить слушателя событий от того, рядный с разметкой ..

$("#maindiv").mouseover(function() { 
    $("#buttons").stop(true, true).slideUp(); 
    }); 

    $("#maindiv").mouseout(function() { 
    $("#buttons").stop(true, true).slideDown(); 
    }); 

взгляд в функция переключения тоже

+0

Я использовал только шоу ради упрощенного примера кода, спасибо – Akshat