20%

KHUYẾN MẠI

Giảm giá khi nâng cấp web năm 2020

Cách tạo Sticky Sidebar với jQuery

Có cài này trong web cũng hay hay nếu bạn thích thì làm theo mình hoặc lấy luôn mã nguồn về dùng luôn cũng được 🙂

Yêu cầu:

Bạn phải biết về css nhất là kiến thức về  thuộc tính position (có 2 giá trị absolute và fixed sẽ được áp dụng trong bài này)

Đầu tiên là thuật toán:

Cách tạo Sticky Sidebar với jQuery

Cách tạo Sticky Sidebar với jQuery

Ta sẽ lấy địa chỉ offset của thanh scroll window so sánh với địa chỉ offset của cái sidebar, nếu mà địa chỉ thanh scroll của windows lớn hơn thì ta sẽ thay đổi thuộc tính position cho cái sidebar, và nếu nhỏ hơn thì lại đưa về position ban đầu.

1. Tạo khung html

Ta có cái khung xương của trang:

<body>
<div class="wrp">
    <div class="header"></div>
    <div style="position: relative;height: 100%">
        <div class="left"></div>
        <div class="right">right</div>
    </div>
    <div style="clear: both"></div>
    <div class="footer">footer</div>
</div>
</body>

2. Style CSS

.wrp{
            margin: 0 auto;
            width: 1000px;
            height: 1500px;
            background: #e3e3e3
        }
        .header{
            width: 1000px;
            height: 100px;
            background: red
        }
        .right {
            width: 250px;
            height: 500px;
            background: #000;
            margin-left: 750px;
            position: absolute;
            top: 50px;
        }
        .left{
            float: left;
            width: 700px;
            height: 100%;
            border: 1px solid #e3e3e3;
        }
        .footer{
            width: 1000px;height: 420px;background: red
        }

3. Viết jQuery xử lý

 <script>
        $(document).ready(function () {
            var $this = $(".right");
            var offset_div = $this.offset().top;
            $(window).scroll(function () {
                var wd_top = $(window).scrollTop();
                if (offset_div < wd_top) {
                    if (wd_top > 900)
                    {
                        $this.css({"position": "absolute", "top": "900px"});
                    }else {
                        $this.css({"position": "fixed", "top": "0px"});
                    }
                } else {
                    $this.css({"position": "absolute", "top": "50px"});
                }
                console.log(offset_div);
                console.log(wd_top);
            });
        })
    </script>

rất đơn giản phải không ạ?

Hãy đóng góp ý kiến bằng cách để lại comment!

Enjoy!

DEMO

Các bài viết không xem thì tiếc:

4 Comments

  1. Tìm kiếm trên google và gặp bài viết của bạn | Bạn cho mình hỏi mình đang dùng blogger | bạn có thể hướng dẫn 1 bài cho blogger chi tiết | để mình và các bạn mới biết về blogg có thêm thủ thuật và kinh nghiệm ko ? cám ơn bạn
    • Hi bạn, đây là bài hướng dẫn chung còn nếu tích hợp vào blogger của google thì phải thềm vài công đoạn nữa. Bạn có thể tham khảo thêm tại đây: https://stackoverflow.com/questions/6449733/how-can-i-add-javascript-inside-blogger http://imageslidermaker.com/blog/how-to-include-javascript-and-css-on-blogger

Thảo luận

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

Main Menu