jQuery鼠标移动发出气泡动画代码

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

以下是 jQuery鼠标移动发出气泡动画代码 的示例演示效果:

当前平台(PC电脑)
  • 平台:

部分效果截图:

jQuery鼠标移动发出气泡动画代码

HTML代码(index.html):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>jQuery鼠标移动发出气泡动画</title>
<link rel="stylesheet" type="text/css" href="css/demo.css">
<link rel="stylesheet" type="text/css" href="css/style3.css">
<link rel="stylesheet" type="text/css" href="css/ui.css">
<link rel="stylesheet" type="text/css" href="css/style6.css">
<link rel="stylesheet" type="text/css" href="css/stylelogin.css">
<link rel="stylesheet" type="text/css" href="css/styleload.css" >
<link href="css/jquery.jgrowl.min.css" rel="stylesheet" type="text/css">
<style type="text/css">
div.jGrowl div.manilla {
	background-color: #FFF1C2;
	color: navy;
}

div.jGrowl div.smoke {
	background: url('images/smoke.png') no-repeat;
	-moz-border-radius: 0px;
	-webkit-border-radius: 0px;
	width: 298px;
	height: 73px;
	overflow: hidden;
}

div.jGrowl div.flora {
	background: #E6F7D4 url(flora-notification.png) no-repeat;
	-moz-border-radius: 0px;
	-webkit-border-radius: 0px;
	opacity: 1;
	filter: alpha(opacity =       100);
	width: 270px;
	height: 90px;
	padding: 0px;
	overflow: hidden;
	border-color: #5ab500;
}

div.jGrowl div.flora div.message {
	padding: 5px;
	color: #000;
}

div.jGrowl div.flora div.header {
	background: url(flora-header.png) no-repeat;
	padding: 5px;
}

div.jGrowl div.flora div.close {
	background: url(flora-close.png) no-repeat;
	padding: 5px;
	color: transparent;
	padding: 0px;
	margin: 5px;
	width: 17px;
}

div.jGrowl div.iphone {
	font-family: "Helvetica Neue", "Helvetica";
	font-size: 12px;
	background: url(iphone.png) no-repeat;
	-moz-border-radius: 0px;
	-webkit-border-radius: 0px;
	opacity: .90;
	filter: alpha(opacity =       90);
	width: 235px;
	height: 137px;
	overflow: hidden;
	border-color: #5ab500;
	color: #fff;
}

div.jGrowl div.iphone .jGrowl-close {
	padding-right: 20px;
}

div.jGrowl div.iphone div.message {
	padding-top: 0px;
	padding-bottom: 7px;
	padding-left: 15px;
	padding-right: 15px;
}

div.jGrowl div.iphone div.header {
	padding: 7px;
	padding-left: 15px;
	padding-right: 15px;
	font-size: 17px;
}

div.jGrowl div.iphone div.close {
	display: none;
}

div#random {
	width: 1000px;
	background-color: red;
	line-height: 60px;
}
</style>

<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/form.js"></script>
<script src="js/jquery.jgrowl.js" type="text/javascript"></script>
<script type="text/javascript" src="js/modernizr.custom.79639.js"></script>
	<script type="text/javascript" src="js/jquery.swatchbook.js"></script>
	<script type="text/javascript" src="js/sketch.min.js"></script>
	<script type="text/javascript" src="js/ui.js"></script>
	<script type="text/javascript" src="js/jquery.dropdown.js"></script>
	<script src="js/modernizr.custom.63321.js"></script>
	<script type="text/javascript" src="js/jquery.placeholder.min.js"></script>
	<script type="text/javascript" src="js/PisualFumikaLogin.js"></script>

<!--[if lte IE 8]><style>.main{display:none;} .support-note .note-ie{display:block;}</style><![endif]-->
</head>
<body id="body">
<script type="text/javascript">
		(function($){

			$(document).ready(function(){

				$('#test2').jGrowl("Trying a background image.", { 
					theme: 'smoke',
					closer: false,
					life: 999999 
				});
				
			});
		})(jQuery);

		</script>
<div id="test2" class="bottom-left"></div>

