javascript - 打开列表项作为新的覆盖
问题描述
我正在尝试创建一个列表,单击其中的每个项目都会打开一个新的叠加层,并带有自己的叠加层文本。
这是迄今为止我尝试过的JSFiddle,但它不起作用。理想情况下,点击A
会打开一个半透明的覆盖在屏幕上Overlay Text - A
的文本。
我使用W3CSchools 的Overlay 示例作为我的灵感。
我已经用 HTML、CSS、Javascript 编码总共 3 天了,并试图尽可能多地弄清楚东西。因此,如果您发现一些明显的错误或糟糕的编码风格,请向我指出,我会尽力确保我遵循您的指示。
谢谢!
解决方案
这是一个工作小提琴:
https://jsfiddle.net/kelvinsusername/xr0ed6ft/
我更改了一些 js(使用 getElementById 而不是 getElementByClass <- 我想你会使用 getElementsByClass 来返回一个集合?):
document.getElementById("overlay").style.display = "block";
并将 html 重构为具有单个叠加层,因此 onclick 不会嵌套 - 将 onclick 嵌套在另一个具有 onclick 的元素内意味着两者都将运行(除非您停止事件传播)
推荐阅读
- r - 如何用完形填空项目(Moodle)中的响应选项插入问题?
- python - 'int' 项目不可下标
- python - Python 使用什么舍入规则将浮点数转换为整数?
- spring - Docker Compose - Spring Boot - 容器外的 logback
- visual-studio-code - 如何在 VS Code 中返回此功能?
- javascript - React:在 contenteditable div 中创建交互式组件
- dart - 如何使用集合数据在不使用 Firebase 身份验证的情况下使用 Firestore 实现登录
- python - 在mac上重命名一堆文件
- flutter - Flutter background image "Unable to decode bytes as UTF-8"
- java - 解析 XML 时出错:未绑定前缀(android 清单)