0

0

巧妙使用 CSS3 的褪色和动画效果制作消息提醒框_html/css_WEB-ITnose

php中文网

php中文网

发布时间:2016-06-24 11:29:32

|

1759人浏览过

|

来源于php中文网

原创

 现代web设计技术允许开发者快速实现大多数浏览器支持的动画。我想警告消息是很常见的,因为默认的javascript警告框的样式往往(与你自己设计的漂亮样式)很不协调很囧。这使开发者步入找出哪种解决方案能更好地实现更友好的用户界面的道路。

  在这个教程中我想解释一下我们如何能把几个将要出现在网页上方的CSS3通知框放在一起。用户可以点击这些通知框使它们逐渐淡出消失,最终将他们从DOM中移除。作为一个有趣的附加功能,我还包括了一个按钮,你可以点击它来添加一个新的警告框到页面顶部。你可以下载查看一下我的示例演示,以对我们将做的事情有一个更好的了解。

实际演示 – 下载源代码

 建立页面

  首先, 我们需要创建两个文件命名为“index.html” 和 “style.css”. 我将从Google CDN上调用最新的jQuery 库. HTML是非常简单的,因为我们只需要在警告框里加入一些文本. 所有的JavaScript代码被加在了页面的底部,这样可以节省HTTP请求时间.

立即学习前端免费学习笔记(深入)”;

1

2

3

4

5

6

7

8

9

10

  

   CSS3 Notification Boxes Demo title >

  

  

  

   script >

head >

  头部代码设置了外部调用文件和 HTML5文档规范 . 不是很复杂因为我们只是建立一个简单的示例. 对于提示窗口我定义两个不同的样式 – 成功的和错误的. 还有一些其它风格的例如警告框和信息框, 但是我没有创建更多的,因为我更关注的是效果.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

  

  

     Success! h1 >

     span >

     Thanks so much for your message. We check e-mail frequently and will try our best to respond to your inquiry. p >

   div >

   

  

     Warning! h1 >

     span >

     You did not set the proper return e-mail address. Please fill out the fields and then submit the form. p >

   div >

   

   Click the error boxes to dismiss with a fading effect. p >

   

   Add more by appending dynamic HTML into the page via jQuery. Plus the notifications are super easy to customize. p >

   

  

     New Success Box a >

     New Alert Box a >

   div >

div >

  每个图标文件来自 免费的PSD 和UI作品. 这些图标被我调整为适当的大小.如何你需要警告/信息图标你可以变变颜色创建成你自己的. 这个类名 .notify 被添加到每一个消息DIV上. 它定义了DIV的阴影和字体类型.

  其它的类例如 .successbox 和 .errorbox 充许我们改变颜色和alert窗口里的细节. 你可以看到在我的测试页里加载了两个alert窗口. 每个页面底部的按钮点击后可以在页上下方追加一个新的alert窗口.

 CSS 盒子样式

  我不会将太多 CSS 重置的细节,那些在我之前的教程中很明了了。我创建了一个默认的排版,并将内置 #content 的div居中。这样创建了一个允许jQuery在页面最上面添加新警告元素的盒子区域。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

/** typography **/

h 1 {

   font-family : 'Helvetica Neue' , Helvetica , Arial , sans-serif ;

   font-size : 2.5em ;

   line-height : 1.5em ;

   letter-spacing : -0.05em ;

   margin-bottom : 20px ;

   padding : . 1em 0 ;

   color : #444 ;

     position : relative ;

     overflow : hidden ;

     white-space : nowrap ;

     text-align : center ;

}

h 1: before,

h 1: after {

   content : "" ;

   position : relative ;

   display : inline- block ;

   width : 50% ;

   height : 1px ;

   vertical-align : middle ;

   background : #f0f0f0 ;

}

h 1: before {   

   left : -. 5em ;

   margin : 0 0 0 -50% ;

}

h 1: after {   

   left : . 5em ;

   margin : 0 -50% 0 0 ;

}

h 1 > span {

   display : inline- block ;

   vertical-align : middle ;

   white-space : normal ;

}

 

p {

   display : block ;

   font-size : 1.35em ;

   line-height : 1.5em ;

   margin-bottom : 22px ;

}

 

 

/** page structure **/

#w {

   display : block ;

   width : 750px ;

   margin : 0 auto ;

   padding-top : 30px ;

}

 

#content {

   display : block ;

   width : 100% ;

   background : #fff ;

   padding : 25px 20px ;

   padding-bottom : 35px ;

   -webkit-box-shadow: rgba( 0 , 0 , 0 , 0.1 ) 0px 1px 2px 0px ;

   -moz-box-shadow: rgba( 0 , 0 , 0 , 0.1 ) 0px 1px 2px 0px ;

   box-shadow: rgba( 0 , 0 , 0 , 0.1 ) 0px 1px 2px 0px ;

}

 