<div id="Loading" class="demo-3 demo-dark" style="z-index:10002;position:fixed;margin-left:47%;margin-top:9%;display:none;">
		<div class="container">
					
			<section class="main">
				<!-- the component -->
				<ul class="bokeh">
					<li></li>
					<li></li>
					<li></li>
					<li></li>
				</ul>
			</section>
		</div>
		</div>


	<script>
		function CloseMouseEffects() {
			demo.mousemove = function() {
			};
		}

		function OpenMouseEffects() {

			demo.mousemove = function() {

				var particle, theta, force, touch, max, i, j, n;

				for (i = 0, n = demo.touches.length; i < n; i++) {

					touch = demo.touches[i], max = random(1, 4);
					for (j = 0; j < max; j++) {
						demo.spawn(touch.x, touch.y);
					}

				}
			};

		}
		
		function ChangeBackgroundWhite()
		{ 

		document.getElementById("body").style.background="#ddd url(images/bg.jpg) repeat top left";
		}
		
		function ChangeBackgroundBlack()
		{ 

		document.getElementById("body").style.background="#ddd url(images/egg_shell.png) repeat top left";
		}


		var menu = ui.menu().add('Close Mouse Effects', CloseMouseEffects).add(
				'Open Mouse Effects', OpenMouseEffects).add("ChangeBackgroundWhite",ChangeBackgroundWhite).add("ChangeBackgroundBlack",ChangeBackgroundBlack);

		menu.on('Add item', function() {
			console.log('added an item');
		});

		oncontextmenu = function(e) {
			e.preventDefault();
			menu.moveTo(e.pageX, e.pageY).show();
		};
	</script>



	<script>
		$.jGrowl("Welcome to Fumika System !!");

		$
				.jGrowl(
						"Connect Servers Stahd By ..<br>Conect Spring security System.... <br>Get ROLE_ANONYMOUS Role  ",
						{
							theme : 'manilla',
							speed : 'slow',
							animateOpen : {
								height : "show"
							},
							animateClose : {
								height : "hide"
							}
						});
	</script>

	<div id="test" style=" position:fixed;top:0px;z-index:20;"></div>

	<div id="BlackGroung"
		style="background: rgba(0,0,0,0.8);z-index:9999;width:100%;height:100%;position:fixed;display:none"
		onclick="$('#BlackGroung').fadeOut(400);$('#LoginForm').fadeOut(300);stangbylogin();">
		<img src="images/pisuallogo.png" style="margin-left:39%;margin-top:8%">

		<script>
			function stangbylogin() {

				$.jGrowl("Stand By Login..", {
					theme : 'manilla',
					speed : 'slow',
					animateOpen : {
						height : "show"
					},
					animateClose : {
						height : "hide"
					}
				});

			}
		</script>


	</div>

	<div class="container">

		<header>
			<img src="images/fumikaLogo.png" style="top:100px;">

			<div class="support-note">
				<!-- let's check browser support with modernizr -->
				<!--span class="no-cssanimations">CSS animations are not supported in your browser</span-->
				<span class="no-csstransforms">CSS transforms are not
					supported in your browser</span>
				<!--span class="no-csstransforms3d">CSS 3D transforms are not supported in your browser</span-->
				<span class="no-csstransitions">CSS transitions are not
					supported in your browser</span> <span class="note-ie">Sorry, only
					modern browsers.</span>
			</div>

		</header>



		<div id="sb-container" class="sb-container">

			<div>
				<span class="sb-icon icon-cog"></span>
				<h4>
					<span>All Settings</span>
				</h4>
			</div>
			<div>
				<span class="sb-icon icon-flight"></span>
				<h4>
					<span>User Modes</span>
				</h4>
			</div>
			<div>
				<span class="sb-icon icon-eye"></span>
				<h4>
					<span>Browse All</span>
				</h4>
			</div>
			<div>
				<span class="sb-icon icon-install"></span>
				<h4>
					<span>Install App</span>
				</h4>
			</div>
			<div>
				<span class="sb-icon icon-bag"></span>
				<h4>
					<span>Productivity</span>
				</h4>
			</div>
			<div>
				<span class="sb-icon icon-globe"></span>
				<h4>
					<span>All Options</span>
				</h4>
			</div>
			<div>
				<span class="sb-icon icon-picture"></span>
				<h4>
					<span>User Images</span>
				</h4>
			</div>
			<div>
				<span class="sb-icon icon-video"></span>
				<h4>
					<span>User Videos</span>
				</h4>
			</div>
			<div>
				<span class="sb-icon icon-download"></span>
				<h4>
					<span>Download App</span>
				</h4>
			</div>
			<div>
				<span class="sb-icon icon-mobile"></span>
				<h4>
					<span>Mobile Theme</span>
				</h4>
			</div>
			<div onclick="login();">
				<span class="sb-icon icon-camera"></span>
				<h4>
					<span>Login SYstem</span>
				</h4>
			</div>
			<div>
				<h4>
					<span>Profile</span>
				</h4>
				<span class="sb-toggle">Click to open</span>

			</div>


		</div>
		<!-- sb-container -->

	</div>
	<script>
		function login() {

			$("#Login").fadeTo(200, 1);
			ui.dialog('Overlay time').closable().overlay().showno();
			document.getElementById("Login").style.visibility = "visible";

		}
	</script>

	<div id="Login"
		style="position:fixed;z-index:999;text-align:center;visibility:hidden;top:20%;left:35%;">
		<div>
			<select id="cd-dropdown" class="cd-select">
				<option value="-1" selected>Select You Login Method</option>
				<option value="1" class="icon-camera">Safe Login Model!</option>
				<option value="2" class="icon-diamond">Normel Login Model!</option>
				<option value="3" class="icon-rocket">Remote Login Model!</option>
				<option value="4" class="icon-star">Login Out!</option>
				<option value="5" class="icon-clock">Forget Password</option>
			</select>
		</div>
	</div>

	<div id="LoginForm"
		style="position:fixed;z-index:10000;top:30%;left:37%;display:none;">
		<form class="form-5 clearfix" id="Safelogin">
			<p>
				<input type="text" id="username" name="username" placeholder="Username">
				<input type="password" name="password" id="password"
					placeholder="Password"> <input type="password"
					name="SafeNum" id="password" placeholder="SafeNum">
			</p>
			<button type="button" name="submit" style="height:153px" onclick="PostJsonAjax('../login')">
				<i class="icon-arrow-right"></i> <span>Sign in</span>
			</button>
			</form>
	</div>


	

	<script type="text/javascript">
		$(function() {

			$('#cd-dropdown').dropdown({
				gutter : 5,
				stack : false,
				delay : 100,
				slidingIn : 100
			});

		});
	</script>

	<script type="text/javascript">
		$(function() {

			$('#sb-container').swatchbook({
				// number of degrees that is between each item
				angleInc : 15,
				neighbor : 15,
				// if it should be closed by default
				initclosed : true,
				// index of the element that when clicked, triggers the open/close function
				// by default there is no such element
				closeIdx : 11
			});

		});
	</script>

	<script>
		// ----------------------------------------
		// Particle
		// ----------------------------------------

		function Particle(x, y, radius) {
			this.init(x, y, radius);
		}

		Particle.prototype = {

			init : function(x, y, radius) {

				this.alive = true;

				this.radius = radius || 10;
				this.wander = 0.15;
				this.theta = random(TWO_PI);
				this.drag = 0.92;
				this.color = '#fff';

				this.x = x || 0.0;
				this.y = y || 0.0;

				this.vx = 0.0;
				this.vy = 0.0;
			},

			move : function() {

				this.x += this.vx;
				this.y += this.vy;

				this.vx *= this.drag;
				this.vy *= this.drag;

				this.theta += random(-0.5, 0.5) * this.wander;
				this.vx += sin(this.theta) * 0.1;
				this.vy += cos(this.theta) * 0.1;

				this.radius *= 0.96;
				this.alive = this.radius > 0.5;
			},

			draw : function(ctx) {

				ctx.beginPath();
				ctx.arc(this.x, this.y, this.radius, 0, TWO_PI);
				ctx.fillStyle = this.color;
				ctx.fill();
			}
		};

		// ----------------------------------------
		// Example
		// ----------------------------------------

		var MAX_PARTICLES = 280;
		var COLOURS = [ '#69D2E7', '#A7DBD8', '#E0E4CC', '#F38630', '#FA6900',
				'#FF4E50', '#F9D423' ];

		var particles = [];
		var pool = [];

		var demo = Sketch.create({
			container : document.getElementById('test')
		});

		demo.setup = function() {

			// Set off some initial particles.
			var i, x, y;

			//  for ( i = 0; i < 20; i++ ) {
			x = (demo.width * 0.5) + random(-100, 100);
			y = (demo.height * 0.5) + random(-100, 100);
			demo.spawn(0, 999);
			// }
		};

		demo.spawn = function(x, y) {

			if (particles.length >= MAX_PARTICLES)
				pool.push(particles.shift());

			particle = pool.length ? pool.pop() : new Particle();
			particle.init(x, y, random(5, 40));

			particle.wander = random(0.5, 2.0);
			particle.color = random(COLOURS);
			particle.drag = random(0.9, 0.99);

			theta = random(TWO_PI);
			force = random(2, 8);

			particle.vx = sin(theta) * force;
			particle.vy = cos(theta) * force;

			particles.push(particle);
		};

		demo.update = function() {

			var i, particle;

			for (i = particles.length - 1; i >= 0; i--) {

				particle = particles[i];

				if (particle.alive)
					particle.move();
				else
					pool.push(particles.splice(i, 1)[0]);
			}
		};

		demo.draw = function() {

			demo.globalCompositeOperation = 'lighter';

			for ( var i = particles.length - 1; i >= 0; i--) {
				particles[i].draw(demo);
			}
		};

		demo.mousemove = function() {

			var particle, theta, force, touch, max, i, j, n;

			for (i = 0, n = demo.touches.length; i < n; i++) {

				touch = demo.touches[i], max = random(1, 4);
				for (j = 0; j < max; j++) {
					demo.spawn(touch.x, touch.y);
				}

			}
		};
	</script>
