用CSS和JQ分別實現(xiàn)switch button的多種方法

重寫以前的demo是一件非常好的事情

1、用css實現(xiàn)switch button

基本原理:使用input的checkbox類型,當input被鼠標點擊checked的時候通過 input:checked + .slide的方法在樣式里讓其向右移動100px,而當鼠標再次點擊input沒有被checked的時候,則樣式失效,.slide回到原來的位置。

注意點:CSS樣式中 + 號的意義,如果h1 + p 表示的意思就是和h1同級的標簽里緊接著也就是邊上的鄰近h1的p標簽被選中。另一個注意點是css的偽類,比如.slide是input的鄰近兄弟元素,而當.slide用css偽類的時候,.slide:before同樣也會被當成.slide的鄰近兄弟元素。

這里插一個巨坑

這里插一個巨坑,把我坑了整整一天半啊,整整一天半?。。?!關(guān)于transition的使用,它的前兩個屬性是name和duration這兩個屬性,但是如果你想要在position:absolute;的情況下過渡地實現(xiàn)left:100px;的時候,這個時候這個時候一定要注意,那就是一定在transition那個樣式欄里出現(xiàn)left屬性和它的值,如果不出現(xiàn)的話并且只寫all的話,這個過渡效果不出現(xiàn)的,是不出現(xiàn)的!簡寫害死人啊!簡寫害死人啊啊?。。。?/strong>

這里還有就是transition只對block元素生效。

接著之前的話,具體例子如下:

input:checked + .slide:before{
      left:50px;
    }
input:checked + .slide{
    background:blue;
}

被input被checked的時候,.slide和它的偽類的樣式都會生效。再次點擊失效,這是一種純CSS的方法,有點討巧。需要注意的是label標簽的for

<label for="btn">
  <input type="checkbox" id="btn">
</label>

這樣寫的好處是當點擊到標簽本身時,input也會被checked,當然不寫也是行的,只要label住input也會有同樣的效果。

2、用jQuery實現(xiàn)switch button的兩種方法

這兩種方法其實差不多,一種是用toggleClass()來添加和刪除className,另一種則是用toggle()來顯示和隱藏身邊的東西來實現(xiàn)左右位移。

  • 關(guān)于toggleClass()的方法
$('.div1').click(function(){
      $('.div1').toggleClass('move')
})

在.move里添加相應(yīng)的移動即可。

  • 關(guān)于toggle()的辦法
$('.div3').click(function(){
      $('.div2').toggle()
})

在html里寫好兩個div,并且把它們橫向包在一個div里,然后通過顯示和隱藏其中一個div來實現(xiàn)另一個div的移動。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,786評論 1 92
  • //------------------------- 第一章 認識JQuery ----------------...
    米塔塔閱讀 737評論 0 9
  • 看書時隨手整理的jQuery的相關(guān)內(nèi)容及API,之后會將相應(yīng)的功能與JavaScript進行比對整理。 jQuer...
    Ginkela閱讀 228評論 0 1
  • 又要出發(fā)旅行啦,旅行清單列起來。忙了嘮叨的處女座姑娘,一邊糾結(jié)買的漂亮裙子還是不夠,一邊叼著筆在A4紙上一條條打鉤...
    單小招是我閱讀 381評論 0 1
  • 我從骨子里就很討厭成功學(xué),討厭雞湯,討厭方法論,討厭那些為實現(xiàn)某些看上去鮮亮的目標而夸夸其談,談經(jīng)驗,談方法,談捷...
    租了五顆星閱讀 1,050評論 4 13