alert 替代效果smoke.js

在一些表单等需要弹窗提醒的时候,每个浏览器都有一个alert(),comfirm()函数能弹出信息,但是浏览器的自带的这种效果样式不统一,而且都固定在页面顶部;

smoke.js轻量级的JS插件,他标准化浏览器的alert(), comfirm()效果。完全是由html、css、js编写;

  • 要求:CSS3支持
  • 兼容性:大部分浏览器,包括IE6(没有CSS3可视化效果)
  • License:MIT

使用方法:本文使用的是click事件,你也可以自定义事件触发类型;

<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:‘取消按钮文字‘,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"	//弹出框样式
		});
	});

confirm效果--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"	//取消文字
		});
	});

quiz效果--smoke.quiz(string, fn, obj),多按钮(最多三个)

/*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,设置弹出框,没有按钮,可以设置弹框消失的延迟时间

/*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,带有输出框的alert效果

/*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‘	//取消按钮文字
	});
  }
}

鼠标移除文本框后或单击cancel按钮

时间: 2024-10-06 06:16:03

alert 替代效果smoke.js的相关文章

smoke.js是一款基于HTML5 Canvas的逼真烟雾特效js插件。通过该js插件,可以非常轻松的在页面中制作出各种烟雾效果。

Smoke.js 是一个浏览器默认警告系统的JavaScript替代品,如果你想要跨浏览器与平台的标准化JavaScript警告窗口,Smoke.js就是你想要的. Smoke.js是一个轻量级且灵活的JavaScript插件,只是用来替代原有的alert而已.它完全由HTML与CSS3构成,所以你能够自己添加样式来个性化. 要求:CSS3支持 兼容性:大部分浏览器,包括IE6(没有CSS3可视化效果) License:MIT 特性: Signal:消息会显示几秒后消失 Alert:常规的ale

仿jQuery的siblings效果的js原生代码

仿jQuery的siblings效果的js原生代码 <previousSibling> 属性返回选定节点的上一个同级节点(在相同树层级中的前一个节点). <nextSibling> 属性返回被选节点的下一个同级节点(在相同树层级中的下一个节点). 如果不存在这样的节点,则该属性返回 null.//元素节点的节点类型是 1  obj.previousSibling.nodeType ==1; reverse() 方法用于颠倒数组中元素的顺序. push() 方法可向数组的末尾添加一个

菜单栏展开和收起效果(纯js)

2014年6月25日 15:36:29 需要关注的是: 1.用cookie保存用户当前点击的菜单项,不打扰后端代码 2.通过数学计算得到要显示和隐藏的div 3.点击事件是动态绑定到a标签上的,因此当dom加载完后,再执行js,也就是写在onload里 HTML如下: 1 <h3 class="titleH3" id="101">aaaa</h3> 2 <div class="subNav" id="1&q

tween.js可生成平滑动画效果的js动画库

tween.js是一款可生成平滑动画效果的js动画库.tween.js允许你以平滑的方式修改元素的属性值.它可以通过设置生成各种类似CSS3动画效果.相关的jquery插件还有:snabbt.js 强大的jQuery动画库插件和Tweene-超级强大的jQuery动画代理插件. tween.js允许你以平滑的方式修改元素的属性值.你只需要告诉tween你想修改什么值,以及动画结束时它的最终值是什么,动画花费多少时间等信息,tween引擎就可以计算从开始动画点到结束动画点之间值,来产生平滑的动画效

可以替代alert 的漂亮的Js弹框

1 基本弹框 2确认框 3又一种确认框 4带返回的弹框 5带返回的探矿 6 6 一切尽在 http://t4t5.github.io/sweetalert/

[JQuery]用InsertAfter实现图片走马灯展示效果2——js代码重构

写在前面 前面写过一篇文章<[JQuery]用InsertAfter实现图片走马灯展示效果>,自从写过那样的也算是使用面向对象的写法吧,代码实在丑陋,自从写过那样的代码,就是自己的一块心病,总感觉不完美,心里一直惦记着那件事,也是在我写过那篇文章之后,没多久,在博客园首页看到了一篇文章较复杂js的书写格式,这里的代码看着比较简介,就想着抽时间将之前的那段js代码进行重构.说做就做,不想一想起之前写过那样的代码,心里就有疙瘩.所以也就有了这篇文章. $.extend 在开始重构之前,需要先学习一

全屏滚动效果H5FullscreenPage.js

前提: 介于现在很多活动都使用了 类似全屏滚动效果 尤其在微信里面 我自己开发了一个快速构建 此类项目的控件 与市面上大部分控件不同的是此控件还支持元素的动画效果 并提供多种元素效果 基于zepto.js 功能清单: 1 快速实现页面全屏滚动效果.并提供多种翻页效果,兼容大部分ios和android系统. 2 支持在页面中添加多种动画元素效果 来实现淡入,滑入等效果. 3 支持配置音乐功能. 4 支持摇一摇接口功能. 组件核心代码原理: 1 页面滚动 在移动页面上如果想使用滚动,如过没有任何动画

基于jquery的锚点滚动插件(百度百科效果) anchorScroll.js

1.插进使用场景 请打开https://baike.baidu.com/item/%E6%97%A5%E6%9C%AC%E5%8A%A8%E7%94%BB#hotspotmining,查看百度百科页面效果. 2.插件源代码: /* * 作者:孟繁贵 * 2017-08-25 * 版本:1.0 */ jQuery.anchorScroll = function(elem1, elem2) { var currObj, offsetTop = 0, h2List = new Array(), h3L

放大镜效果之js

HTML代码: div.box>div#left+div#buttom+div#right div#left>img div#buttom>div.small>img CSS代码: .box{ position: relative; } #left{ width:310px; height:310px; border: 1px solid blueviolet; } #buttom{ width: 310px; height: 40px; margin-top: 10px; } #