我已经使用 jQuery、CSS 和 HTML 构建了一个 iOS 样式开关。
目前它在点击时触发。我想保留点击功能,但也希望能够拖动它。如果没有插件,这是否可能?如何完成。
没有拖动功能的工作示例。 http://jsfiddle.net/buduR/5/
JS。
$(document).ready(function(){
$('.element.switch').each(function(){
$(this).css('width',($(this).find('li:first').width() + 40) + 'px');
$(this).find('span').css('left',($(this).find('li:first').width() + 18) + 'px')
$(this).find('li:last').css('left',($(this).find('li:first').width() + 30) + 'px').css('text-align','right');
if($(this).find('li:first').attr('data-val') == $(this).find('input').val()){ $(this).find('ol').css('left',0); }
else { $(this).find('ol').css('left','-' + ($(this).find('li:first').width() + 20) + 'px'); }
});
$('.element.switch').click(function(){
if($(this).find('li:first').attr('data-val') == $(this).find('input').val()){
$(this).find('ol').animate({left:- ($(this).find('li:first').width() + 20)},500);
$(this).find('input').val($(this).find('li:last').attr('data-val'));
}
else {
$(this).find('ol').animate({left:0},500);
$(this).find('input').val($(this).find('li:first').attr('data-val'));
}
});
});