2016-07-19 55 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)); 
}