jQuery学习篇之点击切换checkbox背景图片

图片背景为白色表示未勾选状态,背景为蓝色表示勾选状态。如:记住密码的选框

先看下THML:checkbox 默认为勾选状态。

<div class="check">
  <input id="checkbox1"class="checkbox"type="checkbox"checked ="checked"/>
<label>记住密码</label>
</div>

我们也来学习下css样式:

.check{
  text-align:right;
  font-size:24px;
  height:50px;
  width:150px;
  background:url(img/btn_1.png) left center no-repeat;
}

.checkbox{
  width:50px;
  height: 50px;
  vertical-align: middle;
  filter:alpha(opacity=0);
  -moz-opacity:0;
  -khtml-opacity: 0;
  opacity: 0;
}

label{
  vertical-align:middle;
}

opacity在css3中是控制透明度,从0到100,0表是完全透明,100表示完全不透明。

将checkbox透明度设为0,再以背景图片来代替复选框就能得到带有勾选图片的效果。默认为记住密码的勾选状态,btn_1.png即为背景为蓝色的勾选图片。值得注意的是,将 input 标签与 label 标签同时加上 vertical-align: middle;属性才能实现文字与复选框垂直居中对齐。

接下来实现单击切换checkbox背景图片的效果:

1.9版本以下的 jQuery 里的 toggle() 方法可以直接实现切换:

toggle(objs) {
  $(objs).each(function(){
      if($(this).is(':hidden')) $(this).show();else$(this).hide();
    });
}


然而 jQuery 1.9及以上版本已经删除了该方法,因此可以用原生 javascript 来实现,具体代码如下:

$(document).ready(function(){
  varflag = 1;
  $(".check").click(function(){
    if(flag == 1){
    $(".check").css("background","url(img/btn_1.png) left center no-repeat");
    flag= 0;
    }else{
      $(".check").css("background","url(img/btn_2.png) left center no-repeat");
      flag= 1;
    }

  });
});

其中 btn_2.png 为背景为白色的未勾选图片。


至此,点击复选框,就可实现背景图片的任意切换

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文链接 http://blog.poetries.top/2016/10/20/review-jQuery 关注...
    前端进阶之旅阅读 16,673评论 18 503
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,862评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,192评论 4 61
  • 秋来秋去秋无尽,春尽春生春不长。 春种相思春树下,秋收离恨秋草旁。 一一长安旧人
    长安旧人阅读 405评论 5 11
  • 咸魚阅读 203评论 0 0