【发布时间】:2019-12-13 09:02:20
【问题描述】:
我是一个菜鸟,但我正在尝试制作一个网站,但不幸的是我遇到了一个问题。
我在网格中有一组文章(卡片)。每张卡片都包含一个带有标题的“缩略图”、一张图片和一个简短的文本预览。这个想法是,当您单击卡片项目时,会出现一个弹出窗口,其中包含可能包括不同 HTML 和 CSS 的完整文章。单击后,背景也会变得模糊。 弹出窗口的右上角会有一个关闭按钮。
我遇到的问题是整篇文章是卡片项目的子项。这意味着点击功能在文章内部时不断发生。因此,即使我单击关闭按钮,它也会立即重新打开。我希望用户能够在不意外关闭文章的情况下单击文章并与之交互,除非他们单击了.close div。
请允许我分享代码(它是用 pug/jade 编写的):
HTML(哈巴狗):
.card(onclick="expandFunction()")
.image
.information
h4.title Preview Title
p.description Preview Description
#blurry.hideme
article#full.hideme
h4.m-title Main Title
p.m-description Main Description
p.m-body Main Article
.close(onclick="contractFunction()")
Javascript:
function expandFunction() {
var y = document.getElementById("full");
var x = document.getElementById("blurry");
y.classList.toggle("hideme");
x.classList.toggle("hideme");
}
function contractFunction() {
var y = document.getElementById("full");
var x = document.getElementById("blurry");
y.classList.toggle("hideme");
x.classList.toggle("hideme");
}
hideme 类只是应用于 div 的 display: none。
此外,现在我的 javascript 被硬编码以使用 ID 打开其中一篇卡片文章。是否可以使用相对路径,这样我就不必为我拥有的每张卡创建一个唯一的函数?
【问题讨论】:
-
这与您的问题无关,但您应该考虑使用
button而不是div作为关闭按钮。这对可访问性更好。
标签: javascript html css popup pug