我发布了一个关于脚本的问题,但是我还有另一个关于脚本的问题。
一开始我有两个蓝色按钮,它们在翻转时变成灰色。
当您单击两个按钮之一时,蓝色变成(并保持)灰色。
两个按钮都不能同时为蓝色。每个按钮一次调出一个表单(表单联系人和表单引用)。
我已经写了这个,我想知道是否可以简化它?
如何使“切换”功能与iDevices(iPad,iPhone ...)兼容?
先感谢您。
$(function() {
$("#form-contact").hide();
$("#form-devis").hide();
$("#btn-contact").click(function(){
$(this).toggleClass("btn-form-hover");
$("#form-contact").fadeToggle(500, "linear");
$("#form-devis").hide();
$("#btn-devis").removeClass("btn-form-hover");
});
$("#btn-devis").click(function(){
$(this).toggleClass("btn-form-hover");
$("#form-devis").fadeToggle(500, "linear");
$("#form-contact").hide();
$("#btn-contact").removeClass("btn-form-hover");
});
});
最佳答案
这看起来很简单,您只需强制一个按钮进入“已选择”状态即可。如果您需要对许多元素执行此操作,请参见下面的代码。
只要您包含的jQuery库支持,切换就可以在iDevices上运行。但是,由于没有鼠标,您不会在iDevices上获得悬停效果。
代码示例:
如果您打算经常使用按钮(翘板开关)来执行此操作,其中只有一个元素可以处于“已选择”状态,则可以执行以下功能:
代码笔:http://codepen.io/Skrypt/pen/dyCha
的HTML
<div class="rockerSwitch myRocker1">
<button class="left">On</button><button class="right">Off</button>
</div>
<div class="rockerSwitch myRocker2">
<button class="left">True</button><button class="right">False</button>
</div>
<div class="rockerSwitch myRocker3">
<button class="left">Option 1</button><button class="right">Option 2</button>
</div>
的CSS
.rockerSwitch button {
background-color: #dcffb2;
border: 1px solid #87cf30;
cursor: pointer;
outline: 0;
}
.rockerSwitch button.left {
margin-right: 0px;
border-radius: 5px 0px 0px 5px;
}
.rockerSwitch button.right {
margin-left: 0px;
border-radius: 0px 5px 5px 0px;
}
.rockerSwitch button:hover {
background-color: #fff;
}
.rockerSwitch button.selected {
background-color: #87cf30;
}
JS / jQuery
$(function() {
$('.myRocker1').rockerSwitch();
$('.myRocker2').rockerSwitch();
$('.myRocker3').rockerSwitch();
});
$.fn.rockerSwitch = function() {
var left = $('.left', this);
var right = $('.right', this);
left.on('click', function() {
left.addClass("selected");
right.removeClass("selected");
});
right.on('click', function() {
right.addClass("selected");
left.removeClass("selected");
});
}