</body>
</html>








JS代码(form.js):

/* * jQuery form plugin * @requires jQuery v1.1 or later * * Examples at:http://malsup.com/jquery/form/ * Dual licensed under the MIT and GPL licenses:* http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * * Revision:$Id$ * Version:1.0.3 */
 (function($){
	/** * ajaxSubmit() provides a mechanism for submitting an HTML form using AJAX. * * ajaxSubmit accepts a single argument which can be either a success callback function * or an options Object. If a function is provided it will be invoked upon successful * completion of the submit and will be passed the response from the server. * If an options Object is provided,the following attributes are supported:* * target:Identifies the element(s) in the page to be updated with the server response. * This value may be specified as a jQuery selection string,a jQuery object,* or a DOM element. * default value:null * * url:URL to which the form data will be submitted. * default value:value of form's 'action' attribute * * type:The method in which the form data should be submitted,'GET' or 'POST'. * default value:value of form's 'method' attribute (or 'GET' if none found) * * beforeSubmit:Callback method to be invoked before the form is submitted. * default value:null * * success:Callback method to be invoked after the form has been successfully submitted * and the response has been returned from the server * default value:null * * dataType:Expected dataType of the response. One of:null,'xml','script',or 'json' * default value:null * * semantic:Boolean flag indicating whether data must be submitted in semantic order (slower). * default value:false * * resetForm:Boolean flag indicating whether the form should be reset if the submit is successful * * clearForm:Boolean flag indicating whether the form should be cleared if the submit is successful * * * The 'beforeSubmit' callback can be provided as a hook for running pre-submit logic or for * validating the form data. If the 'beforeSubmit' callback returns false then the form will * not be submitted. The 'beforeSubmit' callback is invoked with three arguments:the form data * in array format,the jQuery object,and the options object passed into ajaxSubmit. * The form data array takes the following form:* * [{
	name:'username',value:'jresig'}
,{
	name:'password',value:'secret'}
] * * If a 'success' callback method is provided it is invoked after the response has been returned * from the server. It is passed the responseText or responseXML value (depending on dataType). * See jQuery.ajax for further details. * * * The dataType option provides a means for specifying how the server response should be handled. * This maps directly to the jQuery.httpData method. The following values are supported:* * 'xml':if dataType == 'xml' the server response is treated as XML and the 'success' * callback method,if specified,will be passed the responseXML value * 'json':if dataType == 'json' the server response will be evaluted and passed to * the 'success' callback,if specified * 'script':if dataType == 'script' the server response is evaluated in the global context * * * Note that it does not make sense to use both the 'target' and 'dataType' options. If both * are provided the target will be ignored. * * The semantic argument can be used to force form serialization in semantic order. * This is normally true anyway,unless the form contains input elements of type='image'. * If your form must be submitted with name/value pairs in semantic order and your form * contains an input of type='image" then pass true for this arg,otherwise pass false * (or nothing) to avoid the overhead for this logic. * * * When used on its own,ajaxSubmit() is typically bound to a form's submit event like this:* * $("#form-id").submit(function(){
	* $(this).ajaxSubmit(options);
	* return false;
	// cancel conventional submit *}
);
	* * When using ajaxForm(),however,this is done for you. * * @example * $('#myForm').ajaxSubmit(function(data){
	* alert('Form submit succeeded! Server returned:' + data);
	*}
);
	* @desc Submit form and alert server response * * * @example * var options ={
	* target:'#myTargetDiv' *}
;
	* $('#myForm').ajaxSubmit(options);
	* @desc Submit form and update page element with server response * * * @example * var options ={
	* success:function(responseText){
	* alert(responseText);
	*}
*}
;
	* $('#myForm').ajaxSubmit(options);
	* @desc Submit form and alert the server response * * * @example * var options ={
	* beforeSubmit:function(formArray,jqForm){
	* if (formArray.length == 0){
	* alert('Please enter data.');
	* return false;
	*}
*}
*}
;
	* $('#myForm').ajaxSubmit(options);
	* @desc Pre-submit validation which aborts the submit operation if form data is empty * * * @example * var options ={
	* url:myJsonUrl.php,* dataType:'json',* success:function(data){
	* // 'data' is an object representing the the evaluated json data *}
*}
;
	* $('#myForm').ajaxSubmit(options);
	* @desc json data returned and evaluated * * * @example * var options ={
	* url:myXmlUrl.php,* dataType:'xml',* success:function(responseXML){
	* // responseXML is XML document object * var data = $('myElement',responseXML).text();
	*}
*}
;
	* $('#myForm').ajaxSubmit(options);
	* @desc XML data returned from server * * * @example * var options ={
	* resetForm:true *}
;
	* $('#myForm').ajaxSubmit(options);
	* @desc submit form and reset it if successful * * @example * $('#myForm).submit(function(){
	* $(this).ajaxSubmit();
	* return false;
	*}
);
	* @desc Bind form's submit event to use ajaxSubmit * * * @name ajaxSubmit * @type jQuery * @param options object literal containing options which control the form submission process * @cat Plugins/Form * @return jQuery */
$.fn.ajaxSubmit = function(options){
	if (typeof options == 'function') options ={
	success:options}
;
	options = $.extend({
	url:this.attr('action') || window.location,type:this.attr('method') || 'GET'}
,options ||{
}
);
	var a = this.formToArray(options.semantic);
	// give pre-submit callback an opportunity to abort the submit if (options.beforeSubmit && options.beforeSubmit(a,this,options) === false) return this;
	// fire vetoable 'validate' event var veto ={
}
;
	$.event.trigger('form.submit.validate',[a,this,options,veto]);
	if (veto.veto) return this;
	var q = $.param(a);
	//.replace(/%20/g,'+');
	if (options.type.toUpperCase() == 'GET'){
	options.url += (options.url.indexOf('?') >= 0 ? '&':'?') + q;
	options.data = null;
	// data is null for 'get'}
else options.data = q;
	// data is the query string for 'post' var $form = this,callbacks = [];
	if (options.resetForm) callbacks.push(function(){
	$form.resetForm();
}
);
	if (options.clearForm) callbacks.push(function(){
	$form.clearForm();
}
);
	// perform a load on the target only if dataType is not provided if (!options.dataType && options.target){
	var oldSuccess = options.success;
	// || function(){
}
;
	callbacks.push(function(data){
	$(options.target).attr("innerHTML",data).evalScripts().each(oldSuccess,arguments);
}
);
}
else if (options.success) callbacks.push(options.success);
	options.success = function(data,status){
	for (var i=0,max=callbacks.length;
	i < max;
	i++) callbacks[i](data,status,$form);
}
;
	// are there files to upload? var files = $('input:file',this).fieldValue();
	var found = false;
	for (var j=0;
	j < files.length;
	j++) if (files[j]) found = true;
	if (options.iframe || found) // options.iframe allows user to force iframe mode fileUpload();
	else $.ajax(options);
	// fire 'notify' event $.event.trigger('form.submit.notify',[this,options]);
	return this;
	// private function for handling file uploads (hat tip to YAHOO!) function fileUpload(){
	var form = $form[0];
	var opts = $.extend({
}
,$.ajaxSettings,options);
	var id = 'jqFormIO' + $.fn.ajaxSubmit.counter++;
	var $io = $('<iframe id="' + id + '" name="' + id + '" />');
	var io = $io[0];
	var op8 = $.browser.opera && window.opera.version() < 9;
	if ($.browser.msie || op8) io.src = 'javascript:false;
	document.write("");
	';
	$io.css({
	position:'absolute',top:'-1000px',left:'-1000px'}
);
	var xhr ={
	// mock object responseText:null,responseXML:null,status:0,statusText:'n/a',getAllResponseHeaders:function(){
}
,getResponseHeader:function(){
}
,setRequestHeader:function(){
}
}
;
	var g = opts.global;
	// trigger ajax global events so that activity/block indicators work like normal if (g && ! $.active++) $.event.trigger("ajaxStart");
	if (g) $.event.trigger("ajaxSend",[xhr,opts]);
	var cbInvoked = 0;
	var timedOut = 0;
	// take a breath so that pending repaints get some cpu time before the upload starts setTimeout(function(){
	$io.appendTo('body');
	// jQuery's event binding doesn't work for iframe events in IE io.attachEvent ? io.attachEvent('onload',cb):io.addEventListener('load',cb,false);
	// make sure form attrs are set var encAttr = form.encoding ? 'encoding':'enctype';
	var t = $form.attr('target');
	$form.attr({
	target:id,method:'POST',encAttr:'multipart/form-data',action:opts.url}
);
	// support timout if (opts.timeout) setTimeout(function(){
	timedOut = true;
	cb();
}
,opts.timeout);
	form.submit();
	$form.attr('target',t);
	// reset target}
