アラート代替効果スモーク.js_html/css_WEB-ITnose

WBOY
リリース: 2016-06-21 09:00:00
オリジナル
832 人が閲覧しました

一部のフォームでポップアップリマインダーが必要な場合、各ブラウザには情報をポップアップできるalert()およびcomfirm()関数がありますが、ブラウザ独自の効果スタイルは統一されておらず、固定されています。ページの上部;

smoke.js は、ブラウザーのalert() および comfirm() 効果を標準化する軽量の JS プラグインです。完全に html、css、js で記述されています。

  • 要件: CSS3 サポート
  • 互換性: IE6 を含むほとんどのブラウザー (CSS3 視覚効果なし)
  • ライセンス: MIT

使用法: この記事ではクリック イベントを使用します。

<body>	<a href="#" rel="demo-alert">alert</a>	<a href="#" rel="demo-confirm">confirm</a>	<a href="#" rel="demo-prompt">prompt</a>	<a href="#" rel="demo-quiz">quiz</a>	<a href="#" rel="demo-signal">signal</a></body>
ログイン後にコピー

スタイル:

.smoke-base {		position: fixed;		top: 0;		left: 0;		bottom: 0;		right: 0;		visibility: hidden;		opacity: 0;	}	.smoke-base.smoke-visible {		opacity: 1;		visibility: visible;	}	.smokebg {		position: fixed;		top: 0;		left: 0;		bottom: 0;		right: 0;	}	.smoke-base .dialog {	  position: absolute;	}	.dialog-prompt {	  margin-top: 15px;	  text-align: center;	}	.dialog-buttons {	  margin: 20px 0 5px 0	}	.smoke {	  font-family: Menlo, 'Andale Mono', monospace;	  text-align: center;	  font-size: 22px;	  line-height: 150%;	}	.dialog-buttons button {	  display: inline-block;	  vertical-align: baseline;	  cursor: pointer;	  font-family: Menlo, 'Andale Mono', monospace;	  font-style: normal;	  text-decoration: none;	  border: 0;	  outline: 0;	  margin: 0 5px;	  -webkit-background-clip: padding-box;	  font-size: 13px;	  line-height: 13px;	  font-weight: normal;	  padding: 9px 12px;	}	.dialog-prompt input {	  margin: 0;	  border: 0;	  font-family: sans-serif;	  outline: none;	  font-family: Menlo, 'Andale Mono', monospace;	  border: 1px solid #aaa;	  width: 75%;	  display: inline-block;	  background-color: transparent;	  font-size: 16px;	  padding: 8px;	}	.smoke-base {	  background: rgba(0,0,0,.3);	  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#90000000,endColorstr=#900000000);	}	.smoke-base .dialog {		top: 25%;		width: 30%;		left: 50%;		margin-left: -20%;	}	.smoke-base .dialog-inner {	  padding: 15px;	  color:#202020;	}	.smoke {	  background-color: rgba(255,255,255,0.95);	  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff);		box-shadow: 0 2px 8px #000;	}	.dialog-buttons button {	  background-color: rgba(0,0,0,.85);	  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#222222,endColorstr=#222222);	  border-radius: 0;	  color: #fff;	}	button.cancel {	  background-color: rgba(0,0,0,.40);	  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#444444,endColorstr=#444444);	}	.queue{		display:none;	}
ログイン後にコピー

alert() 効果をカスタマイズすることもできます。 --smoke.alert(string, fn,obj)

string--ポップアップ ボックスのテキスト コンテンツ、fn--コールバック関数、obj--{ok:'ボタン テキスト',cancel :'キャンセル ボタンtext', classname:'オーバーレイ ポップアップ ボックス スタイル名'}

/*alert*/	$('a[rel="demo-alert"]').on('click',function(e){		e.preventDefault();		smoke.alert("Wouldn't it be funny if Animal Collective was an actual<br /> collective of actual animals?", function(e){			smoke.signal('No really...it totally would, dude.<br />I mean, think about it.');		},{			ok: "Yep",	//确定按钮文字			cancel: "Nope",	//取消按钮文字			classname: "custom-class"	//弹出框样式		});	});
ログイン後にコピー

効果の確認 --smoke.confirm(string,fn,obj)

/*confirm*/	$('a[rel="demo-confirm"]').on('click',function(e){		e.preventDefault();		smoke.confirm("Slippery breath inside<br /> banjo melted. Runny smoky. ",function(e){			if (e){	//确定按钮回调				smoke.signal('Perfect. We\'ll be in touch.');	//点击按钮响应lightbox效果,基本上看不见,因为没有设置延迟时间 smoke.signal()会闪一下就消失了。			}else{	//取消按钮回调				smoke.signal('Please...me so sorry. You look good in dress, you look better on my floor.');			}		}, {			reverseButtons: true,	//确定和取消按钮哪个在前;true ok按钮在前,false cancel按钮在前			classname: "custom-class",			ok: "AGREE",	//确定文字			cancel: "DISAGREE"	//取消文字		});	});
ログイン後にコピー

クイズ効果 --smoke.quiz(string, fn, obj)、複数のボタン (最大 3 つ)

/*quiz*/	$('a[rel="demo-quiz"]').on('click',function(e){		e.preventDefault();		smoke.quiz('Which of these things<br /> is the worst thing?', function (e){			if (e == 'DISCO'){  //点击每个按钮的触发的效果				smoke.signal('nope. it\'s funk.');			}			if (e == 'REGGAE'){				smoke.signal('nope. it\'s disco.');			}								if (e == 'FUNK'){				smoke.signal('nope. it\'s reggae.');			}		}, 			{				button_1	:	"DISCO", 	//多按钮(最多三个)				button_2	: "REGGAE", 				button_3	: "FUNK", 				button_cancel: "NONE OF THEM"	//取消按钮			}		);	});
ログイン後にコピー

信号、設定ポップアップ ボックス。ボタンはありません。ポップアップ ボックスが消えるまでの遅延時間を設定できます。

/*signal*/	$('a[rel="demo-signal"]').on('click',function(e){		e.preventDefault();		smoke.signal('Congratulations! You have just one a free iPod Touch!', function(){}, {duration: 5000, classname: "custom-class"});  //duration:5000设置延迟时间为5000毫秒	});
ログイン後にコピー

プロンプト、出力ボックスのアラート効果あり

/*prompt*/	$('a[rel="demo-prompt"]').on('click',function(e){		e.preventDefault();		o.prompt_demo(1);	});var o={	prompt_demo: function(ver){	  var q = 'What\'s in the bag?';  //设置提示文字,这个是用来遵循文本框的内容约束规则。文本框如果是必填的话就会需要,在用户移除文本框的时候就会触发提示文字。	  if (ver == 2){	    q = 'No no, you HAVE to answer.<br /> What\'s in the bag?';	  }	  smoke.prompt(q, function(e){	    if (e){  //ok按钮的效果	      smoke.signal('You have no idea how badly<br /> I need a bag of '+e+'. <br /><br /> Give it to me. Right now.<br /><br />');	    }else{  //cancel按钮效果	      o.prompt_demo(2);	    }	}, {		reverseButtons: true,  //翻转按钮顺序		value: 'hammers',	//文本框里的默认内容		ok: 'Have a look',	//确定按钮文字		cancel: 'None of your business'	//取消按钮文字	});  }}
ログイン後にコピー

マウスでテキストボックスを削除するか、キャンセルボタンをクリックします

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート