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

Blue

Founder
Thành viên BQT
Tham gia
25/02/2015
Bài viết
931
Được Like
1,553
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
Tham gia
30/01/2017
Bài viết
639
Được Like
276
quá tuyệt, thank a blue :D
 
  • Like
Reactions: THB

tuna

Sergeant
Tham gia
30/01/2017
Bài viết
639
Được Like
276
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

THB

Founder
Thành viên BQT
Tham gia
25/02/2015
Bài viết
6,651
Được Like
3,934
@Blue nhanh như điện. haaa
 

PVS

Super Moderator
Thành viên BQT
Tham gia
28/02/2015
Bài viết
17,142
Được Like
12,745
lại có cái mới để vọc =))
 
  • Like
Reactions: THB

tuna

Sergeant
Tham gia
30/01/2017
Bài viết
639
Được Like
276
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

hoanghuutai39

Private
Tham gia
29/11/2017
Bài viết
13
Được Like
5
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
Tham gia
30/01/2017
Bài viết
639
Được Like
276
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

phamquangquyen

Private
Tham gia
22/01/2018
Bài viết
45
Được Like
7
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

lanhhuyettu

MasterCorporal
Tham gia
10/03/2015
Bài viết
223
Được Like
112
Mình thấy cứ sử dụng dòng code này cho tiện :D
Mã:
#navigation
 {
    position: fixed;
    right: 0;
    left: 0;
    z-index: 1030;
}
 

Blue

Founder
Thành viên BQT
Tham gia
25/02/2015
Bài viết
931
Được Like
1,553
Update: Code dành cho XenForo 2
 
  • Like
Reactions: THB

dcstylexf

Major
Tham gia
24/03/2015
Bài viết
2,005
Được Like
1,616
@Blue sao không dùng luôn CDN đi anh, tiện hơn là up lên host :D
HTML:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.sticky/1.0.4/jquery.sticky.min.js"></script>
 

Top Bottom