javascript - 使用功能永久更改按钮的图像(正常+按下)
问题描述
我想使用 javascript 中的函数更改按钮的背景图像及其 :active 形式。该函数执行一次,但这应该永久更改两个背景图像。为了更好地理解,下面是代码:
该按钮执行点击计数功能。
<button onclick="counting()">
此点击计数功能在一定数量的点击后执行我要求的功能:
var clicks = 0;
function counting() {
clicks++;
document.getElementById("clicks").innerHTML = clicks;
if (clicks === 5) {
requestedFunction();
按钮的背景图片可以在 CSS 中找到:
button { background-image:url(button_normal.png);
background-size: cover;
及其 :active 形式:
button:active { background-image:(button_pressed.png);
background-size: 100%;
由于按钮在活动时会更改其图像(您单击了按钮),因此背景大小为封面或 100%。
例如,如何将“button_normal.png”和“button_pressed.png”替换为“giraffe.png”和“pig.png”?
解决方案
如果可以这样做:
- 将初始类添加到您的按钮
- 创建两个类,一个用于初始状态,一个用于修改状态
- 用js当你想改变按钮时删除初始类并设置修改后的类
<button class="myButton initial">My Button!</button>
.initial {
background-image:url(button_normal.png);
background-size: 100%;
}
.initial:hover {
background-image:url(button_pressed.png);
background-size: 100%;
}
.modified {
background-image:url(giraffe.png);
background-size: 100%;
}
.modified:hover {
background-image:url(pig.png);
background-size: 100%;
}
document.querySelector(".myButton").classList.remove('initial').add("modified");
推荐阅读
- javascript - Firefox MIME 嗅探西里尔字母扩展
- node.js - 无法在谷歌存储中存储 gzip 文件
- reactjs - React Js ErrorBoundary 仅适用于主要布局组件,不适用于嵌套组件
- ruby-on-rails - 使用 webpack 问题在 Rails 中集成本地 backstopjs
- java - 在实时人脸检测 Android 中的 Live CameraPreview 上围绕人脸绘制矩形
- android - Jetpack 组成状态提升
- android - 为什么工具栏在 android 系统状态栏下方(请查看截图)?
- python - 得到错误的输出虽然代码在 python 线性回归程序中是正确的
- python - 如何检查一个数据框的二级索引是否在另一个数据框的四级索引中
- javascript - 在存储在数据库中的图像和实时网络摄像头图像之间使用 TensorFlow.js 进行人脸匹配