post image

Accordion Navigation jQuery & CSS

Accordion menu cũng là một dạng menu phổ biến được sử dụng nhiều trong các website hiện đại. Nó tạo cảm giác “cool cool” khi người dùng click vào đường link. Hơn nữa nó cũng tiết kiệm được rất nhiều diện tích trên trang web. Nhưng Accordion không chỉ được sử dụng cho Menu, nó cũng có thể được sử dụng cho nội dung, hình ảnh.

Trong bài này tôi sẽ hướng dẫn bạn chi tiết cách tạo menu Accordion từ đầu. Nhưng tôi sẽ đơn giản phần CSS và HTML, chúng ta chỉ tập trung chủ yếu vào phần jQuery. Còn màu sắc, hoa lá cành v.v. thì bạn tự thêm vào sau cũng được. Thêm nữa tôi cũng muốn nói đây là markup bằng HTML, còn nếu bạn muốn sử dụng cho các Project web động bằng PHP chẳng hạn thì nó hoàn toàn tương thích. Miễn sao CMS đó có code HTML khi xuất ra giống với code mà chúng ta đã viết ở trong video dưới.

Thời lượng: 22:38

Download định dạng .avi chất lượng cao: MediaFire

File Size: 48 MB

Giải thích thêm về jQuery

Trong bài này chúng ta sử dụng một số function() của jQuery như: addClass(), removeClass(), hide(), slideUp()slideDown(). Đây là những function() có sẵn của jQuery mà bạn chỉ cần sử dụng jQuery Selector và gán nó vào.

Để có thể sử dụng được jQuery trong trang web, bạn cần phải download jQuery từ trang chủ của jQuery hoặc sử dụng file có sẵn trên server của Google như sau:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

Về cơ bản hiệu ứng Accordion hoạt động theo nguyên lý khi người dùng mới mở trang web, thì link đầu tiên được hiển thị còn các thành phần khác bị ẩn đi. Khi người dùng click chuột vào bất cứ link nào, nội dung của nó sẽ được hiển thị và các phần khác bị ẩn. Như vậy bạn có thể tưởng tượng rằng chúng ta phải sử dụng click Event Handler. Cuối cùng để đạt được hiệu ứng mũi tên thay đổi theo trạng thái thì mình dùng một class=’active’. Class này tất nhiên được thêm vào và bỏ đi tự động bằng jQuery.

«

»

57 Comments