,10);
	function cb(){
	if (cbInvoked++) return;
	io.detachEvent ? io.detachEvent('onload',cb):io.removeEventListener('load',cb,false);
	var ok = true;
	try{
	if (timedOut) throw 'timeout';
	// extract the server response from the iframe var data,doc;
	doc = io.contentWindow ? io.contentWindow.document:io.contentDocument ? io.contentDocument:io.document;
	xhr.responseText = doc.body ? doc.body.innerHTML:null;
	xhr.responseXML = doc.XMLDocument ? doc.XMLDocument:doc;
	if (opts.dataType == 'json' || opts.dataType == 'script'){
	var ta = doc.getElementsByTagName('textarea')[0];
	data = ta ? ta.value:xhr.responseText;
	if (opts.dataType == 'json') eval("data = " + data);
	else $.globalEval(data);
}
else if (opts.dataType == 'xml'){
	data = xhr.responseXML;
	if (!data && xhr.responseText != null) data = toXml(xhr.responseText);
}
else{
	data = xhr.responseText;
}
}
catch(e){
	ok = false;
	$.handleError(opts,xhr,'error',e);
}
// ordering of these callbacks/triggers is odd,but that's how $.ajax does it if (ok){
	opts.success(data,'success');
	if (g) $.event.trigger("ajaxSuccess",[xhr,opts]);
}
if (g) $.event.trigger("ajaxComplete",[xhr,opts]);
	if (g && ! --$.active) $.event.trigger("ajaxStop");
	if (opts.complete) opts.complete(xhr,ok ? 'success':'error');
	// clean up setTimeout(function(){
	$io.remove();
	xhr.responseXML = null;
}
,100);
}
;
	function toXml(s,doc){
	if (window.ActiveXObject){
	doc = new ActiveXObject('Microsoft.XMLDOM');
	doc.async = 'false';
	doc.loadXML(s);
}
else doc = (new DOMParser()).parseFromString(s,'text/xml');
	return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc:null;
}
;
}
;
}
;
	$.fn.ajaxSubmit.counter = 0;
	// used to create unique iframe ids/** * ajaxForm() provides a mechanism for fully automating form submission. * * The advantages of using this method instead of ajaxSubmit() are:* * 1:This method will include coordinates for <input type="image" /> elements (if the element * is used to submit the form). * 2. This method will include the submit element's name/value data (for the element that was * used to submit the form). * 3. This method binds the submit() method to the form for you. * * Note that for accurate x/y coordinates of image submit elements in all browsers * you need to also use the "dimensions" plugin (this method will auto-detect its presence). * * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely * passes the options argument along after properly binding events for submit elements and * the form itself. See ajaxSubmit for a full description of the options argument. * * * @example * var options ={
	* target:'#myTargetDiv' *}
