热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSS3--动态实现ToolTip效果(实例)

效果图如下↓↓↓↓↓(知识点见代码注释)HTML1<!DOCTYPEhtml>2<html>3<head>4

效果图如下↓↓↓↓↓  (知识点见代码注释)

HTML

 1 DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>CSS3实现鼠标悬停显示消息提示框title>
6 <meta http-equiv="X-UA-compatible" contnet="IE=edge">
7 <meta name="viewport" content=" initial-scale="1">
8 <link rel="stylesheet" href="css/style.css">
9 <link rel="stylesheet" href="css/font-awesome.min.css">
10 head>
11 <body>
12 <div class="nav">
13 <ul>
14 <li>
15 <a href="#" class="tooltip tooltip-effect-1">Home
16
17 <span class="tooltip-content">
18
19 <i class="fa fa-camera fa-fw">i>
20 span>
21 a>
22 li>
23 <li>
24 <a href="#" class="tooltip tooltip-effect-2">About me
25 <span class="tooltip-content"><i class="fa fa-heartbeat fa-fw">i>span>
26 a>
27 li>
28 <li>
29 <a href="#" class="tooltip tooltip-effect-3">Photography
30 <span class="tooltip-content"><i class="fa fa-diamond fa-fw">i>span>
31 a>
32 li>
33 <li>
34 <a href="#" class="tooltip tooltip-effect-4">Work
35 <span class="tooltip-content"><i class="fa fa-cogs fa-fw">i>span>
36 a>
37 li>
38 <li>
39 <a href="#" class="tooltip tooltip-effect-5">Contact
40 <span class="tooltip-content"><i class="fa fa-comments fa-fw">i>span>
41 a>
42 li>
43 ul>
44 div>
45 body>
46 html>

CSS

  1 html {
2 width:100%;
3 height:100%;
4 /*屏幕旋转时文字大小不发生改变;*/
5 -webkit-text-size-adjust:none;
6 }
7 body {
8 margin: 0;
9 padding: 0;
10 width:100%;
11 height:100%;
12 background: #47c9af;
13 color:#74777b;
14 font-weight: 300;
15 font-size: 1.5em;
16 font-family:"Raleway","Arial";
17 }
18 ul {
19 list-style: none;
20 padding: 0;
21 margin: 0;
22 }
23 a:link,a:visited,a:focus {
24 text-decoration: none;
25 outline: none;
26 }
27
28 *,*:after,*:before {
29 /*padding(填充)和border(边框)都不要影响盒子原先设定的大小;*/
30 -webkit-box-sizing:border-box;
31 }
32 *:after,*:before {
33 display: block;
34 content:"";
35 }
36 /*清除浮动*/
37 *:after {
38 clear:both;
39 }
40
41 /*Navgaitor*/
42 .nav {
43 width:800px;
44 height:300px;
45 margin:200px auto;
46 }
47 .nav li {
48 display: inline-block;
49 margin:0 1em;
50 }
51 .tooltip {
52 display: inline-block;
53 font-weight: 700;
54 color:rgba(0,0,0,0.3);
55 padding:0.15em 0.25em 0 0;
56 position: relative;
57 z-index: 999;
58 transition: 0.4s;
59 }
60 .tooltip:hover {
61 color:rgba(255,255,255,1);
62 }
63 .tooltip-content {
64 position: absolute;
65 z-index: 9999;
66 width:80px;
67 height:80px;
68 /*span相对于父元素a垂直居中:
69 left:50%;span的左侧距离a的左侧是a宽度一半的距离;
70 margin-left:-40px;左移相对于自身宽度的一半;
71 bottom:100%;span的底部距离a的底部是a高度一倍的距离,刚好在a的正上方;
72 */
73 left:50%;
74 margin-left: -40px;
75 bottom:100%;
76 margin-bottom: 20px;
77 text-align: center;
78 padding-top: 22px;
79 /*应用svg文件做背景图片;*/
80 background:url(../img/tooltip1.svg) no-repeat center center;
81 opacity: 0;
82 transition: 0.4s;
83 }
84 .tooltip-content i {
85 font-style: normal;
86 font-size: 30px;
87 color:#47c9af;
88 opacity: 0;
89 transition: 0.3s;
90 }
91 .tooltip-effect-1 .tooltip-content {
92 /*
93 translate3d(0,10px,0):元素沿Y轴向下移动10px;
94 rotate3d(1,1,1,45deg):元素分别在X轴,Y轴和Z轴旋转45°;
95 transform-origin:50% 100%;元素以本身计算出的位置为中心点;
96 */
97 transform: translate3d(0,10px,0) rotate3d(1,1,1,45deg);
98 transform-origin :50% 100%;
99 }
100 .tooltip-effect-1 .tooltip-content i {
101 /*
102 元素在X轴和Y轴上缩放0倍(最小化),在Z轴缩放1倍(不缩放);
103 */
104 transform:scale3d(0,0,1);
105 }
106 .tooltip-effect-2 .tooltip-content {
107 transform: translate3d(0,20px,0);
108 }
109 .tooltip-effect-2 .tooltip-content i {
110 transform:translate3d(0,15px,0);
111 }
112 .tooltip-effect-3 .tooltip-content {
113 transform:translate3d(0,10px,0) rotate3d(0,1,0,90deg);
114 transform-origin:50% 100%;
115 }
116 .tooltip-effect-3 .tooltip-content i {
117 transform:scale3d(0,0,1);
118 }
119 .tooltip-effect-4 .tooltip-content {
120 transform:translate3d(0,-20px,0);
121 }
122 .tooltip-effect-4 .tooltip-content i {
123 transform:translate3d(0,20px,0);
124 }
125 .tooltip-effect-5 .tooltip-content {
126 transform:scale3d(0,0,1);
127 transform-origin:50% 100%;
128 }
129 .tooltip-effect-5 .tooltip-content i {
130 transform:translate3d(0,20px,0);
131 }
132 /*划过效果,所有效果归位0;*/
133 .tooltip:hover .tooltip-content,
134 .tooltip:hover .tooltip-content i {
135 opacity:1;
136 transform:translate3d(0,0,0) rotate3d(1,1,1,0) scale3d(1,1,1);
137 }

