这是一款基于animate.css的效果非常酷的CSS消息提示动画效果。这66种CSS消息提示动画效果按出现位置分为4种类型:上部、中部、中下和右下。每个部位的消息提示效果都是不一样的。
注意:这个CSS消息提示动画效果需要在支持CSS3的浏览器中才能正常工作。
HTML结构
该CSS消息提示动画效果的HTML结构非常简单。使用一个id为#notifications
的div
作为整个包裹容器。
< div id = "notifications" ></ div > |
消息提示框的代码默认情况下是不存在与DOM中的,它们使用js来动态插入。例如当选择"Top"选项时,在点击触发按钮后,Top消息提示框将使用js插入到DOM中:
< div id = "notifications-top-center" > < span class = "iconb" data-icon = "" ></ span > Oups something went wrong ! < div id = "notifications-top-center-close" class = "close" > < span class = "iconb" data-icon = "" ></ span > </ div > </ div > |
对于中部、中下和右下几个部位的消息提示框也是相同的操作。它们默认是不存在与DOM中的,只有在触发了相应的事件时,才使用jQuery来将HTML代码插入到DOM中的相应位置上。
< div id = "notifications-full" > < div id = "notifications-full-close" class = "close" >< span class = "iconb" data-icon = "" ></ span ></ div > < div id = "notifications-full-icon" >< span class = "iconb" data-icon = "" ></ span ></ div > < div id = "notifications-full-text" >...</ div > </ div > < div id = "notifications-bottom-center-tab" > < div id = "notifications-bottom-center-tab-close" class = "close" >< span class = "iconb" data-icon = "" ></ span ></ div > < div id = "notifications-bottom-center-tab-avatar" >< img src = "_assets/avatar.png" width = "100" height = "100" /></ div > < div id = "notifications-bottom-center-tab-right" > < div id = "notifications-bottom-center-tab-right-title" >< span >delmarks</ span > sent you a message</ div > < div id = "notifications-bottom-center-tab-right-text" >...</ div > </ div > </ div > < div id = "notifications-bottom-right-tab" > < div id = "notifications-bottom-right-tab-close" class = "close" >< span class = "iconb" data-icon = "" ></ span ></ div > < div id = "notifications-bottom-right-tab-avatar" >< img src = "_assets/avatar.png" width = "70" height = "70" /></ div > < div id = "notifications-bottom-right-tab-right" > < div id = "notifications-bottom-right-tab-right-title" >< span >delmarks</ span > sent you a message</ div > < div id = "notifications-bottom-right-tab-right-text" >...</ div > </ div > </ div > |
CSS样式
该CSS消息提示动画效果有两个主要的CSS文件。一个是animate.css文件,用于产生各种动画效果。另一个是animated-notifications.css
文件。在实际使用时,你需要在animate.css文件中查找你需要的class动画名称。下面是主要的消息提示框定位CSS代码:
#notifications-bottom- right { position : absolute ; width : 360px ; right : 20px ; bottom : 20px ; } #notifications-bottom-right-tab{ background-color : rgba( 255 , 255 , 255 , 1 ); float : left ; height : 100px ; width : 360px ; margin-top : 20px ; position : relative ; -moz- box-shadow : 0px 0px 10px rgba( 0 , 0 , 0 , 0.1 ); -webkit- box-shadow : 0px 0px 10px rgba( 0 , 0 , 0 , 0.1 ); box-shadow : 0px 0px 10px rgba( 0 , 0 , 0 , 0.1 ); } #notifications-bottom-right-tab-close{ height : 20px ; width : 20px ; position : absolute ; top : 40px ; right : 20px ; color : #cccccc ; font-size : 18px ; line-height : 20px ; text-align : center ; -webkit- transition : all 0.5 s; -moz- transition : all 0.5 s; -o- transition : all 0.5 s; transition : all 0.5 s; } #notifications-bottom-right-tab-close:hover { color : rgba( 102 , 102 , 102 , 1 ); cursor : pointer ; } #notifications-bottom-right-tab-avatar{ float : left ; height : 100px ; width : 70px ; margin-left : 20px ; } #notifications-bottom-right-tab-avatar img{ -moz- border-radius : 50% 50% 50% 50% ; -webkit- border-radius : 50% 50% 50% 50% ; border-radius : 50% 50% 50% 50% ; -khtml- border-radius : 50% 50% 50% 50% ; float : left ; margin-top : 15px ; } #notifications-bottom-right-tab- right { float : left ; width : 210px ; margin-left : 20px ; margin-top : 20px ; } #notifications-bottom-right-tab-right-title{ float : left ; width : 100% ; color : #252525 ; font-weight : 600 ; } #notifications-bottom-right-tab-right-title span{ color : #e91e63 ; } #notifications-bottom-right-tab-right-text{ float : left ; width : 100% ; font-size : 14px ; color : #4c4c4c ; font-style : italic ; margin-top : 5px ; } #notifications-bottom- center { position : absolute ; width : 360px ; bottom : 90px ; left : 50% ; margin-left : -180px ; } #notifications-bottom-center-tab{ background-color : rgba( 255 , 255 , 255 , 1 ); float : left ; height : 100px ; width : 360px ; margin-top : 20px ; position : relative ; -moz- box-shadow : 0px 0px 10px rgba( 0 , 0 , 0 , 0.1 ); -webkit- box-shadow : 0px 0px 10px rgba( 0 , 0 , 0 , 0.1 ); box-shadow : 0px 0px 10px rgba( 0 , 0 , 0 , 0.1 ); } #notifications-bottom-center-tab-close{ height : 20px ; width : 20px ; position : absolute ; top : 40px ; right : 20px ; color : #cccccc ; font-size : 18px ; line-height : 20px ; text-align : center ; -webkit- transition : all 0.5 s; -moz- transition : all 0.5 s; -o- transition : all 0.5 s; transition : all 0.5 s; } #notifications-bottom-center-tab-close:hover { color : rgba( 102 , 102 , 102 , 1 ); cursor : pointer ; } #notifications-bottom-center-tab-avatar{ float : left ; height : 100px ; width : 100px ; } #notifications-bottom-center-tab-avatar img{ float : left ; } #notifications-bottom-center-tab- right { float : left ; width : 210px ; margin-left : 20px ; margin-top : 20px ; } #notifications-bottom-center-tab-right-title{ float : left ; width : 100% ; color : #252525 ; font-weight : 600 ; } #notifications-bottom-center-tab-right-title span{ color : #e91e63 ; } #notifications-bottom-center-tab-right-text{ float : left ; width : 100% ; font-size : 14px ; color : #4c4c4c ; font-style : italic ; margin-top : 5px ; } #notifications-top- center { position : fixed ; left : 0px ; top : 0px ; width : 100% ; background-color : rgba( 255 , 255 , 255 , 1 ); height : 50px ; text-align : center ; line-height : 50px ; color : #404040 ; font-size : 18px ; font-weight : 600 ; } #notifications-top-center-close { background-color : rgba( 233 , 30 , 99 , 0.6 ); float : right ; height : 50px ; width : 50px ; font-size : 30px ; color : rgba( 255 , 255 , 255 , 1 ); font-weight : 400 ; -webkit- transition : all 0.5 s; -moz- transition : all 0.5 s; -o- transition : all 0.5 s; transition : all 0.5 s; } #notifications-top-center-close:hover { cursor : pointer ; background-color : rgba( 233 , 30 , 99 , 1 ); } #notifications-full{ -moz- box-shadow : 0px 0px 50px rgba( 0 , 0 , 0 , 0.1 ); -webkit- box-shadow : 0px 0px 50px rgba( 0 , 0 , 0 , 0.1 ); box-shadow : 0px 0px 50px rgba( 0 , 0 , 0 , 0.1 ); height : 300px ; width : 530px ; background-color : rgba( 255 , 255 , 255 , 1 ); position : fixed ; margin-top : 10% ; margin-left : -265px ; z-index : 2 ; left : 50% ; top : 10% ; } #notifications-full-close{ height : 20px ; width : 20px ; position : absolute ; top : 10px ; right : 10px ; color : #cccccc ; font-size : 20px ; line-height : 20px ; text-align : center ; -webkit- transition : all 0.5 s; -moz- transition : all 0.5 s; -o- transition : all 0.5 s; transition : all 0.5 s; } #notifications-full-close:hover { color : rgba( 102 , 102 , 102 , 1 ); cursor : pointer ; } #notifications-full- icon { float : left ; width : 100% ; font-size : 65px ; text-align : center ; height : 65px ; margin-top : 35px ; color : #404040 ; } #notifications-full-text{ width : 430px ; float : left ; margin-left : 50px ; text-align : center ; margin-top : 40px ; font-size : 16px ; line-height : 24px ; color : #404040 ; } |
JAVASCRIPT
该CSS消息提示动画效果使用js代码使#notifications
容器具有响应式效果,具体代码如下:
function resize(){ $( '#notifications' ).height(window.innerHeight - 50); } $( window ).resize( function () {resize();}); resize(); |
每个消息提示框中都有一个关闭按钮,插件中使用一个函数来实现关闭功能:
function refresh_close(){ $( '.close' ).click( function (){$( this ).parent().fadeOut(200);}); } refresh_close(); |
每个部位的消息提示框的HTML代码都是在JS文件中动态添加的。例如上部的HTML结构代码如下:
var top = '<div id="notifications-top-center"><span class="iconb" data-icon=""></span> Oups something went wrong !<div id="notifications-top-center-close" class="close"><span class="iconb" data-icon=""></span></div></div>' ; |
最后是在选择了相应的动画效果后,点击提交按钮时将各种效果的消息提示框插入到DOM中。当#notifications-window-row-button
按钮被点击时,插件会检测当前选择的位置和动画效果,然后移除旧的内容,在将新的内容添加到DOM中。在添加了新的内容之后,再使用refresh_close()
函数来使消息提示框的关闭按钮可用。上部和中部的消息提示框是插入在#notifications
中,而中下和右下部位的消息提示框是分别插入到#notifications-bottom-center
和#notifications-bottom-right
中,注意这点区别。
$( '#notifications-window-row-button' ).click( function (){ if ($( '#position' ).val()== 'top' ){ $( "#notifications-top-center" ).remove(); $( "#notifications" ).append(top); $( "#notifications-top-center" ).addClass( 'animated ' + $( '#effects' ).val()); refresh_close(); } if ($( '#position' ).val()== 'center' ){ $( "#notifications-full" ).remove(); $( "#notifications" ).append(center); $( "#notifications-full" ).addClass( 'animated ' + $( '#effects' ).val()); refresh_close(); } if ($( '#position' ).val()== 'bottom' ){ $( "#notifications-bottom-center" ).html(); $( "#notifications-bottom-center" ).html(bottom); $( "#notifications-bottom-center-tab" ).addClass( 'animated ' + $( '#effects' ).val()); refresh_close(); } if ($( '#position' ).val()== 'botom_right' ){ $( "#notifications-bottom-right" ).html(); $( "#notifications-bottom-right" ).html(bottom_center); $( "#notifications-bottom-right-tab" ).addClass( 'animated ' + $( '#effects' ).val()); refresh_close(); } }); }); |