;
	* $('#myForm').ajaxSForm(options);
	* @desc Bind form's submit event so that 'myTargetDiv' is updated with the server response * when the form is submitted. * * * @example * var options ={
	* success:function(responseText){
	* alert(responseText);
	*}
*}
;
	* $('#myForm').ajaxSubmit(options);
	* @desc Bind form's submit event so that server response is alerted after the form is submitted. * * * @example * var options ={
	* beforeSubmit:function(formArray,jqForm){
	* if (formArray.length == 0){
	* alert('Please enter data.');
	* return false;
	*}
*}
*}
;
	* $('#myForm').ajaxSubmit(options);
	* @desc Bind form's submit event so that pre-submit callback is invoked before the form * is submitted. * * * @name ajaxForm * @param options object literal containing options which control the form submission process * @return jQuery * @cat Plugins/Form * @type jQuery */
$.fn.ajaxForm = function(options){
	return this.ajaxFormUnbind().submit(submitHandler).each(function(){
	// store options in hash this.formPluginId = $.fn.ajaxForm.counter++;
	$.fn.ajaxForm.optionHash[this.formPluginId] = options;
	$(":submit,input:image",this).click(clickHandler);
}
);
}
;
	$.fn.ajaxForm.counter = 1;
	$.fn.ajaxForm.optionHash ={
}
;
	function clickHandler(e){
	var $form = this.form;
	$form.clk = this;
	if (this.type == 'image'){
	if (e.offsetX != undefined){
	$form.clk_x = e.offsetX;
	$form.clk_y = e.offsetY;
}
else if (typeof $.fn.offset == 'function'){
	// try to use dimensions plugin var offset = $(this).offset();
	$form.clk_x = e.pageX - offset.left;
	$form.clk_y = e.pageY - offset.top;
}
else{
	$form.clk_x = e.pageX - this.offsetLeft;
	$form.clk_y = e.pageY - this.offsetTop;
}
}
// clear form vars setTimeout(function(){
	$form.clk = $form.clk_x = $form.clk_y = null;
}
,10);
}
;
	function submitHandler(){
	// retrieve options from hash var id = this.formPluginId;
	var options = $.fn.ajaxForm.optionHash[id];
	$(this).ajaxSubmit(options);
	return false;
}
;
	/** * ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm * * @name ajaxFormUnbind * @return jQuery * @cat Plugins/Form * @type jQuery */
$.fn.ajaxFormUnbind = function(){
	this.unbind('submit',submitHandler);
	return this.each(function(){
	$(":submit,input:image",this).unbind('click',clickHandler);
}
);
}
;
	/** * formToArray() gathers form element data into an array of objects that can * be passed to any of the following ajax functions:$.get,$.post,or load. * Each object in the array has both a 'name' and 'value' property. An example of * an array for a simple login form might be:* * [{
	name:'username',value:'jresig'}
,{
	name:'password',value:'secret'}
] * * It is this array that is passed to pre-submit callback functions provided to the * ajaxSubmit() and ajaxForm() methods. * * The semantic argument can be used to force form serialization in semantic order. * This is normally true anyway,unless the form contains input elements of type='image'. * If your form must be submitted with name/value pairs in semantic order and your form * contains an input of type='image" then pass true for this arg,otherwise pass false * (or nothing) to avoid the overhead for this logic. * * @example var data = $("#myForm").formToArray();
	* $.post( "myscript.cgi",data );
	* @desc Collect all the data from a form and submit it to the server. * * @name formToArray * @param semantic true if serialization must maintain strict semantic ordering of elements (slower) * @type Array<Object> * @cat Plugins/Form */
