javascript - 增长和淡化 onclick
问题描述
我试图让一个盒子根据按下的按钮来增长、褪色、改变蓝色和重置。到目前为止,颜色变化和重置工作正常;褪色和生长导致我的盒子消失。
如何让框在单击时褪色,同时保持与当前颜色相同的颜色,并在单击时保持当前颜色的同时增长。
代码:
<!DOCTYPE html>
<html>
<head>
<title>Jiggle Into JavaScript</title>
<style>
body {margin:25px}
#resetDiv {height:150px;width:150px; background-color:orange;}
#blueDiv {height:150px;width:150px; background-color:blue;}
#fadeDiv {width:150px;height:150px;background-color:orange;opacity:0.75;}
#growDiv {height:150%;width:150%;background-color:orange}
</style>
</head>
<body>
<button onclick="grow()">
Grow
</button>
<button onclick="blue()">
Blue
</button>
<button onclick="fade()">
Fade
</button>
<button onclick="reset()">
Reset
</button>
<div id="blueDiv">
</div>
<script>
var div = document.getElementById("blueDiv");
function blue() {
div.setAttribute("id", "blueDiv");}
function reset() {
div.setAttribute("id", "resetDiv");}
function fade() {
div.setAttribute("id", "fadeDiv");}
function grow() {
div.setAttribute("id", "growDiv")
}
</script>
</body>
</html>
解决方案
对于淡入,您可以向元素添加淡入类(单击按钮时)。
这是相关的CSS:
.fade-in {
opacity: 1;
animation-name: fadeInOpacity;
animation-iteration-count: 1;
animation-timing-function: ease-in;
animation-duration: 2s;
}
@keyframes fadeInOpacity {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
对于增长,您可以添加增长类:
.grow {
transform: scale(1.5);
}
所以你可以声明它:
const myDiv = document.getElementById('myDiv'); // get the element
function grow() { // add grow to class list
myDiv.classList.add("grow");
}
// add fade-in and remove it after 2 seconds
// 2 sseconds are the seconds of fade-it to get completed.
function fade() {
myDiv.classList.add("fade-in");
setTimeout(function(){myDiv.classList.remove("fade-in");}, 2000);
}
function blue() {
myDiv.classList.add("blue");
}
function reset() { // reset the class list
myDiv.classList = [];
}
这是一个工作的jsfiddle
推荐阅读
- mongodb - 如何在 Mongoose 排序结束时生成空值?
- oracle - 表突变在哪里发生(Oracle)?
- node.js - 在 node.js 中使用 fetch 测量 API 响应时间
- javascript - Vue 无法修改 slot 对象的顶层数据
- php - Stripe API 在编辑模式下无法工作 Wordpress
- php - 如何使用 PHP 和 MySQL 收集站点浏览量统计数据,例如每日、每周、每月和每年的浏览量?
- sql - Scala Slick Play 框架:如何使用 slick 3.x 连接多个数据库表?
- c# - 在 WPF 中,如何更新用户控件中的主 UI?
- xamarin - 保存选取器值空异常无法将字符串转换为模型
- python - 12296:26672:0420/163936.459:ERROR:browser_switcher_service.cc(238) XXX Init() Error in "Selenium Python"