Hướng dẫn Tạo sticky cho navbar XenForo (Menu luôn đứng yên khi cuộn trang)

Blue

Legend
Thành viên BQT
Thấy có nhiều bạn muốn làm cho Menu top của diễn đàn mình luôn đứng yên khi cuộn trang web xuống nhưng chưa làm được do cách thực hiện quá phức tạp đối với những ai không rành jquery. Hôm nay mình đã tìm ra 1 cách rất đơn giản (đang áp dụng cho VNXF) để làm việc này, đó là sử dụng thư viện jsticky của jquery, các bạn chỉ cần copy đoạn mã bên dưới dán vào template footer là xong.

Mã:
<script type="text/javascript" src="http://vnxf.vn/js/jquery.jsticky.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $("#header").sticky({
            top: 0,
            zIndex: 11111111
        });
    });
</script>

Đối với XenForo 2, đoạn mã sẽ thay đổi như sau:
Mã:
<xf:js src="http://vnxf.vn/js/jquery.jsticky.js" />
<xf:js>
    $(document).ready(function(){
        $(".p-nav").css({
           width: '100%'
        });
        $(".p-nav").sticky({
            top: 0,
            zIndex: 111
        });
    });
</xf:js>

Nếu file js được up lên hosting của bạn thì link nó sẽ dạng: <xf:js src="{{ base_url('styles/') }}jquery.jsticky.js" />


Code này có thể áp dụng với mọi trang web chứ không riêng gì XenForo, và có thể áp dụng vào cả các khu vực khác, ví dụ banner cuối cùng cột phải của vnxf.vn.

Mấu chốt của code này là đoạn #header, nếu các bạn có thể xem được code html thì đó chính là chữ header trong code menu bên dưới:

Mã:
<div id="header" style="position: fixed; top: 0px; z-index: 11111111;">

id="header" thì ở code jquery trên sẽ là #header
Nếu class="classheader" thì code query trên sẽ là .classheader.

Mã:
<div class="rightside" style="position: static;">

Ví dụ banner cuối cột phải của vnxf.vn là code trên thì code sticky sẽ là:

Mã:
<script type="text/javascript">
    $(document).ready(function(){
        $(".rightside").sticky({
            top: 0,
            zIndex: 11111111
        });
    });
</script>

Chúc các bạn thử nghiệm thành công!

Blue VNXF
 
Sửa lần cuối:

tuna

Sergeant
khi nào a blue sửa lại cái add on bbcode share lock cho xen1.5 đi ạ, có gì ae đóng ghóp :v
 
  • Like
Reactions: THB

PVS

Generalissimo
Thành viên BQT
lại có cái mới để vọc =))
 
  • Like
Reactions: THB

tuna

Sergeant
Anh @Blue cho em hỏi nếu muốn nó trượt tới hết #1 là không trượt nữa thì làm thế nào ạ, hiện tại thì em chỉ biết edit để nó trượt tới footer thôi, như vậy thì hơi dài :D
 
  • Like
Reactions: THB
Thấy có nhiều bạn muốn làm cho Menu top của diễn đàn mình luôn đứng yên khi cuộn trang web xuống nhưng chưa làm được do cách thực hiện quá phức tạp đối với những ai không rành jquery. Hôm nay mình đã tìm ra 1 cách rất đơn giản (đang áp dụng cho VNXF) để làm việc này, đó là sử dụng thư viện jsticky của jquery, các bạn chỉ cần copy đoạn mã bên dưới dán vào template footer là xong.

Mã:
<script type="text/javascript" src="http://vnxf.vn/js/jquery.jsticky.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $("#header").sticky({
            top: 0,
            zIndex: 11111111
        });
    });
</script>

Code này có thể áp dụng với mọi trang web chứ không riêng gì XenForo, và có thể áp dụng vào cả các khu vực khác, ví dụ banner cuối cùng cột phải của vnxf.vn.

Mấu chốt của code này là đoạn #header, nếu các bạn có thể xem được code html thì đó chính là chữ header trong code menu bên dưới:

Mã:
<div id="header" style="position: fixed; top: 0px; z-index: 11111111;">

id="header" thì ở code jquery trên sẽ là #header
Nếu class="classheader" thì code query trên sẽ là .classheader.

Mã:
<div class="rightside" style="position: static;">

Ví dụ banner cuối cột phải của vnxf.vn là code trên thì code sticky sẽ là:

Mã:
<script type="text/javascript">
    $(document).ready(function(){
        $(".rightside").sticky({
            top: 0,
            zIndex: 11111111
        });
    });
</script>

Chúc các bạn thử nghiệm thành công!

Blue VNXF
AD hướng dẫn khi làm trên xenforo 2 với, xen 2 tìm không ra tamplate footer
 
  • Like
Reactions: THB

tuna

Sergeant
a @Blue ơi cho em hỏi ạ,
có thể nào làm cho 2 widget trượt đc ko ạ, ví dụ widget 1 trượt tới stopper 1 thì dừng và widget 2 trượt tới stopper 2
 
  • Like
Reactions: THB
Em vào footer template, rồi copy đoạn code này vào cuối phần này

<script type="text/javascript" src="http://vnxf.vn/js/jquery.jsticky.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#header").sticky({
top: 0,
zIndex: 11111111
});
});
</script>

Xong ra ngoài, truy cập em vẫn thấy nó ở phía dưới, nhờ các a trợ giúp với. Em xin cảm ơn!
upload_2018-3-28_15-30-53.png
 
  • Like
Reactions: THB

Hướng dẫn sử dụng

XenForo 1 XenForo 2
Translate by PVS

Hỗ trợ trực tuyến

Support Quảng cáo
Mr. San (PVS)

Skype chat, instant message

Mr. Tuấn (Blue)

Skype chat, instant message

Mr. Tuấn
0988 488 096
Mr. Trọng
0906 081 284
kinhdoanh@vnxf.vn

Nhà Tài Trợ

Mút Xốp Không Gian
pallet Thịnh Phát
Điện Lạnh Thịnh Phát
Top