( Comment bài này )
  1. Hưng says:

    Anh có thể cho em hỏi ? được không ạ ?
    nếu mà khi em muốn lúc load trinh duyệt mà tất cả thẻ dd luôn đóng chứ k phải là có thẻ dd đầu tiên được mở sẵn thì làm như thế nào ạ ? bỏ đoạn dd:not luôn àh a ?

  2. Thanh Huy says:

    Anh Demon Warlock, đầu tiên em xin chân thành cảm ơn anh vì những gì anh đã làm cho chúng em và mọi người. Em không biết nói gì hơn ngoài những lời chúc anh luôn mạnh khỏe.
    Em có thắc mắc là theo cái Tut trên của anh thì khi xem Firebug thấy nó đã add được class active, nhưng cái hình mũi tên right.png vẫn không hiện ra được khi mình Click vào nó, em đã test kỹ url hình chính xác ko trùng và thử trên mọi trình duyệt vẫn không có phản ứng gì. Cái này có phải do lỗi ko anh.
    Xin anh giúp đỡ, chân thành cảm ơn anh nhiều!

    • TikTok says:

      không hiện lên là do trong css chưa đúng thôi.
      có khi bạn phải viết với url tương đối
      {background: #3883cc url(../images/right.png) no-repeat 5px center;}
      thêm vào ../
      bạn thử xem nhá

    • Crack says:

      Đúng rồi đó.bạn xem lại đường dẫn file ảnh url đi .Xem bạn để 2 file cùng 1 folder hay khác folder

  3. TikTok says:

    Phần dưới em đã làm đc rồi.cám ơn
    Em có 1 góp ý nhỏ.
    Khi dùng php lấy dữ liệu từ database ta không thể viết thêm vào class=”active” như sử dụng html.
    ta có thể thêm trong jQuery dòng sau
    $(‘dt a:first’).addClass(‘active’);
    Thì dt đầu tiên cũng sẽ có background active

    Em cũng có 1 điều muốn hỏi
    Giờ click dd hiện ra rồi nhưng em muốn nó đóng lại và không mở 1 dd nào nữa thì sao anh.
    Em ngồi mò hoài nhưng mà đóng lại thì được nhưng mở dd mới lại không được
    Loạn hết cả đầu lên.
    Thôi thì lên đây nhờ anh sẽ nhanh hơn.
    Mong anh reply sớm giúp em.

  4. TikTok says:

    Cám ơn rất nhiều bài viết hay của anh,và em cũng đã học hỏi và ứng dụng thành công rất nhiều vào việc học của mình.
    Với menu này em cũng đã có làm qua.Nhưng, em không hiểu sao lại bị lỗi ở phần addClass(active) nó không tự add mới cho mình.em ứng dụng với csdl Mysql.
    Có 1 cách nào giải quyết được không anh nhỉ.

  5. ntruong18 says:

    Anh ơi! Em viết code theo hướng dẫn của anh nhưng nó chỉ hiển thị trên Firefox chứ không hiển thị trên internet explorer 7. XIn anh hướng dẫn. Thanhks a.

  6. Nghiêm Hải Hằng says:

    anh DW ơi, cho em hỏi tí:
    trong đoạn code: $(‘dd:not(:first)’).hide(); của anh là khi người nhập vào trang đầu tiên thì nó hiện jeqeury. Nếu em muốn hiện Documention trước thì làm thế nào.
    Em đã thử bằng câu lệnh: $(‘dd:not(:second)’).hide(); nhưng không được. Mong anh và mọi người chỉ giúp em với.
    Cám ơn anh và mọi người nhiều!

  7. Cảm ơn anh vì bài viết này rất có ý nghĩa. Em hy vọng rằng izweb ngày càng có nhiều video hay như vậy.

  8. King says:

    Mong DW khi viết CSS thì dùng add-on Web Developer của Firefox.
    Vì với cách viết đó, chúng ta có cái nhìn trực quan hơn, và những lời giải thích của DW trở nên dễ hiểu hơn.
    Thanks and best regards!

  9. mmmmm says:

    “bóc tem” topic

  10. TK các thành viên izwebz.com rất nhiều

  11. kenichifc says:

    File reset.css có tác dụng như thế nào vậy bạn !!! khi thiết kế chỉ cần có File reset.css thì có thể chạy dc cả trình duyệt IE7,8 ak.

    • Để trang web hiển thị đúng trên mọi trình duyệt thì còn nhiều nguyên nhân và cách khắc phục khác nữa. Nhưng Reset CSS làm giảm sự khác nhau về mặc định của các trình duyệt.

  12. Kick ass says:

    Anh DW cho em hỏi, làm sao để khi click vào cái tag dt đang được active ấy thì nó slideup lại ?, theo cách anh làm thì khi reclick vào tag ấy thì nó up xong lại down lại, em muốn nó gom lại hết luôn :D

    • Cái này em phải dùng một mệnh đề if…else để kiểm tra xem nó có bị ẩn hay không, nếu ẩn thì hiện lại nó ra. …. có hiểu không nhỉ :D

      Thôi để anh làm lại một tut khác thay cho tut này, chờ thứ 6 sẽ có video cho chú nhé! ;) ưu tiên chú nhất đấy nhé! :)

  13. David says:

    Mình không rành CSS lắm nên chỉ có thể lấy CSS của các site làm Menu cho mình, mình đang có cái Menu khá nice, giờ muốn thêm tính năng Accordion vào, ngồi cả ngày nhưng vẫn không được mong được hướng dẫn. Link download file Menu http://up.4share.vn/f/2d1c1e1e1c1c191e/daixuan.rar nếu có thể thì thêm code vào giúp mình chân thành cảm ơn !
    E-Mail: davidhuynhvan@gmail.com

  14. bui lan says:

    Thanks bác nhiều lắm,hôm nay tìm mãi mới được Code để làm cái Menu.
    Mong bác ngày càng có nhiều video hay để mọi người học tập.

  15. nhtera says:

    Reset css thì google là ra ngay thôi !
    có cái http://meyerweb.com/eric/tools/css/reset/ của Eric Meyer là hay được sài.
    Vì Eric Meyer là chuyên gia css mà :D

  16. Lâm Chí Dĩnh says:

    @MrV2m: Cám ơn anh, đã nhận được và em đã áp dụng được. :-)

  17. MrV2m says:

    @Lâm Chí Dĩnh: File Reset CSS của bạn đây: http://thethaohangnang.com/videoclip/tutorial/reset.css

1 2
  1. BB
  2. BB
  3. BB

arrow

Lưu ý khi post comment:

  • Không "bóc tem" topic
  • Dùng lời lẽ có văn hoá và lịch sự
  • Xem trang FAQs trước khi hỏi
  • Bạn có thể dùng thẻ HTML như:<strong>, <em>, <a>
  • Đặt code trong thẻ [php],[html],[javascript],[css]

Chọn kiểu gõ: Tự động TELEX VNI Tắt