javascript - JavaScript 的堆叠 DIV 点击事件

标签 javascript css dom-events

目前正在编写一个 Web 应用程序,该应用程序是用于教育目的的棋盘游戏 Splendor 的再现。现在我正在进入我的编码部分,我们将在其中处理事件。

我希望能够让用户将鼠标悬停在中间的卡片上,并使其变暗,在上半部分显示“购买”一词,在下半部分显示“保留”一词。然后,将鼠标悬停在整个卡片上时,用户可以根据他们想要执行的操作单击“购买”或“保留”。

我现在关于如何处理这个问题的假设是在 JavaScript 中为包含卡片图像的整个 div 提供一个鼠标悬停事件,然后在该 div 顶部放置两个 div(一个用于上半部分,一个用于上半部分)对于下半部分),每个都有单独的点击事件,因为每个事件的功能都不同。

我想我想知道,这会是一个问题吗,因为从技术上讲,整个卡片 div 将位于这两个 div 之下?我应该在代码中使用不同的方法来解决这个问题吗? (我的元素中也不能使用 jQuery 之类的东西,只能使用 HTML CSS 和 JS)

最佳答案

我会使用 css 解决问题,特别是使用 :hover 修饰符。购买和预订按钮将具有 display:none,但是一旦将鼠标悬停在父元素(在本例中为卡片)上,您就可以更改为 display: block。您可以使用 z-indexposition css 属性将两个按钮放置在卡片上的任意位置。例如

.card:hover {
   position: relative;
   z-index: 1;
  .buy, .reserve { display: block; }
}
.buy, .reserve {
  position: absolute;
  z-index: 2;
  display: none;
}

使用 html

<div class='card'>
  <div class='buy'></div>
  <div class='reserve'></div>
</div>

关于javascript - JavaScript 的堆叠 DIV 点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33071317/

相关文章:

javascript - CKEDITOR 获取数据 : wait for method to finish before submitting data

javascript - 如何确定 Controller 在angularJS的全局命名空间上可用

html - Bootstrap 导航链接不合适

css - W3C CSS Validator 结果 'Value Error : font-family Property font-family doesn' t 存在于 CSS level 2.1 但存在于 [css1, css2, css3] : Helvetica'

JavaScript 在外部注册事件处理程序

javascript - 如何使用 angularJS 和 jqlite 测试 event.target.hasClass() ?

javascript - 聚焦并单击非表单元素

javascript - jQuery 映射选定对象

html - 如何在框周围显示文字?

javascript - 在浏览器/窗口之外捕获 mouseup 事件