$.fn.formToArray = function(semantic){
	var a = [];
	if (this.length == 0) return a;
	var form = this[0];
	var els = semantic ? form.getElementsByTagName('*'):form.elements;
	if (!els) return a;
	for(var i=0,max=els.length;
	i < max;
	i++){
	var el = els[i];
	var n = el.name;
	if (!n) continue;
	if (semantic && form.clk && el.type == "image"){
	// handle image inputs on the fly when semantic == true if(!el.disabled && form.clk == el) a.push({
	name:n+'.x',value:form.clk_x}
,{
	name:n+'.y',value:form.clk_y}
);
	continue;
}
var v = $.fieldValue(el,true);
	if (v && v.constructor == Array){
	for(var j=0,jmax=v.length;
	j < jmax;
	j++) a.push({
	name:n,value:v[j]}
);
}
else if (v !== null && typeof v != 'undefined') a.push({
	name:n,value:v}
);
}
if (!semantic && form.clk){
	// input type=='image' are not found in elements array! handle them here var inputs = form.getElementsByTagName("input");
	for(var i=0,max=inputs.length;
	i < max;
	i++){
	var input = inputs[i];
	var n = input.name;
	if(n && !input.disabled && input.type == "image" && form.clk == input) a.push({
	name:n+'.x',value:form.clk_x}
,{
	name:n+'.y',value:form.clk_y}
);
}
}
return a;
}
;
	/** * Serializes form data into a 'submittable' string. This method will return a string * in the format:name1=value1&amp;
	name2=value2 * * The semantic argument can be used to force form serialization in semantic order. * If your form must be submitted with name/value pairs in semantic order then pass * true for this arg,otherwise pass false (or nothing) to avoid the overhead for * this logic (which can be significant for very large forms). * * @example var data = $("#myForm").formSerialize();
	* $.ajax('POST',"myscript.cgi",data);
	* @desc Collect all the data from a form into a single string * * @name formSerialize * @param semantic true if serialization must maintain strict semantic ordering of elements (slower) * @type String * @cat Plugins/Form */
$.fn.formSerialize = function(semantic){
	//hand off to jQuery.param for proper encoding return $.param(this.formToArray(semantic));
}
;
	/** * Serializes all field elements in the jQuery object into a query string. * This method will return a string in the format:name1=value1&amp;
	name2=value2 * * The successful argument controls whether or not serialization is limited to * 'successful' controls (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls). * The default value of the successful argument is true. * * @example var data = $("input").formSerialize();
	* @desc Collect the data from all successful input elements into a query string * * @example var data = $(":radio").formSerialize();
	* @desc Collect the data from all successful radio input elements into a query string * * @example var data = $("#myForm:checkbox").formSerialize();
	* @desc Collect the data from all successful checkbox input elements in myForm into a query string * * @example var data = $("#myForm:checkbox").formSerialize(false);
	* @desc Collect the data from all checkbox elements in myForm (even the unchecked ones) into a query string * * @example var data = $(":input").formSerialize();
	* @desc Collect the data from all successful input,select,textarea and button elements into a query string * * @name fieldSerialize * @param successful true if only successful controls should be serialized (default is true) * @type String * @cat Plugins/Form */
$.fn.fieldSerialize = function(successful){
	var a = [];
	this.each(function(){
	var n = this.name;
	if (!n) return;
	var v = $.fieldValue(this,successful);
	if (v && v.constructor == Array){
	for (var i=0,max=v.length;
	i < max;
	i++) a.push({
	name:n,value:v[i]}
);
}
else if (v !== null && typeof v != 'undefined') a.push({
	name:this.name,value:v}
);
}
);
	//hand off to jQuery.param for proper encoding return $.param(a);
}
;
	/** * Returns the value(s) of the element in the matched set. For example,consider the following form:* * <form><fieldset> * <input name="A" type="text" /> * <input name="A" type="text" /> * <input name="B" type="checkbox" value="B1" /> * <input name="B" type="checkbox" value="B2"/> * <input name="C" type="radio" value="C1" /> * <input name="C" type="radio" value="C2" /> * </fieldset></form> * * var v = $(':text').fieldValue();
	* // if no values are entered into the text inputs * v == ['',''] * // if values entered into the text inputs are 'foo' and 'bar' * v == ['foo','bar'] * * var v = $(':checkbox').fieldValue();
	* // if neither checkbox is checked * v === undefined * // if both checkboxes are checked * v == ['B1','B2'] * * var v = $(':radio').fieldValue();
	* // if neither radio is checked * v === undefined * // if first radio is checked * v == ['C1'] * * The successful argument controls whether or not the field element must be 'successful' * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls). * The default value of the successful argument is true. If this value is false the value(s) * for each element is returned. * * Note:This method *always* returns an array. If no valid value can be determined the * array will be empty,otherwise it will contain one or more values. * * @example var data = $("#myPasswordElement").fieldValue();
	* alert(data[0]);
	* @desc Alerts the current value of the myPasswordElement element * * @example var data = $("#myForm:input").fieldValue();
	* @desc Get the value(s) of the form elements in myForm * * @example var data = $("#myForm:checkbox").fieldValue();
	* @desc Get the value(s) for the successful checkbox element(s) in the jQuery object. * * @example var data = $("#mySingleSelect").fieldValue();
	* @desc Get the value(s) of the select control * * @example var data = $(':text').fieldValue();
	* @desc Get the value(s) of the text input or textarea elements * * @example var data = $("#myMultiSelect").fieldValue();
	* @desc Get the values for the select-multiple control * * @name fieldValue * @param Boolean successful true if only the values for successful controls should be returned (default is true) * @type Array<String> * @cat Plugins/Form */