注:Icon字体引用自 Font Awesome Icons 下载链接 课程链接

 

svg文件(复制以下代码到编辑器,然后保存文件后缀名为.svg)

 1 xml version="1.0" encoding="utf-8"?>
2
3 DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4 <svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
5 viewBox="0 0 80 90" enable-background="new 0 0 80 90" xml:space="preserve">
6 <g>
7 <path fill="#FFffff" d="M39.8,89.5c0,0.2,0.4,0.2,0.4,0c1.2-6.7,7.4-11.8,14.8-11.8H25C32.4,77.7,38.6,82.8,39.8,89.5z"/>
8 <circle fill="#FFffff" cx="40" cy="40.3" r="40"/>
9 g>
10 svg>

 


推荐阅读
  • ECharts图表绘制函数集
    本文档提供了使用ECharts库创建柱状图、饼图和双折线图的JavaScript函数。每个函数都详细列出了参数说明,并通过示例展示了如何调用这些函数以生成不同类型的图表。 ... [详细]
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • 本文档详细介绍了如何在 Python 中进行文件和目录的基本操作,包括文件的打开、关闭、读取、写入、复制以及文件和目录的创建、删除和重命名等。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • 作为一名CSS初学者,我在博客园中尝试通过CSS美化页面,特别是为超链接添加图标,以提升阅读体验。本文将分享如何使用CSS和字体图标库来实现这一功能。 ... [详细]
  • Qt应用开发:创建基本窗口
    本文介绍如何使用Qt框架创建基础窗口的两种方法。第一种方法直接在main函数中创建并显示窗口;第二种方法通过定义一个继承自QWidget的类来实现更复杂的功能。 ... [详细]
  • 拖拉切割直线 ... [详细]
  • Web网络基础
    目录儿1使用HTTP协议访问Web2HTTP的诞生2.1因特网的起源2.2互联网、因特网与万维网2.3万维网与HTTP3网络基础TCPIP3.1TCPIP协议族3.2TCPIP的分 ... [详细]
  • 本文探讨了在使用 STL 容器(如 map、vector 和 list)插入自定义类对象或指针时,构造函数和析构函数的调用情况,以及可能引发的问题。 ... [详细]
  • 本文详细探讨了在 Xamarin.Forms 中使用 AbsoluteLayout 进行精确布局的方法,以及如何利用 Device.StartTimer 实现定时任务。通过具体的代码示例,帮助开发者更好地理解和应用这些功能。 ... [详细]
  • Activity跳转动画 无缝衔接
    Activity跳转动画 无缝衔接 ... [详细]
  • MVC框架下使用DataGrid实现时间筛选与枚举填充
    本文介绍如何在ASP.NET MVC项目中利用DataGrid组件增强搜索功能,具体包括使用jQuery UI的DatePicker插件添加时间筛选条件,并通过枚举数据填充下拉列表。 ... [详细]
  • 万事起于配置开发环境
    万事起于配置开发环境 ... [详细]
  • 本文旨在探讨如何撰写高效且全面的工作总结,特别是针对数据库管理、Java编程及Spring框架的学习与应用。文章通过实例分析,帮助读者掌握工作总结的写作技巧,提高个人工作汇报的质量。 ... [详细]
  • HTTP中的Chunked编码与Content-Length的区别及应用场景
    本文探讨了在HTTP协议中,当使用Transfer-Encoding为chunked时为何无需设置Content-Length,以及这种编码方式的具体实现和优势。 ... [详细]
author-avatar
-VIVEN-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有