Responsive menu with jQuery

Lần trước mình đã giới thiệu một dạng menu responsive nhưng đơn giản và bài viết này mình sẽ chia sẻ một dạng menu tương tự sử dụng jQuery với hiệu ứng trượt nhẹ nhàng khiến cho blog bạn thêm đẹp và chuyên nghiệp hơn. Menu này được tác giả MKR viết ra với style đơn giản, vì vậy mình đã chỉnh sửa style đôi chút và mình sẽ chia sẻ đến độc giả TrollVL cả hai style này.


Cấu trúc HTML

Bạn chèn đoạn HTML sau vào vị trí muốn hiển thị menu trong template của mình. Bạn cũng có thể tạo một widget mới nằm phía trên bài viết và sử dụng HTML bên dưới
<nav>
<a id="tombolmenu" href="#">Menu</a>
  <ul class="menu">
    <li><a href="#">Menu 1</a></li>
    <li><a href="#">Menu 2</a></li>
    <li><a href="#">Menu 3</a></li>
    <li><a href="#">Menu 4</a></li>
    <li><a href="#">Menu 5</a></li>
    <li><a href="#">Menu Dgn DropDown</a>
      <ul class="hidden">
        <li><a href="#">Menu Dropdown 1</a></li>
        <li><a href="#">Menu Dropdown 1</a></li>
        <li><a href="#">Menu Dropdown 1</a></li>
        <li><a href="#">Menu Dropdown 1</a></li>  
      </ul>
    </li> 
  </ul>
</nav>

Style cho menu

Bạn có thể lựa chọn một trong hai style bên dưới cho phù hợp với blog của mình. Nên xem demo trước khi quyết định nha!

Demo

