做前端的一般都知道,尽量减少使用alert,主要因为系统的弹出框会终止当前一切进程,甚至连窗口操作也被禁止,实在是不太友好,所以这次讲下如何定制一个你自己的弹出提示框。即:使用html+css制作一个提示框,并使用javascript为它添加常用方法来达到替换系统提示框的目的。
因为时间有限(太忙了,养家糊口的男人你伤不起啊~),我打算分3篇:1、设计制作一个自己的弹出提示框;2、为你的弹出提示框添加交互功能;3、拖拽你的弹出提示框。
在此之前先让我们看下各浏览器的alert效果:
<!--more-->
Chrome下当同一个页面多次alert的时候,会提示可以禁止此页面再次弹出提示框,Opera直接就提示可以禁止脚本继续运行,firefox4 将简洁进行到底,自我感觉Chrome 在这点上应该向人家学习,ie还是老样子,大家都熟悉了。
我们来分解下提示框的组成部分,我画了个图(懒人有懒法):
分析下这个结构,它必须有个默认宽度,不能撑的整屏全糊住,高度应该由其中的内容来决定,一开始出现是在屏幕居中,并要有个半透明的遮罩以凸(好邪恶的字 :c5 )显出它的存在,而且点击标题不松手还可以移动,考虑下,如何用html代码来构架。
先声明:我只是讲下如何制作的一个思路,至于具体的制作,你不需要全部照我的来,我的设计并不出众(好吧,我承认很烂!摔! :e7 )。下面这个就是我的设计:
现在你应该已经构思出了一个提示框的html代码,很简单的,如下:
Html代码 收藏代码
<div id="hbg"></div> <!-- 半透明背景遮罩 -->
<div id="alertM"> <!-- 提示框的容器 -->
<h5 id="alertT">提示</h5> <!-- 标题 -->
<a id="alertR" title="关闭" href="javascript:void(0)">×</a> <!-- 关闭按钮 -->
<p id="alertP">测试</p> <!-- 内容 -->
<div id="alertBtns"> <!-- 按钮区域 -->
<a id="alertY" title="确认" href="javascript:void(0)">确认</a> <!-- 确认和取消按钮 -->
<a id="alertN" title="取消" href="javascript:void(0)">取消</a>
</div>
</div>
我们来写下css,注意到里面的每个元素都有个id吗,主要是为了减少其被你的其他样式所覆盖的缘故,叫这几个id的应该不多吧,先进行初始化,减少不兼容:
Css代码 收藏代码
#alertM,#alertT,#alertR,#alertP,#alertBtns{
margin:0;
padding:0;
font-size:14px;
line-height:24px;
font-family:arial,sans-serif;
text-align:left
}
#alertR,#alertBtns a{
text-decoration:none;
}
然后是半透明背景,注意背景的高度和透明度,这里是以后要由js来控制的,而容器之所以绝对定位,主要是为了以后定位方便并添加拖拽功能:
Css代码 收藏代码
#hbg{
width:100%;
position:absolute;
background:#000;
z-index:998;/* 设置层级,主要是为了遮住页面内的其他内容 */
top:0;
left:0;
height:2000px;/* 随便填,超过整屏高度就行,后面由js控制 */
opacity:0.6/* ie8及以下浏览器看不到效果,我也懒的给你写filter,换其他的现代浏览器吧 */
}
#alertM{
position:absolute;/* 绝对定位,为了以后控制方便 */
top:200px;
background:#fff;
z-index:999;/* 层级,当然要比背景高1啦,要不你怎么看见 */
width:400px;
height:auto;
left:600px;/* 随便填,后面由js控制 */
border:1px #ccc solid
}
标题栏和内容,非常简单的:
Css代码 收藏代码
#alertT{
margin:4px;
padding:0 16px;
background:#0398e1;
color:#fff;
border:1px #16a8fc solid;
}
#alertP{
padding:12px;
}
关闭按钮,右浮动,并使用负值margin 调高:
Css代码 收藏代码
#alertR{
font-size:24px;
float:right;/* 右浮动 */
margin:-32px 8px 0 0;/* 使用负值margin 调高 */
padding:4px;
color:#72d5fb;
font-weight:bold;
}
#alertR:hover{
color:#fff;
}
底部按钮区域,也是非常简单的:
Css代码 收藏代码
#alertBtns{
text-align:right;
}
#alertBtns a{
margin:8px;
padding:0 24px;
color:#000;
background: #EEE;
border: 1px #E6E6E6 solid;
display: inline-block;
}
#alertBtns a:hover{
background: #ccc;
border: 1px #ddd solid;
}
#alertBtns a:active{
background: #bbb;
border: 1px #aaa solid;
}
完成啦,怎么样,什么效果,是不是有种微妙的坑爹感觉 :e1 ?是不是如下图一样:
别着急,还没完,还得继续添加下css3效果,如果你用的是ie(神马360,qq,搜狐全都是ie内核)并且版本不高于8的话就没必要继续了,下面的代码对你来说是另一个世界的存在。
非ie党们,我们继续,先调整下容器和标题:
Css代码 收藏代码
#alertM{
box-shadow:0px 0px 24px #000;/* 阴影 */
border-radius:12px;/* 圆角 */
}
#alertT{
text-shadow:0px 1px 1px #000;/* 文字阴影 */
background-image:-moz-linear-gradient(top, #03b3f6, #0374c6);/* 火狐下的渐变 */
background-image:-webkit-gradient(linear,left top, left bottom, color-stop(0, #03b3f6),color-stop(1, #0374c6));/* webkit内核下的渐变 */
border-radius:8px;
box-shadow:0px 1px 2px rgba(0,0,0,0.8);
}
然后是确认和取消按钮,跟上面差不多:
Css代码 收藏代码
#alertBtns a{
text-shadow: 0px 1px 1px white;
background-image: -moz-linear-gradient(top, #fff, #ccc);
background-image: -webkit-gradient(linear,left top, left bottom, color-stop(0, #fff),color-stop(1, #ccc));
border-radius: 4px;
box-shadow: 0px 0px 2px rgba(0,0,0,0.8);
}
#alertBtns a:hover{
background: #ccc;
background-image: -moz-linear-gradient(top, #f6f6f6,#c6c6c6);
background-image: -webkit-gradient(linear,left top, left bottom, color-stop(0, #f6f6f6),color-stop(1, #c6c6c6));
box-shadow: 0px 0px 3px rgba(0,0,0,1);
border: 1px #ddd solid;
}
#alertBtns a:active{
background: #bbb;
background-image: -moz-linear-gradient(top, #f3f3f3,#bbb);
background-image: -webkit-gradient(linear,left top, left bottom, color-stop(0, #f3f3f3),color-stop(1, #bbb));
box-shadow: 0px 0px 2px rgba(0,0,0,0.6);
border: 1px #aaa solid;
}
最后是关闭按钮,我要弄点有趣的,给它添加个旋转动画:
Css代码 收藏代码
#alertR{
text-shadow:0px 1px 1px #000;
-webkit-transform: rotate(-360deg);/* 一开始时候先设定旋转-360度,这样鼠标悬浮的时候转的圈数多一些 */
-moz-transform: rotate(-360deg);
-o-transform: rotate(-360deg);
transform: rotate(-360deg);
-webkit-transition: -webkit-transform 0.6s ease-out;/* 设定动画部分,时间以及效果 */
-moz-transition: -moz-transform 0.6s ease-out;
-o-transition: -o-transform 0.6s ease-out;
transition: transform 0.6s ease-out;
}
#alertR:hover{
color:#fff;
-webkit-transform: rotate(360deg);/* 就是在0.6s 内从-360度转到360度的意思 */
-moz-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
#alertR:active{
text-shadow:0px 0px 1px #000;
}
分享到:
相关推荐
在JavaScript编程中,"自定义弹出框alert"是一个常见的需求,特别是在开发具有个性化交互体验的Web应用时。原生的`alert()`函数虽然简单易用,但其样式和功能非常有限,无法满足复杂的用户界面设计。因此,开发者...
### 自定义弹出框样式 alert修改 在网页开发过程中,我们经常会遇到需要向用户展示提示信息的情况。传统的JavaScript `alert`方法虽然简单易用,但其样式固定且无法自定义,这在追求用户体验和界面美观的现代Web...
在iOS应用开发中,自定义弹出框是一个常见的需求,特别是在需要用户输入信息或展示复杂内容时,系统默认的`UIAlertView`往往无法满足设计和功能上的个性化要求。本主题将详细探讨如何创建一个自定义弹出框,以及如何...
标题 "自定义弹出框(改进后的windows alert)" 暗示了本文将讨论如何创建一个自定义的对话框,以替代系统默认的 `alert` 函数,提供更为丰富的功能和更好的用户体验。通常,系统默认的 `alert` 对话框只有简单的...
在JavaScript编程中,"js精美弹出框alert"是指通过自定义的方式,创建美观且功能丰富的弹出警告对话框,以替代系统默认的简单且样式单一的`alert()`函数。通常,开发者会使用CSS和JavaScript库来实现这种效果,以...
在ActionScript 3(AS3)中,自定义弹出框是创建用户界面时非常常见的一种需求。通常,系统默认的弹出框可能无法满足所有设计和功能要求,因此开发者会选择自定义弹出框来提供更个性化的用户体验。标题"as3自定义弹...
本文将详细解析如何利用HTML、CSS和jQuery来创建一个自定义的弹出框,即"自定义jquery弹出框demo1"。 首先,我们需要理解HTML结构。在创建弹出框时,我们通常会有一个隐藏的div元素,这个div包含了弹出框的所有内容...
自定义弹出框可以提供更灵活的界面设计和用户体验,相比浏览器内置的alert、confirm、prompt等基本对话框,有着更高的可定制性。 自定义弹出框的实现方式多种多样,以下是一些关键知识点: 1. **HTML结构**:首先...
JavaScript弹出框组件的核心在于模拟原生的alert(), confirm() 和 prompt()函数,但提供更多的自定义选项。这些组件通常由HTML结构、CSS样式和JavaScript逻辑三部分组成。HTML负责构建弹出框的布局和元素,CSS用于...
有时候感觉系统自带的提示框太丑了,试试自定义提示框吧,直接引用js即可
自定alert弹出框,自己可以做相应的修改、美化
"js自定义弹出框样式"这个主题涵盖了如何利用JavaScript和相关前端技术来创建不同于系统默认的alert和confirm对话框。下面我们将深入探讨这个话题。 首先,`alert`和`confirm`是JavaScript内置的两种弹窗函数,它们...
本文将深入探讨如何利用jQuery实现自定义弹出框,以满足不同场景下的用户界面需求。 首先,我们需要理解弹出框在网页交互中的作用。弹出框通常用于显示警告、确认信息或者获取用户输入,是增强用户体验的重要工具。...
在iOS开发中,自定义alertView弹出框是一个常见的需求,特别是在设计用户交互界面时,为了提供更好的用户体验,开发者经常需要创建具有独特样式和功能的弹出提示。在苹果的UIKit框架中,虽然提供了预设的UIAlertView...
在前端开发中,用户界面的交互性和美观性是至关重要的,而自定义遮罩和Alert弹出框样式正是实现这一目标的关键技术。本文将深入探讨这两个主题,帮助开发者提升其应用的用户体验。 首先,我们来了解遮罩层(Mask)...
闭包自定义alert 弹出框
在IT行业中,自定义Alert提示框是一个常见的需求,特别是在开发用户界面时,为了提供更加个性化和符合品牌风格的用户体验。通常,系统自带的alert对话框样式单一,难以满足设计和功能上的扩展要求。本篇文章将深入...
用闭包的技术实现alert 弹出框效果,样式可以自己添加调整,使弹出框更加有弹性。更多变灵活