打包下载
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)在下面浏览器下测试通过:Firefox, IE7, IE8, Google浏览器。 (IE6还是算了吧),其它浏览器还没试过。
目前刚添加了4个皮肤,添加新皮肤非常方便,您可以参考已添加的皮肤图片和css代码,相信您会很快搞定。
效果截图:
一、在没有使用LazyForm的情况下,在XP下运行截图如下
二、使用LazyForm(皮肤Blue)效果如下
三、使用LazyForm(皮肤Black)效果如下
四、皮肤Default
五、皮肤Gray
demo.html代码如下:
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
html xmlns="http://www.w3.org/1999/xhtml"
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
titledemo-lazyform/title
script type="text/javascript" src="js/jquery.min.js"/script
script type="text/javascript" src="js/lazyform.js"/script
link type="text/css" rel="stylesheet" href="css/blue/lazyform.css" id="lazyFormSkin" /
style type="text/css"
body
{
font: 12px Simsun, Arial, Helvetica, sans-serif;
line-height: 20px;
}
/style
script type="text/javascript"
$(function() {
$('#form1').submit(function() {
var skin = $('#ddlSkin option:selected').val();
$('#lazyFormSkin').attr('href', 'css/' + skin + '/lazyform.css');
skin = 'Skin: ' + skin;
var gender = 'Gender: ' +
$('input[name=gender]:checked').val();
var gender2 = 'Gender2: ' +
$('input[name=gender2]:checked').val();
var hobby = 'Hobby: ' +
($('#cbxBaskball').is(':checked') ? $('#cbxBaskball').val() + ' ' : '') +
($('#cbxFootball').is(':checked') ? $('#cbxFootball').val() + ' ' : '') +
($('#cbxSwimming').is(':checked') ? $('#cbxSwimming').val() + ' ' : '');
var hobby2 = "Hobby2: " +
($('#cbxBaskball2').is(':checked') ? $('#cbxBaskball2').val() + ' ' : '') +
($('#cbxFootball2').is(':checked') ? $('#cbxFootball2').val() + ' ' : '') +
($('#cbxSwimming2').is(':checked') ? $('#cbxSwimming2').val() + ' ' : '');
var country = 'Country: ' + $('#ddlCountry option:selected').text();
var country2 = 'Country2: ' + $('#ddlCountry2 option:selected').text();
$('#result').html(skin + 'br /' + gender + 'br /' + gender2 + 'br /' +
hobby + 'br /' + hobby2 + 'br /' + country + 'br /' + country2);
return false;
});
});
/script
/head
body
form id="form1" method="post" action="javascript:alert('success!');"
p
label for="Skin"Skin:/label
select id="ddlSkin"
option value="Blue"Blue/option
option value="Black"Black/option
option value="Default"Default/option
option value="Gray" Gray/option
/select
/p
p
label for="Gender"Gender:/label
br /
input type="radio" id="rdoMale" name="gender" value="Male" checked="checked" /
Male
br /
input type="radio" id="rdoFemale" name="gender" value="Female" /
Female
/p
p
label for="Gender"Gender2:/label
input type="radio" id="rdoMale2" name="gender2" value="Male2" /
Male2
input type="radio" id="rdoFemale2" name="gender2" value="Female2" checked="checked" /
Female2
/p
p
label for="Hobby"Hobby:/label
br /
input type="checkbox" id="cbxBaskball" value="Baskball" checked="checked" /
Baskball
br /
input type="checkbox" id="cbxFootball" value="Football" checked="checked" /
Football
br /
input type="checkbox" id="cbxSwimming" value="Swimming" /
Swimming
/p
p
label for="Hobby"Hobby2:/label
input type="checkbox" id="cbxBaskball12" value="Baskball2" checked="checked" /
Baskball12
input type="checkbox" id="cbxFootball2" value="Football2" /
Football2a
input type="checkbox" id="cbxSwimming2" value="Swimming2" checked="checked" /
Swimming2
/p
p
label for="Country"Country:/label
br /
select id="ddlCountry"
option value="China" selected="selected"China/option
option value="United States" United States/option
option value="Canada" Canada/option
option value="Holland"Holland/option
/select
/p
p
label for="Country"Country2:/label
select id="ddlCountry2" style="width: 350px;"
option value="China2"China2/option
option value="United States2" selected="selected"United States2/option
option value="Canada2" Canada2/option
option value="Holland2"Holland2/option
/select
/p
p
input type="submit" value="submit" /
/p
p id="result"/p
/form
/body
/html
从代码你就可以看到,LazyForm没有动您的Html和Css样式一根汗毛。
想让Select变长,设置个长度就可以了。
把LazyForm.js去掉,就是您的原样。没有任何改变。
LazyForm源码:
代码如下:
(function($) {
/* ------------------------------------------------------------------------
LazyForm 1.0
Copyright (c) 2009, ZhangPeng Chen, peng1988@gmail.com
------------------------------------------------------------------------- */
$.lazyform = $.lazyform || {};
$.extend($.lazyform, {
_inputs : null,
_selects: null,
init: function() {
_inputs = $('input[type=checkbox], input[type=radio]');
_inputs.each($.lazyform._initInput);
_selects = $('select');
_selects.each($.lazyform._initSelect);
$(document).click(function() {
$('div.select div.open').removeClass().next('ul').hide();
});
},
_initInput: function() {
var $self = $(this);
var self = this;
var radio = $self.is(':radio');
var id = radio ? (self.type + '-' + self.name + '-' + self.id) : (self.type + '-' + self.id);
var className = self.type + (self.checked ? '-checked' : '');
var hover = false;
var $span = $('span /')
.attr({
'id': id,
'class': className
})
.bind('mouseover mouseout', function() {
hover = !hover;
$span.attr('class', self.type + (self.checked ? '-checked' : '') + (hover ? '-hover' : ''));
})
.bind('click', function() {
if(radio) {
$('input[name=' + self.name + ']').each(function() {
$('#' + self.type + '-' + self.name + '-' + this.id).attr('class', self.type);
})
}
self.click();
$span.attr('class', self.type + (self.checked ? '-checked' : ''));
});
$self.addClass('hidden').before($span);
},
_$openSelect: null,
_initSelect: function() {
var $self = $(this);
var self = this;
var selectWidth = $self.width();
var selectUlWidth = $self.width() - 2;
var $select = $('div /').attr('id', 'select-' + self.id).width(selectWidth).addClass('select');
var $selectItem = $('div /').append('span /');
var $selectItemText = $selectItem.children('span');
var $selectUl = $('ul /').width(selectUlWidth).hide();
var $selectLi = null;
var $hoverLi = null;
$self.children().each(function() {
var $tempLi = $('li /').append(this.text);
if(this.selected) {
$tempLi.addClass('hover');
$selectItemText.text(this.text);
$selectLi = $tempLi;
$hoverLi = $tempLi;
}
$selectUl.append($tempLi);
$tempLi
.bind('mouseover', function() {
$hoverLi.removeClass();
$tempLi.addClass('hover');
$hoverLi = $tempLi;
})
.bind('click', function() {
$self.children().each(function() {
if($hoverLi && this.text == $hoverLi.text()) {
$tempLi.addClass('hover');
this.selected = true;
$selectLi = $tempLi;
$hoverLi = $tempLi;
}
});
$selectItem.removeClass();
$selectItemText.text($selectLi.text());
$selectUl.hide();
});
});
$selectItem.click(function(e) {
if($.lazyform._$openSelect && $.lazyform._$openSelect != $select) {
$('#' + $.lazyform._$openSelect.attr('id') + ' div.open').removeClass().next('ul').hide();
}
$.lazyform._$openSelect = $select;
$selectItem.toggleClass('open');
if($selectItem.attr('class') == 'open') {
if($hoverLi != $selectLi) {
$hoverLi.removeClass();
$selectLi.attr('class', 'hover');
$hoverLi = $selectLi;
}
$selectUl.show();
} else {
$selectUl.hide();
}
e.stopPropagation();
});
$select.append($selectItem);
$select.append($selectUl);
$self.hide().before($select);
}
});
$(document).ready(function() {
$.lazyform.init();
});
})(jQuery);