Я строю сайт (с jQuery 1.4), в котором есть плавающая (фиксированная позиция) корзина.
Текущий рабочий функциональность ( Демонстрация здесь ):
- Когда пользователь щелкает по самой корзине, он открывает / закрывает слайды и переключает «заблокированный» класс
- Когда пользователь щелкает ссылку «добавить элемент» на странице, которую он открывает, добавляет класс «on» и исчезает в уведомлении о том, что «имя элемента» было добавлено
С чем я борюсь
- Если пользователь щелкнул ссылку «добавить элемент»: через 3 секунды уведомление должно исчезнуть, слайд корзины закроется, а класс «on» будет удален. НО это необходимо учитывать, если пользователь быстро нажимает на 10 вещей; обновить текст уведомления о добавленном названии дорожки, не ставя в очередь кучу плавных переходов / слайдов - вместо этого просто оставайтесь красиво открытыми, а затем закрывайте их в течение 3 секунд после добавления последнего элемента. И если класс корзины «заблокирован» (т. Е. Уже открыт пользователем), тогда только уведомление должно исчезнуть, корзина должна оставаться открытой.
JavaScript пока
//Toggle basket directly
$("#basket-button").click(function(){
$("#basket-contents").slideToggle();
$("#floating-basket").toggleClass("locked on");
return false
});
//Toggle basket with a 'buy now' button
$(".buy-button").click(function(){
//open basket
$("#basket-contents").slideDown();
$("#floating-basket").addClass("on");
//set track name
$("#basket-trackname").text($(this).attr('name'));
//Display basket message
$("#basket-message").fadeIn();
return false
});
HTML
<a class="buy-button" name="Item Name one" href="#">Buy</a>
<a class="buy-button" name="Item Name two" href="#">Buy</a>
<div id="floating-basket">
<div id="basket-message">
<strong id="basket-trackname"></strong> added to basket!
</div>
<a href="/basket" id="basket-button">My Basket <span id="basket-number">0</span></a>
<div id="basket-contents">
lorem
<a href="#">Checkout</a>
</div>
</div>
http://www.webresourcesdepot.com/ajaxed-sliding-shopping-cart-with-jquery - самая близкая вещь, которую я нашел, но даже это проблематично (например, если вы добавляете товар и быстро закрываете корзину).
Был бы очень признателен:)