2016-07-19 97 views
0

我想創建一個看起來像flipswitch的複選框。 我使用了這個CSS類。我用這個設計元素。但我無法成功。有一些我錯過了。我不知道如何管理它?FlipSwitch style in Xpages

代碼XPages中:

<div class="onoffswitch"> 
<xp:checkBox text="Label" id="onoffswitch" 
    defaultChecked="true"> 

<span class="onoffswitch-inner"></span> <span class="onoffswitch-switch"></span> 
    </xp:checkBox> 
</div> 

CSS類:資源\樣式表

.onoffswitch { 
     position: relative; width: 90px; 
     -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none; 
    } 
    .onoffswitch-checkbox { 
     display: none; 
    } 
    .onoffswitch-label { 
     display: block; overflow: hidden; cursor: pointer; 
     border: 2px solid #999999; border-radius: 20px; 
    } 
    .onoffswitch-inner { 
     display: block; width: 200%; margin-left: -100%; 
     transition: margin 0.3s ease-in 0s; 
    } 
    .onoffswitch-inner:before, .onoffswitch-inner:after { 
     display: block; float: left; width: 50%; height: 30px; padding: 0; line-height: 30px; 
     font-size: 14px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold; 
     box-sizing: border-box; 
    } 
    .onoffswitch-inner:before { 
     content: "ON"; 
     padding-left: 10px; 
     background-color: #34A7C1; color: #FFFFFF; 
    } 
    .onoffswitch-inner:after { 
     content: "OFF"; 
     padding-right: 10px; 
     background-color: #EEEEEE; color: #999999; 
     text-align: right; 
    } 
    .onoffswitch-switch { 
     display: block; width: 18px; margin: 6px; 
     background: #FFFFFF; 
     position: absolute; top: 0; bottom: 0; 
     right: 56px; 
     border: 2px solid #999999; border-radius: 20px; 
     transition: all 0.3s ease-in 0s; 
    } 
    .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { 
     margin-left: 0; 
    } 
    .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { 
     right: 0px; 
    } 

回答

2

我發現,當你需要把標記控制裏面大多不會因爲XPage渲染將會改變或忽略它。爲了解決這個問題,我使用了普通標記和隱藏控件,它們位於標記之外。我使用JQuery管理隱藏控件的狀態。

這裏是您FlipSwitch工作示例:

<xp:checkBox text="Label" id="checkBox1"></xp:checkBox> 
    <div class="onoffswitch"> 
     <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" 
      onclick="x$('#{id:checkBox1}').prop('checked', !(x$('#{id:checkBox1}').prop('checked')) )" /> 
     <label class="onoffswitch-label" for="myonoffswitch"> 
      <span class="onoffswitch-inner"></span> 
      <span class="onoffswitch-switch"></span> 
     </label> 
    </div> 

x$()功能是由馬克·羅登一個handly實用程序:

function x$(idTag, param){ //Updated 18 Feb 2012 
    idTag=idTag.replace(/:/gi, "\\:")+(param ? param : ""); 
    return($("#"+idTag)); 
}