Bài viết hướng dẫn làm thanh tiến trình đọc bài viết đơn giản với jQuery mà không cần dùng thư viện dựng sẵn nào.
HTML
Các bạn thêm một thẻ để làm thanh tiến trình.
<div class="reading-bar"></div>
CSS
CSS đơn giản như sau.
.reading-bar {
height: 5px;
background-color: #1463f3;
width: 0;
z-index: 1000;
position: fixed;
top: 0;
left: 0;
}
jQuery
Phần xử lí cũng khá đơn giản.
jQuery(document).ready(function($) {
$(window).on('scroll', function() {
var scrollWin = $(window).scrollTop();
var articleHeight = $('.single-content').outerHeight(true);
var windowHeight = $(window).height();
if (scrollWin >= ($('.single-content').offset().top - windowHeight)) {
if (scrollWin <= ($('.single-content').offset().top + articleHeight)) {
$('.reading-bar').css('width', ((scrollWin - $('.single-content').offset().top) / articleHeight) * 100 + '%');
} else {
$('.reading-bar').css('width', '0');
}
} else {
$('.reading-bar').css('width', '0');
}
});
});
Với .single-content
là class của thẻ mục bài viết của bạn.
Chúc các bạn thành công!
Không có bình luận.