$.fn.fieldValue = function(successful){
	for (var val=[],i=0,max=this.length;
	i < max;
	i++){
	var el = this[i];
	var v = $.fieldValue(el,successful);
	if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) continue;
	v.constructor == Array ? $.merge(val,v):val.push(v);
}
return val;
}
;
	/** * Returns the value of the field element. * * The successful argument controls whether or not the field element must be 'successful' * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls). * The default value of the successful argument is true. If the given element is not * successful and the successful arg is not false then the returned value will be null. * * Note:If the successful flag is true (default) but the element is not successful,the return will be null * Note:The value returned for a successful select-multiple element will always be an array. * Note:If the element has no value the return value will be undefined. * * @example var data = jQuery.fieldValue($("#myPasswordElement")[0]);
	* @desc Gets the current value of the myPasswordElement element * * @name fieldValue * @param Element el The DOM element for which the value will be returned * @param Boolean successful true if value returned must be for a successful controls (default is true) * @type String or Array<String> or null or undefined * @cat Plugins/Form */
$.fieldValue = function(el,successful){
	var n = el.name,t = el.type,tag = el.tagName.toLowerCase();
	if (typeof successful == 'undefined') successful = true;
	if (successful && (!n || el.disabled || t == 'reset' || t == 'button' || (t == 'checkbox' || t == 'radio') && !el.checked || (t == 'submit' || t == 'image') && el.form && el.form.clk != el || tag == 'select' && el.selectedIndex == -1)) return null;
	if (tag == 'select'){
	var index = el.selectedIndex;
	if (index < 0) return null;
	var a = [],ops = el.options;
	var one = (t == 'select-one');
	var max = (one ? index+1:ops.length);
	for(var i=(one ? index:0);
	i < max;
	i++){
	var op = ops[i];
	if (op.selected){
	// extra pain for IE... var v = $.browser.msie && !(op.attributes['value'].specified) ? op.text:op.value;
	if (one) return v;
	a.push(v);
}
}
return a;
}
return el.value;
}
;
	/** * Clears the form data. Takes the following actions on the form's input fields:* - input text fields will have their 'value' property set to the empty string * - select elements will have their 'selectedIndex' property set to -1 * - checkbox and radio inputs will have their 'checked' property set to false * - inputs of type submit,button,reset,and hidden will *not* be effected * - button elements will *not* be effected * * @example $('form').clearForm();
	* @desc Clears all forms on the page. * * @name clearForm * @type jQuery * @cat Plugins/Form */
$.fn.clearForm = function(){
	return this.each(function(){
	$('input,select,textarea',this).clearFields();
}
);
}
;
	/** * Clears the selected form elements. Takes the following actions on the matched elements:* - input text fields will have their 'value' property set to the empty string * - select elements will have their 'selectedIndex' property set to -1 * - checkbox and radio inputs will have their 'checked' property set to false * - inputs of type submit,button,reset,and hidden will *not* be effected * - button elements will *not* be effected * * @example $('.myInputs').clearFields();
	* @desc Clears all inputs with class myInputs * * @name clearFields * @type jQuery * @cat Plugins/Form */
$.fn.clearFields = $.fn.clearInputs = function(){
	return this.each(function(){
	var t = this.type,tag = this.tagName.toLowerCase();
	if (t == 'text' || t == 'password' || tag == 'textarea') this.value = '';
	else if (t == 'checkbox' || t == 'radio') this.checked = false;
	else if (tag == 'select') this.selectedIndex = -1;
}
);
}
;
	/** * Resets the form data. Causes all form elements to be reset to their original value. * * @example $('form').resetForm();
	* @desc Resets all forms on the page. * * @name resetForm * @type jQuery * @cat Plugins/Form */
$.fn.resetForm = function(){
	return this.each(function(){
	// guard against an input with the name of 'reset' // note that IE reports the reset function as an 'object' if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) this.reset();
}
);
}
;
}
)(jQuery);
	

CSS代码(common.css):

