如何使用jQuery切换CSS3复选框?

时间:2016-08-14 10:07:05

标签: jquery css3 checkbox

我一直在看这个CSS3复选框的演示:

http://cssdeck.com/labs/css-checkbox-styles

可以使用jQuery切换此复选框(下面的代码段中的那个)吗?

另外,我可以通过jQuery检索复选框状态吗?

当我点击复选框时,我一直在尝试关注Firebug中发生的事情,似乎已应用:

.squaredThree input[type="checkbox"]:checked + label::after {
  opacity: 1;
}

我尝试了以下内容但没有取得任何成功:

$("#squaredThree").prop( "checked",true);

$(".squaredThree input[type='checkbox'] + label::after").css( "opacity","1");

/* SQUARED THREE */

.squaredThree {
  width: 20px;
  margin: 20px auto;
  position: relative;
}
.squaredThree label {
  cursor: pointer;
  position: absolute;
  width: 20px;
  height: 20px;
  top: 0;
  border-radius: 4px;
  -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.5), 0px 1px 0px rgba(255, 255, 255, .4);
  -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.5), 0px 1px 0px rgba(255, 255, 255, .4);
  box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.5), 0px 1px 0px rgba(255, 255, 255, .4);
  background: -webkit-linear-gradient(top, #222 0%, #45484d 100%);
  background: -moz-linear-gradient(top, #222 0%, #45484d 100%);
  background: -o-linear-gradient(top, #222 0%, #45484d 100%);
  background: -ms-linear-gradient(top, #222 0%, #45484d 100%);
  background: linear-gradient(top, #222 0%, #45484d 100%);
  filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#222', endColorstr='#45484d', GradientType=0);
}
.squaredThree label:after {
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: alpha(opacity=0);
  opacity: 0;
  content: '';
  position: absolute;
  width: 9px;
  height: 5px;
  background: transparent;
  top: 4px;
  left: 4px;
  border: 3px solid #fcfff4;
  border-top: none;
  border-right: none;
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
.squaredThree label:hover::after {
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
  filter: alpha(opacity=30);
  opacity: 0.3;
}
.squaredThree input[type=checkbox]:checked + label:after {
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  filter: alpha(opacity=100);
  opacity: 1;
}
<!-- Squared THREE -->
<div class="squaredThree">
  <input type="checkbox" value="None" id="squaredThree" name="check" />
  <label for="squaredThree"></label>
</div>

1 个答案:

答案 0 :(得分:1)

试试这个

获取州 - var state = document.getElementById('squaredThree').checked;

设为True - document.getElementById('squaredThree').checked = true;

设置为False- document.getElementById('squaredThree').checked = false;