Ở bài viết trước tôi đã giới thiệu cho các bạn 1 hộp thông báo ẩn hiện responsive đơn giản với js và css. Trong bài viết này, chúng ta sẽ cho nó màu mè thêm 1 chút bằng việc thiết kế theo phong cách Material.
Trong thủ thuật này tôi sử dụng font awesome 5
Tích hợp các thư viện cần thiết nếu blog bạn chưa có, chèn trước thẻ đóng </head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href='https://use.fontawesome.com/releases/v5.0.13/css/all.css' rel='stylesheet' type='text/css'/>
Viết CSS
.material-noti-content,
.material-noti-overlay {
visibility: hidden;
opacity: 0
}
.material-noti-wrap {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: -10
}
.material-noti-content {
background: #fff;
padding: 25px;
left: 50%;
top: 40%;
position: relative;
-webkit-transform: translateX(-50%) translateY(-50%) !important;
transform: translateX(-50%) translateY(-50%) !important;
transition: all .3s ease-in-out;
max-width: 60%;
z-index: 1000;
border-radius: 4px;
box-shadow: 0 9px 46px 8px rgba(0, 0, 0, .14), 0 11px 15px -7px rgba(0, 0, 0, .12), 0 24px 38px 3px rgba(0, 0, 0, .2)
}
.material-noti-btn {
z-index: 1000;
text-decoration: none;
font-size: 18px;
color: #111
}
.material-noti-overlay {
position: fixed;
top: 0;
background: rgba(0, 0, 0, .59);
left: 0;
right: 0;
bottom: 0;
margin: 0;
z-index: 999;
transition: all .4s ease-in-out
}
.material-noti-title {
margin-bottom: 15px;
font-weight: 700;
font-size: 20px
}
.material-noti-content.shows,
.material-noti-overlay.shows {
visibility: visible;
opacity: 1
}
.material-noti-content.shows {
top: 50%
}
.material-noti-wrap.shows {
z-index: 1000
}
.material-noti-text {
font-size: 16px;
line-height: 1.5
}
.close-noti {
font-size: 20px;
color: #111;
position: absolute;
top: 10px;
right: 10px;
margin: 10px 8px;
padding:7px 10px
}
.done-wrap {
margin-top: 20px;
text-align: right
}
.done {
font-size: 14px;
color: #fff;
background: #3949ab;
padding: 9px 13px;
font-weight: 700;
border-radius: 3px;
text-transform: uppercase;
text-decoration: none
}
.done:hover,.close-noti:hover {
box-shadow: 0 2px 15px 0 rgba(0, 0, 0, .16), 0 2px 10px 0 rgba(0, 0, 0, .12);
cursor: pointer;
transition: all .4s ease-in-out
}
Đặt code HTML sau thẻ mở <body>
<div class='material-noti-wrap'>
<div class='material-noti-content'>
<div class='material-noti-title'>Notification</div>
<div class='material-noti-text'>
<!-- Viết thông báo vào đây -->
</div>
<div class='done-wrap'>
<a class='close-noti' href='javascript:void(0)'><i class='fas fa-times'></i></a></div>
<div class='done-wrap'>
<a class='done' href='javascript:void(0)'>Done</a></div>
</div>
</div>
<div class='material-noti-overlay'></div>
Đặt code js trước thẻ đóng </body>
<script type='text/javascript'>//<![CDATA[
$(document).ready(function() {
$(".close-noti,.done").click(function() {
$(".material-noti-wrap,.material-noti-content,.material-noti-overlay").removeClass("shows")
})
}), $(document).ready(function() {
$(".material-noti-btn").click(function() {
$(".material-noti-wrap,.material-noti-content,.material-noti-overlay").toggleClass("shows")
})
});
//]]></script>
Tạo button mở thông báo, đặt ở bất kì vị trí nào bạn mong muốn
<a class='material-noti-btn' href='javascript:void(0)' title='Notification'><i class='far fa-bell'></i></a>
Chúc các bạn thành công :)
Nguồn : Hung1001.blog
Test code CSS
Trả lờiXóa[pre css]
@charset "UTF-8";
/*!
* animate.css -http://daneden.me/animate
* Version - 3.5.1
* Licensed under the MIT license - http://opensource.org/licenses/MIT
*
* Copyright (c) 2016 Daniel Eden
*/
.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}.animated.bounceIn,.animated.bounceOut,.animated.flipOutX,.animated.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}40%,43%,70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}70%{-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}40%,43%,70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}70%{-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);
[/pre]
hay lắm a bờm
Trả lờiXóaHaha. Dạo này đi đâu mà bạc vô âm tính thế e?
XóaCái chỗ comment anh làm sao hay vậy , chèn dc youtube và code pro vậy.
Trả lờiXóanhưng mà cái chỗ ảnh đó ảnh , k bấm vào xem nhìn rõ được , mờ mờ ảo ảo anh ạ
Trả lờiXóaCái đó thì a cũng ko rỏ e ạ, e vào hung1001.blog hỏi xem?
Trả lờiXóa