zoukankan      html  css  js  c++  java
  • CSS3--动态实现ToolTip效果(实例)

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

    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="width=device-width" 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                     <!-- 应用SVG做背景图片 -->
    17                     <span class="tooltip-content">
    18                         <!-- 应用文字图片,fa:Icon公共类; fa-camera:相机Icon; fa-fw:使i标签display:block; fa-spin:Icon动画效果; fa-border:Icon具有圆角边框; -->
    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 <!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
     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>
  • 相关阅读:
    我知道开发已经接近于成功了
    反射获取运行时属性值的替代方法
    Fix Visual Studio 2013 Razor CSHTML Intellisense in Class Library or Console Application
    领域模型
    UI设计心得
    ADO.NET EF 中的实体修改方法
    .net与com组件
    win8设置开机启动项
    编程架构
    禁止UITextField 使用粘贴复制功能
  • 原文地址:https://www.cnblogs.com/yizihan/p/4322046.html
Copyright © 2011-2022 走看看