nav{font:normal normal 11px/30px Verdana,Geneva,sans-serif;background-color:#313131}
nav,nav *{display:block}
nav #tombolmenu{display:none}
nav ul,navtvl li{padding:0;margin:0;list-style:none}
nav ul{height:35px;width:1000px}
nav li{float:left;position:relative}
nav li a{display:block;line-height:35px;border-left:1px solid #444;border-right:1px solid #222;color:#aaa;text-decoration:none;padding:0 1.1em}
nav li ul{height:auto;overflow:hidden;background-color:#333;border:0;position:absolute;width:225px;height:auto;z-index:88;-webkit-box-shadow:0 1px 5px #222;-moz-box-shadow:0 1px 5px #222;box-shadow:0 1px 5px #222;display:none}
nav li:hover ul.hidden{display:block}
nav li li{float:none;display:block;width:100%;font:normal 0.8em Arial;text-transform:none;text-shadow:none;display:block;border-top:1px solid #444;border-bottom:1px solid #222;-webkit-transition:all 0.26s ease-out;-moz-transition:all 0.26s ease-out;-ms-transition:all 0.26s ease-out;-o-transition:all 0.26s ease-out;transition:all 0.26s ease-out}
nav li li:hover{border-left:3px solid #fff000}
@media only screen and (max-width:700px){
nav #tombolmenu{display:block;padding:0 15px;background-color:black;text-decoration:none}
nav #tombolmenu.active{background-color:#1D8FC5;color:white}
nav ul{height:auto;display:none}
nav li{float:none}
nav li ul{width:100%}}
nav{font:normal normal 11px/30px Verdana,Geneva,sans-serif;background-color:#313131}
nav,nav *{display:block}
nav #tombolmenu{display:none}
nav ul,nav li{padding:0;margin:0;list-style:none}
nav ul{height:30px}
nav li{float:left;position:relative}
nav li a{display:block;padding:0 10px;color:white;text-decoration:none}
nav li:hover > a{background-color:#1D8FC5}
nav li ul{position:absolute;background-color:black;height:auto;width:160px;display:none}
nav li:hover ul.hidden{display:block}
nav li li{float:none}
@media only screen and (max-width:600px){nav #tombolmenu{display:block;padding:0 15px;background-color:black;text-decoration:none}
nav #tombolmenu.active{background-color:#1D8FC5;color:white}
nav ul{height:auto;display:none}
nav li{float:none}
nav li ul{width:100%}
}



Javascript/jQuery

Để cho thêm hiệu ứng slideup/slidedown ta cần phải sử dụng đoạn javascrip bên dưới
(function () {
    $('nav ul').removeClass('hidden');
    $('nav li').hover(function () {
        $(this).parent('ul.menu').css('overflow', 'visible');
        $(this).children('ul').filter(':not(:animated)').slideDown();
    }, function () {       
        $(this).children('ul').slideUp();
    });

    $('#tombolmenu').toggle(function () {
        $(this).addClass('active');
        $('nav > ul').slideDown();
        return false;
    }, function () {
        $(this).removeClass('active');
        $('nav > ul').slideUp();
        return false;
    });
    function checkWidth() {
        if ($(window).width() > 600) {
            $('nav > ul').css('display', 'block');
        } else if ($(window).width() <= 600 && $('#tombolmenu').attr('class') === 'active') {
            $('nav > ul').css('display', 'block');
        } else if ($(window).width() <= 600 && $('#tombolmenu').attr('class') !== 'active') {
            $('nav > ul').css('display', 'none');
        }
    }
    $(window).resize(checkWidth);
})();

Chúc bạn thành công!
Tham khảo từ nguồn MKR
14 Comments
Comments

14 comments

Mình là Ngọc Vy, người nhờ bạn thiết kế theme responsive cho blogspot. Mình nhắn tin cho bạn trên facebook 2 lần mà không thấy bạn hồi âm (dù mình biết bạn có online). Mình không biết là bạn còn theo đuổi việc thiết kế theme cho mình không???. Chờ câu tl của bạn :)
17/8/13
Mình đăng nhập tài khoản facebook trên mobile vì thế cứ có internet là nó online. Cũng chính vì mình bị khống chế về thời gian nên mình luôn nhận tiền công sau khi công việc đã hoàn tất. Về phần template của bạn mình edit thêm Responsive vậy thôi. Bạn có thể kiểm tra tại đường link mà mình đã inbox cho bạn hôm trước. Nếu đồng ý mình gửi mẫu template cho bạn. Mong bạn thông cảm, cảm ơn!!!
17/8/13
This comment has been removed by the author.
cái temple này http://test101trollvl.blogspot.com/ chưa hoàn thiện mà bạn ^^! Bạn có thể làm tiếp temple này cho mình được không. Mình cần câu trả lời rõ ràng từ bạn :(
bạn cho mình đặt liên kết với.
tên hiện thị:Age88
url:age88.blogspot.com
favicon:http://age88.blogspot.com/favicon.ico
titet:Ứng dụng phần mềm trong xây dựng.
17/8/13
Mình không thấy liên kết blog mình trên website của bạn. Khi nào bạn add thì comments tại http://www.trollvl.com/2012/10/lien-ket-link.html cho mình biết
26/8/13
Menu đẹp lắm, bạn ơi có thể hướng dẫn mình cách post bài giống như TrollVL Style MKR Style bấm qua mỗi bên khác nhau đó :D
26/8/13
à bạn share mình lun cách load qua trang của blog với nha, thanks bạn trước :cuoi:
27/8/13
This comment has been removed by the author.
27/8/13
Mình đã viết bài hướng dẫn tạo tabs chuyển qua lại nội dung tại http://www.trollvl.com/2013/08/tao-tabs-chuyen-noi-dung.html. Bạn vào tham khảo và góp ý giúp mình về nội dung bài viết nha. Cảm ơn!
27/8/13
cảm ơn bạn nhiều vừa yêu cầu đã có :D
27/8/13
Để thêm hiệu ứng loading khi chuyển trang bạn tham khảo bài viết tại http://www.trollvl.com/2013/08/them-hieu-ung-loading-ep-khi-chuyen.html#.Uhx6qNK8CGk sau
Cảm ơn bạn nhiều. Mình làm đc rùi nè Xem Phim Online
Cảm ơn bạn nhiều. Mình làm đc rùi nè Xem Phim Online

Cảm ơn bạn đã ghé thăm Troll VL !
» Tạm thời ngăn không cho comment với chế độ ẩn danh vì có một số bạn không có thành ý cố tình spam. Mong các bạn thông cảm!
» Bạn nên viết bằng Tiếng Việt có dấu để mọi người dễ đọc, dễ bình luận
» Để liên hệ,góp ý và đóng góp bài viết bạn click vào đây
Sử dụng các thẻ sau cho comments
» Chèn nội dung vào blockquote <b rel="quote">Nội dung blockquote</b>
» Chèn nội dung vào note <em rel="note">Nội dung note</em>
» Chèn code vào khung pre <i rel="pre">Nội dung code</i>
» Chèn hình ảnh <i rel="image">Link hình ảnh</i>
» Chèn video từ youtube [youtube]link video[/youtube]
» Chèn link <i rel="anchor">Link</i>

Insert Emoticons
:cuoi
:hihi
:thank
:haha
:meu
:cry
:oaoa
1cuoi
:D
@@
:p
:o
:vi
:ko
:ca
:why
:xin
:lanh
:im
:aoi
:ado
:mda
:tat
0:khoa
a:ab
k:ac
q:ad
w:ae
e:af
l:ag
g:ah
8:ai
9:aj
9:ag
:9a
*Phải có khoảng trống trước các code mới hiển thị mặt cười


Mã Hóa Code Tạo và xem trước comments Cancel Reply
-->