Я создаю «простое» анимированное меню с помощью .animate(), чтобы увеличить элемент меню, который пользователь наводит. Это работает почти правильно, но это делает некоторые странные вещи, если они быстро перемещают курсор. Плюс элементы не всегда оживляют одновременно.jQuery animate problem
Самый простой способ показать это по следующей ссылке.
или
<head>
<script src="jquery-ui/js/jquery-1.4.2.min.js"></script>
<script>
$(document).ready(function(){
$("#test1").hover(function() {
$(this).animate({ width:"599px",left:"0px", height:"168px" }, 100)
},
function() {
$(this).animate({ width:"246px",left:"9px", height:"84px" }, 100)
}
);
$("#test2").hover(function() {
$(this).animate({ width:"599px",left:"0px", height:"168px", top:"-21px" }, 100)
$(".test").animate({ top:"-21px" }, 100)
},
function() {
$(this).animate({ width:"246px",left:"9px", height:"84px", top:"0px" }, 100)
$(".test").animate({ top:"0px" }, 100)
}
);
$("#test3").hover(function() {
$(this).animate({ width:"599px",left:"0px", height:"168px", top:"-63px" }, 100)
$(".test").animate({ top:"-63px" }, 100)
},
function() {
$(this).animate({ width:"246px",left:"9px", height:"84px", top:"0px" }, 100)
$(".test").animate({ top:"0px" }, 100)
}
);
$("#test4").hover(function() {
$(this).animate({ width:"599px",left:"0px", height:"168px", top:"-84px" }, 100)
$(".test").animate({ top:"-84px" }, 100)
},
function() {
$(this).animate({ width:"246px",left:"9px", height:"84px", top:"0px" }, 100)
$(".test").animate({ top:"0px" }, 100)
}
);
});
</script>
<style type="text/css">
.container {
width:599px; background-color:#000;padding:0px; height:336px; overflow-y:hidden;
}
.test {
width:246px; background-color:#039; left:9px; top:0px; position:relative; height:84px;
}
</style>
</head>
<body>
<div class="container">
<div id="test1" class="test">
test
</div>
<div id="test2" class="test">
test
</div>
<div id="test3" class="test">
test
</div>
<div id="test4" class="test">
test
</div>
</div>
</body>
Любые идеи?
Благодаря
Ссылка на живые примеры замечательная, но ** всегда ** также включает соответствующий код в ваш реальный вопрос. Внешние ссылки могут исчезать, переименовываться и т. Д., И в идеале людям не следует следовать ссылке, чтобы ответить на ваш вопрос. –
'mouseover' срабатывает * повторно *, вы можете предпочесть вместо этого' mouseenter' (особенно если вы используете 'mouseleave' для другой половины). (Фактически, последние версии jQuery имеют ярлык для подключения пар 'mouseenter' /' mouseleave': ['hover'] (http://api.jquery.com/hover/).) Но это не полный ответ , –