@Alide

Что делать если выпадающее меню не пролистывается?

Выпадающее меню на телефоне при открытии не влезает в экран, а если попытаться скроллить его - оно исчезает, что делать?
ccd-info.pro
(function($) { 
$.fn.menumaker = function(options) {  
  var subenaroun = $(this), settings = $.extend({ 
  format: "dropdown", 
  sticky: false 
  }, options); 
  return this.each(function() { 
  $(this).find(".sponsiveweb").on('click', function(){ 
  $(this).toggleClass('menu-opened'); 
  var mainmenu = $(this).next('ul'); 
  if (mainmenu.hasClass('open')) {  
  mainmenu.slideToggle().removeClass('open'); 
  } 
  else { 
  mainmenu.slideToggle().addClass('open'); 
  if (settings.format === "dropdown") { 
  mainmenu.find('ul').show(); 
  } 
  } 
  }); 
  subenaroun.find('li ul').parent().addClass('has-sub'); 
multiTg = function() { 
  subenaroun.find(".has-sub").prepend('<span class="submenu-sponsiveweb"></span>'); 
  subenaroun.find('.submenu-sponsiveweb').on('click', function() { 
  $(this).toggleClass('submenu-opened'); 
  if ($(this).siblings('ul').hasClass('open')) { 
  $(this).siblings('ul').removeClass('open').slideToggle(); 
  } 
  else { 
  $(this).siblings('ul').addClass('open').slideToggle(); 
  } 
  }); 
  }; 
  if (settings.format === 'multitoggle') multiTg(); 
  else subenaroun.addClass('dropdown'); 
  if (settings.sticky === true) subenaroun.css('position', 'fixed'); 
resizeFix = function() { 
  var mediasize = 1000; 
  if ($( window ).width() > mediasize) { 
  subenaroun.find('ul').show(); 
  } 
  if ($(window).width() <= mediasize) { 
  subenaroun.find('ul').hide().removeClass('open'); 
  } 
  }; 
  resizeFix(); 
  return $(window).on('resize', resizeFix); 
  }); 
  }; 
})(jQuery); 

(function($){ 
$(document).ready(function(){ 
$("#subenaroun").menumaker({ 
  format: "multitoggle" 
}); 
}); 
})(jQuery);

посмотреть_скриншоты
5cce9cd48c546244072159.jpeg5cce9cdb7a993108850438.jpeg

Помогите исправить
  • Вопрос задан
  • 258 просмотров
Пригласить эксперта
Ответы на вопрос 2
@MamaLuyba
сталкивался с такой проблемой. промучившись пару дней, сделал принудительное раскрытие меню при скролле. правда, у меня такая фигня была только на главной странице, так что особо это ни на что не повлияло.
попробуй повесить listener'ы на меню на разные события: клик, скролл, тач и т.д. и посмотри, после какого события меню схлопывается. ну и потом принудительно запретить это событие.
в моем случае, я в лавине из чужих решений так и не нашел нужное событие.
Ответ написан
Комментировать
Чтобы добавить скролл-полосу для прокрутки меню, вы можете использовать CSS свойство overflow и задать максимальную высоту (max-height) для меню. Вот как это можно сделать:

Добавьте следующий CSS стиль для вашего меню:
#subenaroun {
    max-height: 300px; /* Задайте максимальную высоту для меню, после которой появится полоса прокрутки */
    overflow-y: auto; /* Добавьте вертикальную полосу прокрутки, если контент меню превышает максимальную высоту */
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
27 нояб. 2024, в 17:41
2000 руб./за проект
27 нояб. 2024, в 17:26
1 руб./за проект
27 нояб. 2024, в 17:17
3000 руб./за проект