По сути, когда кто-то наводит мышью на сводку своей корзины, я хочу отобразить div, содержащий более подробную информацию.
Вот рабочий JSFiddle:
http://jsfiddle.net/5JgZp/
Javascript
$('#shopping-cart').mouseenter(function () {
$('#shopping-cart-preview').fadeIn();
});
$('#shopping-cart').mouseleave(function () {
$('#shopping-cart-preview').fadeOut();
});
HTML
<div id="user-information">
<div id="shopping-cart">
<img src="@Url.Content("~/Public/images/shoppingcart.png")" alt="shopping cart" />
<p>Products in Shopping Cart: <span class="cart-item-count">2</span> <span class="cart-subtotal">(<span class="cart-subtotal-value">25,54</span>$)</span></p>
<div id="shopping-cart-preview">
<p>This is a test.</p>
<p>This is a test.</p>
<p>This is a test.</p>
<p>This is a test.</p>
<p>This is a test.</p>
<p>This is a test.</p>
</div>
</div>
<div id="action-buttons">
<a class="loginbutton" href="#">LOGIN</a>
<a class="registerbutton" href="#">REGISTER</a>
</div>
</div>
#user-information #shopping-cart {
float: left;
position: relative;
cursor: pointer;
}
CSS
#user-information #shopping-cart img {
float: left;
}
#user-information #shopping-cart p {
color: White;
display: inline;
float: left;
font-family: 'Open Sans',sans-serif;
font-size: 12px;
margin-left: 14px;
margin-top: 10px;
}
#user-information #shopping-cart p span.cart-subtotal {
color: #CFE91A;
margin-left: 11px;
}
#user-information #shopping-cart #shopping-cart-preview {
background-color: White;
display: none;
left: 0;
outline: 1px solid cyan;
overflow: hidden;
position: absolute;
top: 44px;
width: 320px;
}
#user-information #shopping-cart #shopping-cart-preview p {
margin: 0;
color: Black;
}
#user-information #action-buttons {
float: right;
margin-right: 12px;
margin-top: 3px;
}
Пример JSFiddle работает именно так, как я хочу, за исключением того, что когда я перемещаю мышь из сводки корзины на всплывающую панель предварительного просмотра корзины, вызывается событие fadeOut (), а затем происходит событие fadeIn () уволена. Таким образом, мы получаем эту затухающую дилемму исчезновения.
Я бы хотел, чтобы панель не исчезала при перемещении мыши вниз для ввода сводки.
Что вы предлагаете?
Другая проблема заключается в том, что когда я быстро перемещаю мышь, кажется, анимация ставится в очередь и выполняется. Это означает, что элемент может исчезать / исчезать много раз, даже после того, как я закончу движение мышью Предложения?
EDIT
Так что я пытаюсь что-то вроде этого; Msgstr "Скрыть предпросмотр, если они кликнули за его пределами."
$('#wrapper').click(function () {
if ($(this) != $('#shopping-cart')) {
$('#shopping-cart-preview').fadeOut();
}
});
Однако даже когда я щелкаю внутри предварительного просмотра, вызывается fadeOut (). Я уверен, что что-то не так с моим условным заявлением. Есть предложения?
РЕДАКТИРОВАТЬ 2:
Поймите это с некоторыми идеями от вас, ребята. :)
Вот как вы это делаете:
$('#shopping-cart').mouseenter(function () {
$('#shopping-cart-preview').stop(true, true).fadeIn();
});
$('#shopping-cart').mouseleave(function () {
$('#shopping-cart-preview').delay(2000).fadeOut();
});
$('#shopping-cart-preview').mouseenter(function () {
$(this).stop(true, true).show();
});