css - 如何设置此 CSS 动画复选框的样式?

标签 css

我有这个复选框,选中后需要这个动画,请看视频:https://www.youtube.com/watch?v=lUAccdEOrV8&feature=youtu.be

我在下面尝试了这个,但我无法让 Angular 变圆,另外,我也应用到复选框的不透明度。

#subsDiv input[type="checkbox"]{
  appearance: none;
    background-color: transparent;
    border: 1px solid white;
    padding: 12px;
    border-radius: 6px;
  display: inline-block;
  vertical-align: top;
  margin-left: 0px;
  outline: none;
}

#subsDiv input[type="checkbox"]:hover {
  border-color: #609de6;
}

#subsDiv input[type="checkbox"]:checked {
  outline: none;
  background-position: 0px -24px;
  background-image: url(../img/check.png);
  border-color: #4a90e2;
  animation-name: checkbox;
  animation-duration: 400ms;
}


@keyframes checkbox {
  from{opacity: 1 ;outline: 2px solid #4a90e2; outline-offset: 0px;}
  to{opacity: 0 ;outline: 2px solid #4a90e2; outline-offset: 10px;}
}

最佳答案

您可以使用伪元素转换背景、不透明度和 transform: scale() 来创建当您单击/选中该框时爆炸的小边框效果。

.cbl {
  display: block;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: background .5s;
}
.cb {
  display: none;
}
.cb:checked + .cbl {
  background: blue;
}
.cb:checked + .cbl::after {
  content: '\2713';
  color: white;
}
.cbl::before {
  content: '';
  position: absolute;
}
.cbl, .cbl::before {
  width: 1em; height: 1em;
  border-radius: .25em;
  border: 1px solid blue;
}
.cb:checked + .cbl::before {
  transform: scale(2);
  opacity: 0;
  transition: transform .5s, opacity .5s;
}
<input type="checkbox" class="cb" id="cb">
<label class="cbl" for="cb"></label>

关于css - 如何设置此 CSS 动画复选框的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44876144/

相关文章:

javascript - 使用 REACT 可视化文本区域中的 onkeypress 换行符

php - CSS 菜单 URL 未正确重定向

html - 在字段集图例标题旁边添加图标并显示工具提示

css - 有没有办法托管 bitbucket 存储库中的 css 文件

html - 部分透明/低不透明度导航栏?

html - 如何并排放置我的 tumblr 帖子?

javascript - 监听来自显示 : none to display:block 的任何 div

html - CSS 响应式页脚 - 隐藏和显示另一个

html - 页脚背景颜色消失,页脚文本在屏幕中间 float

javascript - 使用 javascript 和 css 下拉