javascript - 单击袋子图标时会显示购物车中添加的商品列表

标签 javascript html css

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background-color: #333;
}

li {
    float: left;
}

li a {
    display: block;
    color: white;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
}

li a:hover:not(.active) {
    background-color: #111;
}

.active {
    background-color: #4CAF50;
}
<ul>
  <li><a href="#home">Home</a></li>
  <li><a href="#news">News</a></li>
  <li><a href="#contact">Contact</a></li>
  <li style="float:right"><a class="active" href="#about" onClick="testMy()">CART</a></li>
  
 <div>Empty cart add something</div>
</ul>

我正在开发一个购物车导航菜单,在右上角我创建了一个名为“CART”的可点击链接,所以我试图将其做成这样。当用户单击“CART”时,会出现一个 div,其中包含他已添加到 CART 中的元素列表,再次单击它将关闭。

寻找该div的javascript代码,以便div将准确地出现在购物车菜单链接下,箭头指向购物车,如我所附的图像所示。

Item list in cart with arrow

最佳答案

我的建议是创建一个新的、绝对定位的元素,使用 jQuery 将其设置在屏幕的右侧(就在导航下方),您可以淡入该元素。

HTML

<ul>
  <li><a href="#home">Home</a></li>
  <li><a href="#news">News</a></li>
  <li><a href="#contact">Contact</a></li>
  <li class="cartButton">CART</li>
</ul>

<div class="cart">
   <div>Empty cart add something</div>
</div>

CSS

ul {
    position: relative;
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background-color: #333;
    width: 100%;
}

li {
    float: left;
}

li a {
    display: block;
    color: white;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
}

li a:hover:not(.active) {
    background-color: #111;
}

li.cartButton {
  position: absolute;
  height: 100%;
  padding: 5px 10px;
  color: #fff;
   right: 0px;
   padding-top: 10px;
}

li.cartButton.active {
  background-color: #4CAF50;
}

.active {
  a {
    background-color: #4CAF50;
  } 
}

.cart  {
  position: absolute;
  display: none;
  top: 50px;
  right: 0;
  width: 400px;
  height: 300px;
  background-color: #4CAF50;
}

jQuery

$('.cartButton').click(function() {
 $('.cartButton').toggleClass('active');
 $('.cart').fadeIn();
})

参见jsFiddle

注意 您需要使用 jquery 添加一个条件来淡出购物车元素,使用 fadeToggle 函数而不是 fadeIn .

或者,将 css 类添加到购物车元素可能更适合您,这样您就可以分配 css 过渡。

参见jsFiddle (用购物车箭头更新)

购物车箭头是通过旋转 45 度的方形 div 创建的,并通过向导航添加 z 索引将其放置在导航栏下方。通过添加 .cart 类,它只会在单击购物车按钮时显示。

我希望这会有所帮助。

关于javascript - 单击袋子图标时会显示购物车中添加的商品列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43073655/

相关文章:

javascript - 24 Math Game - Javascript 中的随机数生成器和求解器

jquery - Div 未在 FireFox 中正确定位

javascript - 如何在表格中创建缩略图

JavaScript-更改代码结果的字体和大小

javascript - 使用 js 变量或用户输入来更改 Bootstrap 日期选择器中的日期格式

javascript - 传递 PHP 数组以填充多个 ChartJS 图表的有效过程是什么?

javascript - 当我通过 Bootstrap 模型提交表单时,Html "required"属性不起作用

html - div 边框未包裹内容 css/html

html - 如何使用纯 CSS 交换表格单元格

html - CSS div 在非响应旁边响应