dropdown.js 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. // dropdown menu hide
  2. $(document).on('hide.bs.dropdown', '.dropdown', function() {
  3. // header affix
  4. if ($(this).parents('.header').length) {
  5. $('header').removeClass('open');
  6. };
  7. });
  8. // dropdown menu show
  9. $(document).on('show.bs.dropdown', '.dropdown', function() {
  10. var $dropdownMenu = $('.dropdown-menu', $(this)),
  11. $dropdownToggle = $('[class*="dropdown-toggle"]', $(this)),
  12. dropdownPadding = $('a', $dropdownMenu).css('padding-left').replace('px', ''),
  13. dropdownWidth;
  14. if ($dropdownMenu.length && $dropdownToggle.length) {
  15. // dropdown menu max width
  16. if ($dropdownMenu.hasClass('dropdown-menu-right') || $dropdownMenu.parents('.nav.pull-right').length) {
  17. dropdownWidth = $dropdownToggle.offset().left + $dropdownToggle.outerWidth() - dropdownPadding;
  18. } else {
  19. dropdownWidth = window.innerWidth - $dropdownToggle.offset().left - dropdownPadding;
  20. }
  21. $dropdownMenu.css('max-width', dropdownWidth);
  22. // header affix
  23. if ($dropdownMenu.parents('.header').length) {
  24. $('header').addClass('open');
  25. };
  26. };
  27. });