.cd-dropdown,.cd-select{position:relative;width:500px;margin:20px auto;display:block;}
.cd-dropdown > span{width:100%;height:60px;line-height:60px;color:#999;font-weight:700;font-size:16px;background:#fff;display:block;padding:0 50px 0 30px;position:relative;cursor:pointer;}
.cd-dropdown > span:after{content:'\25BC';position:absolute;right:0px;top:15%;width:50px;text-align:center;font-size:12px;padding:10px;height:70%;line-height:24px;border-left:1px solid #ddd;}
.cd-dropdown.cd-active > span:after{content:'\25B2';}
.cd-dropdown ul{list-style-type:none;margin:0;padding:0;display:block;position:relative;}
.cd-dropdown ul li{display:block;}
.cd-dropdown ul li span{width:100%;background:#fff;line-height:60px;padding:0 30px 0 75px;display:block;color:#bcbcbc;cursor:pointer;font-weight:700;}
.cd-dropdown > span,.cd-dropdown ul li span{-webkit-backface-visibility:hidden;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}
.cd-dropdown > span span[class^="icon-"],.cd-dropdown > span span[class*=" icon-"]{padding:0 30px 0 45px;}
/* Select fallback styling */
.cd-select{border:1px solid #ddd;}

CSS代码(demo.css):

@font-face{font-family:'icons';src:url("font/icons.eot");src:url(".font/icons.eot?#iefix") format('embedded-opentype'),url("font/icons.woff") format('woff'),url("font/icons.ttf") format('truetype'),url("font/icons.svg#icons") format('svg');font-weight:normal;font-style:normal;}
*,*:after,*:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin:0;}
/* Clearfix hack by Nicolas Gallagher:http://nicolasgallagher.com/micro-clearfix-hack/ */
.clearfix:before,.clearfix:after{content:" ";/* 1 */
 display:table;/* 2 */
}
.clearfix:after{clear:both;}
.clearfix{*zoom:1;}
body{font-family:'Open Sans Condensed','Arial Narrow',serif;background:#ddd url(../images/egg_shell.png) repeat top left;font-weight:400;font-size:15px;color:#333;overflow:scroll;overflow-x:hidden;}
a{color:#555;text-decoration:none;}
.container{width:100%;position:relative;top:100px;}
.clr{clear:both;padding:0;height:0;margin:0;}
.main{margin:0 auto;position:relative;z-index:19;}
.container > header{margin:10px;padding:20px 10px 10px 10px;position:relative;display:block;text-shadow:1px 1px 1px rgba(0,0,0,0.2);text-align:center;}
.container > header h1{font-size:36px;line-height:36px;margin:0;position:relative;font-weight:300;color:#524f4e;text-shadow:1px 1px 1px rgba(255,255,255,0.7);}
.container > header h1 span{font-weight:700;}
.container > header h2{font-size:14px;font-weight:300;margin:0;padding:15px 0 5px 0;color:#888;font-family:Cambria,Georgia,serif;font-style:italic;text-shadow:1px 1px 1px rgba(255,255,255,0.9);}
/* Header Style */
.codrops-top{line-height:24px;font-size:11px;background:#fff;background:rgba(255,255,255,0.6);text-transform:uppercase;z-index:9999;position:relative;font-family:Cambria,Georgia,serif;box-shadow:1px 0px 2px rgba(0,0,0,0.2);}
.codrops-top a{padding:0px 10px;letter-spacing:1px;color:#333;display:inline-block;}
.codrops-top a:hover{background:rgba(255,255,255,0.3);}
.codrops-top span.right{float:right;}
.codrops-top span.right a{float:left;display:block;}
/* Demo Buttons Style */
.codrops-demos{text-align:center;display:block;line-height:30px;padding:5px 0px;}
.codrops-demos a{display:inline-block;margin:0px 4px;padding:0px 6px;color:#aaa;line-height:20px;font-size:13px;text-shadow:1px 1px 1px #fff;border:1px solid #fff;background:#ffffff;/* Old browsers */
background:-moz-linear-gradient(top,#ffffff 0%,#f6f6f6 47%,#ededed 100%);/* FF3.6+ */
background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ffffff),color-stop(47%,#f6f6f6),color-stop(100%,#ededed));/* Chrome,Safari4+ */
background:-webkit-linear-gradient(top,#ffffff 0%,#f6f6f6 47%,#ededed 100%);/* Chrome10+,Safari5.1+ */
background:-o-linear-gradient(top,#ffffff 0%,#f6f6f6 47%,#ededed 100%);/* Opera 11.10+ */
background:-ms-linear-gradient(top,#ffffff 0%,#f6f6f6 47%,#ededed 100%);/* IE10+ */
background:linear-gradient(top,#ffffff 0%,#f6f6f6 47%,#ededed 100%);/* W3C */
filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff',endColorstr='#ededed',GradientType=0 );/* IE6-9 */
box-shadow:0 1px 1px rgba(0,0,0,0.1);}
.codrops-demos a:hover{color:#333;background:#fff;}
.codrops-demos a:active{background:#fff;}
.codrops-demos a.current-demo,.codrops-demos a.current-demo:hover{background:#f0f0f0;border-color:#d9d9d9;color:#aaa;box-shadow:0 1px 1px rgba(255,255,255,0.7);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#f6f6f6',endColorstr='#f6f6f6',GradientType=0 );/* IE6-9 */
}
.support-note span{color:#ac375d;font-size:16px;display:none;font-weight:bold;text-align:center;padding:5px 0;}
.no-cssanimations .support-note span.no-cssanimations,.no-csstransforms .support-note span.no-csstransforms,.no-csstransforms3d .support-note span.no-csstransforms3d,.no-csstransitions .support-note span.no-csstransitions{display:block;}
div.jGrowl div.manilla{background-color:#FFF1C2;color:navy;}
div.jGrowl div.smoke{background:url('images/smoke.png') no-repeat;-moz-border-radius:0px;-webkit-border-radius:0px;width:280px;height:55px;overflow:hidden;}
div.jGrowl div.flora{background:#E6F7D4 url(flora-notification.png) no-repeat;-moz-border-radius:0px;-webkit-border-radius:0px;opacity:1;filter:alpha(opacity = 100);width:270px;height:90px;padding:0px;overflow:hidden;border-color:#5ab500;}
div.jGrowl div.flora div.message{padding:5px;color:#000;}
div.jGrowl div.flora div.header{background:url(flora-header.png) no-repeat;padding:5px;}
div.jGrowl div.flora div.close{background:url(flora-close.png) no-repeat;padding:5px;color:transparent;padding:0px;margin:5px;width:17px;}
div.jGrowl div.iphone{font-family:"Helvetica Neue","Helvetica";font-size:12px;background:url(iphone.png) no-repeat;-moz-border-radius:0px;-webkit-border-radius:0px;opacity:.90;filter:alpha(opacity = 90);width:235px;height:137px;overflow:hidden;border-color:#5ab500;color:#fff;}
div.jGrowl div.iphone .jGrowl-close{padding-right:20px;}
div.jGrowl div.iphone div.message{padding-top:0px;padding-bottom:7px;padding-left:15px;padding-right:15px;}
div.jGrowl div.iphone div.header{padding:7px;padding-left:15px;padding-right:15px;font-size:17px;}
div.jGrowl div.iphone div.close{display:none;}
div#random{width:1000px;background-color:red;line-height:60px;}

CSS代码(demoload.css):

附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
234.20 KB
Html 动画效果2
最新结算
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
HTML5实现CSS滤镜图片切换特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery+css3实现信封效果
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章