返回
精巧绝伦的饿了么购物车动画揭秘:美观实用,一学就会!
前端
2023-10-22 06:01:06
饿了么的购物车动画一直是前端开发人员津津乐道的话题,它巧妙地将联动菜单和小球飞入购物车动画融为一体,为用户带来美观实用的购物体验。为了帮助更多开发者掌握这一技巧,我提取了饿了么购物车动画的核心元素,并编写了这个详细的教程。
1. 联动菜单
联动菜单是一种常见的交互设计,当用户将鼠标悬停在特定元素上时,它会展开一个子菜单。饿了么购物车动画中的联动菜单位于右上角,当用户将鼠标悬停在购物车图标上时,它会展开一个包含多种操作的子菜单。
实现联动菜单需要用到CSS和JavaScript。首先,我们需要为购物车图标和子菜单设置样式。
.cart-icon {
position: relative;
}
.cart-menu {
position: absolute;
top: 100%;
left: 50%;
transform: translate(-50%, 0);
display: none;
}
const cartIcon = document.querySelector('.cart-icon');
const cartMenu = document.querySelector('.cart-menu');
cartIcon.addEventListener('mouseover', () => {
cartMenu.style.display = 'block';
});
cartIcon.addEventListener('mouseout', () => {
cartMenu.style.display = 'none';
});
2. 购物车动画
饿了么购物车动画的核心是购物车图标上的小球飞入购物车动画。当用户将商品添加到购物车时,一个小球会从商品图片飞入购物车图标,并伴随着轻微的震动效果。
实现购物车动画需要用到CSS动画和JavaScript。首先,我们需要为小球设置动画样式。
.cart-ball {
position: absolute;
top: 0;
left: 0;
width: 10px;
height: 10px;
border-radius: 50%;
background-color: #ff0000;
animation: cart-ball-animation 1s ease-in-out infinite alternate;
}
@keyframes cart-ball-animation {
0% {
transform: translate(0, 0);
}
100% {
transform: translate(100px, 0);
}
}
const cartBall = document.querySelector('.cart-ball');
cartBall.addEventListener('animationend', () => {
cartBall.style.display = 'none';
});
const addToCartButton = document.querySelector('.add-to-cart-button');
addToCartButton.addEventListener('click', () => {
cartBall.style.display = 'block';
});
3. 组合联动菜单和购物车动画
现在,我们将联动菜单和购物车动画组合在一起。当用户将鼠标悬停在购物车图标上时,联动菜单展开,同时小球飞入购物车图标的动画也开始播放。
cartIcon.addEventListener('mouseover', () => {
cartMenu.style.display = 'block';
cartBall.style.display = 'block';
});
cartIcon.addEventListener('mouseout', () => {
cartMenu.style.display = 'none';
cartBall.style.display = 'none';
});
至此,我们已经完成了饿了么购物车动画的实现。你可以根据自己的需要修改样式和动画效果,打造出更加符合你网站或应用程序风格的购物车动画。