.flatbtn {

   -webkit-box-sizing: border-box;

   -moz-box-sizing: border-box;

   box-sizing: border-box;

   display : inline- block ;

   outline : 0 ;

   border : 0 ;

   color : #f9f8ed ;

   text-decoration : none ;

   background-color : #b6a742 ;

   border-color : rgba( 0 , 0 , 0 , 0.1 ) rgba( 0 , 0 , 0 , 0.1 ) rgba( 0 , 0 , 0 , 0.25 );

   font-size : 1.2em ;

   font-weight : bold ;

   padding : 12px 22px 12px 22px ;

   line-height : normal ;

   text-align : center ;

   vertical-align : middle ;

   cursor : pointer ;

   text-transform : uppercase ;

   text-shadow : 0 1px 0 rgba( 0 , 0 , 0 , 0.3 );

   -webkit-border-radius: 3px ;

   -moz-border-radius: 3px ;

   border-radius: 3px ;

   -webkit-box-shadow: 0 1px 0 rgba( 15 , 15 , 15 , 0.3 );

   -moz-box-shadow: 0 1px 0 rgba( 15 , 15 , 15 , 0.3 );

   box-shadow: 0 1px 0 rgba( 15 , 15 , 15 , 0.3 );

}

.flatbtn:hover {

   color : #fff ;

   background-color : #c4b237 ;

}

.flatbtn:active {

   -webkit-box-shadow: inset 0 1px 5px rgba( 0 , 0 , 0 , 0.1 );

   -moz-box-shadow: inset 0 1px 5px rgba( 0 , 0 , 0 , 0.1 );

   box-shadow: inset 0 1px 5px rgba( 0 , 0 , 0 , 0.1 );

}

让效果更醒目的网页布局非常简单。任何熟悉前端网页开发的人都应该能够将其移植到自己的样式表中。我在这个扁平按钮中使用了特殊的样好似,并生成新的警告窗口。同样的,我更新了每个 .notify类元素的内部样式。

知了追踪
知了追踪

AI智能信息助手,智能追踪你的兴趣资讯

下载

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

/** notifications **/

.notify {

   display : block ;

   background : #fff ;

   padding : 12px 18px ;

   max-width : 400px ;

   margin : 0 auto ;

   cursor : pointer ;

   -webkit-border-radius: 3px ;

   -moz-border-radius: 3px ;

   border-radius: 3px ;

   margin-bottom : 20px ;

   box-shadow: rgba( 0 , 0 , 0 , 0.3 ) 0px 1px 2px 0px ;

}

 

.notify h 1 { margin-bottom : 6px ; }

 

.successbox h 1 { color : #678361 ; }

.errorbox h 1 { color : #6f423b ; }

 

.successbox h 1: before, .successbox h 1: after { background : #cad8a9 ; }

.errorbox h 1: before, .errorbox h 1: after { background : #d6b8b7 ; }

 

.notify .alerticon {

   display : block ;

   text-align : center ;

   margin-bottom : 10px ;

}

  我设置了一些在我的布局示例中运行良好的默认假设。所有消息通知窗口都被限定为 400px 宽,并通过使用 margin: 0 auto 在页面中居中。同时,我更新了鼠标图标为手指指针,这样用户就知道该元素可点击。我们需要创建一个 jQuery 事件监听器以用于获取用户对取消通知窗口的点击,并运行相应函数。

 jQuery动画

  我的JS代码实际执行了两个不同的操作。我们首先检测包含在#content DIV中的任何现有.notify元素。一旦用户点击这个.notify框元素,我们需要淡出这个通知盒到透明度为0%(display: none),然后从DOM中移除()此元素。

1

2

3

4

5

6

$( function (){

   $( '#content' ).on( 'click' , '.notify' , function (){

     $( this ).fadeOut(350, function (){

       $( this ).remove(); // after fadeout remove from DOM

     });

   });

  如果你熟悉jQuery,可能首先对这个选择器感到有些奇怪。我们并不是选择#content这个div,而是在寻找这个内容容器里面的任何.notify通知框。如果你查看一下jQuery的 .on() 方法文档,你会注意到我们可以传递另外一个选择器来作为第二个参数,它将在页面被渲染后更新。 这是一个Stack Overflow里出色的帖子,它非常详细地解释了这个概念。

  我的脚本的另一部分将会检查用户何时点击了页面下方的两个按钮之一。这两个按钮的ID是#newSuccessBox 和 #newAlertBox。无论用户何时点击,我们会停止加载HREF值的默认行为,代之以创建一个新的HTML块并前置在页面上。

1

2

3

4

5

6

7

8

9

10

   // handle the additional windows

   $( '#newSuccessBox' ).on( 'click' , function (e){

     e.preventDefault();

     var samplehtml = $( '

Success!

checkmark

You did not set the proper return e-mail address. Please fill out the fields and then submit the form.

' ).prependTo( '#content' );

   });

   $( '#newAlertBox' ).on( 'click' , function (e){

     e.preventDefault();

     var samplehtml = $( '

Warning!

error

You did not set the proper return e-mail address. Please fill out the fields and then submit the form.

' ).prependTo( '#content' );

   });

});

  每个函数都有它自己的变量,来包含一个我用于警告框的HTML的复制/粘贴镜像。这个HTML内容存储在一个字符串中用jQuery选择器转化为一个对象。我可以使用prependTo()方法选择这个内容DIV使新的警告框出现在页面的最上方。所有新的盒子也可以同样的方式被解除,因为它们的HTML代码和用静态HTML硬编码的盒子完全相同。

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

463

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

135

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

64

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

20

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

26

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

29

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

14

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

524

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

53

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号