Tạo thanh menu cố định (Sticky Menu) khi cuộn trang cho blogspot là một thủ thuật mà các blogger không thể nào bỏ qua. Thông thường với một số mẫu template thanh menu luôn cố định (top:0) thì khách truy cập sẽ dễ dàng điều hướng trang qua thanh menu. Tuy nhiên với những template khác thì khi cuộn chuột vượt quá vị trí thanh menu mặc nhiên thanh menu sẽ bị ẩn đi, khi đó người dùng lại mất công "leo lên top" để thấy lại thanh menu và đương nhiên là không ổn tí nào
Thủ thuật này giúp bạn giữ lại thanh menu khi người dùng cuộn trang vượt qua nó vừa tạo thẩm mỹ vừa tạo tính chuyên nghiệp.
Trước tiên đăng nhập vào trang quản trị blog của bạn, chuyển chế độ chỉnh sửa HTML và dán đoạn css sau vào trước thẻ ]]></b:skin>
sticknav{height:30px;width:100%;margin-right:0;margin-left:0;left:0;right:0;position:relative;z-index:9999}.fixed{position:fixed}
Đến đây cần đến kĩ năng của bạn 1 chút. bạn cần tìm đoạn HTML chứa toàn bộ thanh menu muốn cố định và đặt nó trong cặp thẻ sticknav. Form sẽ như sau
<sticknav> Đoạn code chứa thanh menu của bạn </sticknav>Chèn thư viện JQuery nếu như template của bạn chưa có
<script src='//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js' type='text/javascript'/>
Chèn đoạn js sau trước thẻ đóng </body>để hoàn tất
<script type="text/javascript"> //<![CDATA[ $(document).ready(function() { var aboveHeight = $('header').outerHeight(); $(window).scroll(function(){ if ($(window).scrollTop() > aboveHeight){ $('sticknav').addClass('fixed').css('top','0').next().css('padding-top','60px'); } else { $('sticknav').removeClass('fixed').next().css('padding-top','0'); } }); }); //]]></script>
Trong đó dòng var aboveHeight = $('header').outerHeight(); quy định khi cuộn trang vượt quá thanh menu thì menu sẽ được ghim lại, theo như kinh nghiệm sửa một vài template tôi thấy quá trình ghim lại không được đẹp cho lắm, vì vậy bạn có thể thay thế dòng đó thành var aboveHeight = XXX; trong đó XXX là khoảng cách (tính bằng pixels) để bắt đầu sticky. Bạn có thể thay đổi sao cho quá trình sticky menu diễn ra mượt mà không bị giật cục
Chúc các bạn thành công !
1. Không vi phạm luật pháp nước CHXHCN Việt Nam
2. Không vi phạm thuần phong mỹ tục Việt Nam
3. Không bàn luận vấn đề liên quan đến tôn giáo, chính trị
4. Không đả kích, chửi bới hay đưa ra những lời nói không phù hợp với mục tiêu của website
5. Không bình luận với mục đích quảng cáo, trao đổi, mua bán
6. Khuyến khích sử dụng Tiếng Việt có dấu, hạn chế sử dụng tiếng lóng, viết tắt
7. Khi cần sự trợ giúp, vui lòng miêu tả chi tiết lỗi và để lại link đính kèm, tránh nói chung chung gây mất thời gian cho đôi bên
Và thấy rằng nếu XXX= 000 là mượt nhất. <3
Giống như ở đây: https://gridwp.blogspot.com/2010/07/the-most-incredible-places-to-visit-in.html
Nó dùng ajax nhưng mình mù tịt nên không thể lọc code ra để áp dụng vào blog của mình!
Mình cũng đã tham khảo một vài plugin jQuery về Sidebar Scroll nhưng khi áp dụng vào blog thì nó chạy lung tung, chẳng biết tại sao!
Cảm ơn bác!
Mình đã thử chèn theiaStickySidebar vào trong blog theo cấu trúc sau:
[pre]
<b:section class='main' id='main' name='Page Body' showaddelement='false'>
<b:widget id='Blog1' locked='true' title='Blog Posts' type='Blog' version='2' visible='true'>
<div class="theiaStickySidebar">
........
</div>
</b:widget>
</b:section>
<b:section class='sidebar' cond='data:view.isSingleItem' id='sidebar' name='Sidebar' preferred='yes'>
<div class="theiaStickySidebar">
........
</div>
</b:section>
[/pre]
Nhưng toàn báo lỗi: "Whoops, that's an error! (bX-cyd7b2)"
Không biết bị gì bác nhỉ?
Riêng phần script mình làm đúng rồi:
[pre]
<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/WeCodePixels/theia-sticky-sidebar/dist/ResizeSensor.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/WeCodePixels/theia-sticky-sidebar/dist/theia-sticky-sidebar.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('.Blog1, .sidebar').theiaStickySidebar({
// Settings
additionalMarginTop: 30
});
});
</script>
[/pre]
Mình thử không dùng <div class="theiaStickySidebar"> , chỉ để script của nó thì thấy sidebar có trượt lên xuống, nhưng tăng khi số lượng bài lên (để sidebar dài thêm) thì nó lại đứng yên... Bó tay...
Một lần nữa cảm ơn bác đã giúp đỡ ạ!