CSS3之ToolTip------飛入動畫提示框
阿新 • • 發佈:2019-01-27
1.效果預覽
2.實現思路
(1)首先整個效果由兩部分組成,即兩個div,底部為容器,藍色部分為其子元素
(2)通過position:absolute將tooltip定位於灰色區域的頂部
(3)使用transform: translateY()和transition屬性實現平移的過渡動畫效果
(4)初始時,將tooltip的opacity屬性設定為0,即全透明
3.程式碼
(1)wrapper樣式
.wrapper{
cursor: help;
position: relative;
left: 200px ;
top: 200px;
background-color: #ececec;
color: #000;
text-align: center;
width: 200px;
padding: 15px 40px;
font-weight: bold;
}
(2)tooltip樣式
.wrapper .tooltip{
display: block;
/*這行必須寫,因為我們只是將tooltip設定為全透明,tooltip並不是真正的消失,所以當滑鼠移至tooltip區域時它會自己彈出*/
pointer-events: none;
cursor: help;
/*設定為全透明*/
opacity: 0;
background-color: #1496BB;
color: #fff;
position: absolute;
left: -20px;
bottom: 100%;
width: 100%;
padding: 20px;
margin-bottom : 15px;
/*設定Y軸上的位移,使其產生飛入效果*/
transform: translateY(10px);
-webkit-transform: translateY(10px);
-moz-transform: translateY(10px);
-ms-transform: translateY(10px);
-o-transform: translateY(10px);
/*設定過渡動畫,過渡時間為0.25秒,過渡形式為加速過渡*/
transition: all .25s ease-in;
-webkit-transition: all .25s ease-in;
-moz-transition: all .25s ease-in;
-ms-transition: all .25s ease-in;
-o-transition: all .25s ease-in;
/*為tooltip新增邊框陰影*/
box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
-webkit-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
-moz-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
-ms-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
-o-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.28);
}
(3)tooltip底部三角形箭頭
.wrapper .tooltip:after{
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-top:10px solid #1496BB;
position: absolute;
left: 50%;
bottom: -10px;
width: 0;
height: 0;
content: "";
margin-left: -10px;
}
(4)為tooltip新增:before,防止滑鼠向上移動到tooltip時,tooltip消失
.wrapper .tooltip:before{
width: 100%;
height: 20px;
position: absolute;
left: 0;
bottom: -20px;
content: "";
}
(5)為wrapper新增hover響應
.wrapper:hover .tooltip{
opacity: 1;
pointer-events: auto;
transform: translateY(0);
-webkit-transform: translateY(0);
-moz-transform: translateY(0);
-ms-transform: translateY(0);
-o-transform: translateY(0);
}
(6)html程式碼
<body>
<div class="wrapper">
show a tooltip
<div class="tooltip">
this a tooltip
</div>
</div>
</body>
最終效果