美文网首页
jQuery学习篇之点击切换checkbox背景图片

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

作者: kecai | 来源:发表于2017-05-10 13:47 被阅读106次

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

    先看下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 为背景为白色的未勾选图片。


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

    相关文章

      网友评论

          本文标题:jQuery学习篇之点击切换checkbox背景图片

          本文链接:https://www.haomeiwen.com/subject/eqjitxtx.html