js實現點擊切換checkbox背景圖片


在制作網頁的過程中,經常需要實現點擊切換背景圖片的效果,本文關注的是表單中checkbox背景圖片切換的實現。如圖,在輸入用戶名和密碼后,用戶需要選擇是否記住密碼

圖片背景為白色表示未勾選狀態 ,背景為藍色表示勾選狀態 

HTML源碼如下:

1 <div class="check">
2      <input id="checkbox1" class="checkbox" type="checkbox" checked ="checked" /><label>記住密碼</label>
3 </div>

其中checkbox 默認為勾選狀態。

設置樣式,CSS代碼如下:

 1 .check{
 2         text-align: right;
 3         font-size:24px;
 4         height: 50px;  
 5         width: 150px;
 6         background: url(img/btn_1.png) left center no-repeat;
 7       }
 8 .checkbox{
 9         width:50px;
10         height: 50px;
11         vertical-align: middle;
12         filter:alpha(opacity=0);   
13         -moz-opacity:0;   
14         -khtml-opacity: 0;   
15         opacity: 0;   
16       }
17 label {
18         vertical-align: middle;
19       }

 將checkbox透明度設為0,再以背景圖片來代替復選框就能得到帶有勾選圖片的效果。默認為記住密碼的勾選狀態,btn_1.png 即為背景為藍色的勾選圖片。值得注意的是,將 input 標簽與 label 標簽同時加上 vertical-align: middle; 屬性才能實現文字與復選框垂直居中對齊。

接下來實現單擊切換checkbox背景圖片的效果,1.9版本以下的 jQuery 里的 toggle() 方法可以直接實現切換:

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

 

然而 jQuery 1.9及以上版本已經刪除了該方法,因此可以用原生 javascript 來實現,具體代碼如下:

$(document).ready(function(){
    var flag = 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 為背景為白色的未勾選圖片。

至此,點擊復選框,就可實現背景圖片的任意切換。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM