javascript - 切换按钮:使用背景颜色隐藏计数器编号
问题描述
Onclick 按钮,我想用背景色 ieyellow 隐藏这个计数器的数字)。例如,我想要数字前面的黄色,例如 z-index 1。
如果我再次单击,我想删除黄色并再次显示计数器的数字,例如 z-index -1。可能吗?我试过这个..谢谢
var countStep = 0;
function counter() {
document.getElementById("btnToggle").innerHTML = ++countStep;
}
function btnColor(btn, color) {
var property = document.getElementById(btn);
if (property.className !== 'toggled') {
property.style.backgroundColor = color;
property.className = 'toggled'
} else {
property.style.backgroundColor = "rgb(244,113,33)";
property.className = '';
}
}
#btnToggle {
background: #222;
color: lime;
}
<p id="btnToggle">OFF</p>
<button onClick="countNumbers = setInterval(counter, 1000)">Play</button>
<button onClick="clearInterval(countNumbers)">Stop</button>
<input type="button" id="btnToggle" value="Toggle" onclick="btnColor('btnToggle','rgb(255,242,0)');" />
解决方案
z-index: -1
这是为相对于标签的计数器文本使用规则p
。有必要将计数器包装在一个附加span
标签中:
<p id="btnToggle"><span>OFF</span></p>
使用querySelector()
:
var countContent = document.querySelector("#btnToggle span");
此外,在 js 的逻辑中,在if { ... }
条件内部,需要分配一个负值z-index
:
countContent.style.zIndex = '-1';
否则,禁用(默认):
countContent.style.zIndex = '';
最重要的是,span
标签必须设置为absolute和#btnToggle
relative。将此添加到您的CSS:
#btnToggle span {
position: absolute;
}
此外,您的 tagp
和 taginput
具有相同的id。这是不正确的,因为 id 是唯一的属性。
var countStep = 0;
var countContent = document.querySelector("#btnToggle span");
function counter() {
countContent.innerHTML = ++countStep;
}
function btnColor(btn, color) {
var property = document.getElementById(btn);
if (property.className !== "toggled") {
property.style.backgroundColor = color;
property.className = "toggled";
countContent.style.zIndex = '-1';
} else {
property.style.backgroundColor = "rgb(244,113,33)";
property.className = "";
countContent.style.zIndex = '';
}
}
#btnToggle {
background: #222;
color: lime;
position: relative;
height: 18px;
}
#btnToggle span {
position: absolute;
}
<p id="btnToggle"><span>OFF</span></p>
<button onClick="countNumbers = setInterval(counter, 1000)">Play</button>
<button onClick="clearInterval(countNumbers)">Stop</button>
<input type="button" id="btnToggle_two" value="Toggle" onclick="btnColor('btnToggle','rgb(255,242,0)');" />
推荐阅读
- automated-tests - 有没有办法在不破坏格式的情况下将空手道黄瓜报告发布到 Slack?
- javascript - 如何每行声明一个对象属性?
- linked-list - 我可以创建一个 Github 网站并在其中存储我的存储库的所有链接吗?
- excel - 在文件夹中循环excel工作簿并删除除一张以外的所有工作表
- python-3.x - python boto3上传的文件不可见
- javascript - 在 CSS 中附加 div 时如何获得不同的边距?
- reactjs - 组件正在将受控输入更改为不受控。这可能是由于值从已定义更改为未定义引起的
- install4j - 从 install4j 安装程序安装和触发 macOS 应用程序
- unity3d - 如何将 USDZ 模型导入 Unity?
- java - javafx tableView 不显示数据,getter setter 有什么问题?