Ответ 1
Проблема заключается в полосе прокрутки.
1008px-992px=16px //the scrollbar dimension
Фактически, если вы добавите свойство overflow: hidden
в тег HTML
, все будет работать правильно.
Ваш медиа-запрос и javascript не вычисляют одну и ту же ширину (одна с другой и без полосы прокрутки).
Здесь приведен пример JSFiddle проблемы.
Отладка сайта, JS (minified) и функция (ее часть):
/prestashop/PRS01/PRS0100014/themes/cenzo/assets/js/theme.js
//.........FOLLOW THIS LINE............................................................................_____HERE______
u.default.responsive = u.default.responsive || {}, u.default.responsive.current_width = (0, s.default)(window).width(), u.default.responsive.min_width = 992, u.default.responsive.mobile = u.default.responsive.current_width < u.default.responsive.min_width, (0, s.default)(window).on("resize", function() {
var e = u.default.responsive.current_width,
t = u.default.responsive.min_width,
n = (0, s.default)(window).width(),
i = e >= t && n < t || e < t && n >= t;
u.default.responsive.current_width = n, u.default.responsive.mobile = u.default.responsive.current_width < u.default.responsive.min_width, i && o()
}), (0, s.default)(document).ready(function() {
u.default.responsive.mobile && o()
})
Когда окно просмотра 1007 в u.default.responsive.current_width
, вы можете увидеть 991
u.default.responsive.min_width
равно 992
Условие u.default.responsive.current_width < u.default.responsive.min_width
истинно и функция remove node
запущена.
Чтобы отладить это, на вкладке хром "Элементы" найдите идентификатор элемента top-menu
и установите break on... node removal
, проверив стек, вы можете найти функцию выше и все значения. Плагин "Window Resizer" для хрома поможет вам просмотреть размер видового экрана и окна.
Решение в вашем случае немного сложно, потому что CMS и/или Framework являются сложными. Вы можете заменить (window).width()
на window.innerWidth
, возможно, вы его разрешите, но я не знаю, что будет с остальной частью темы.
Но вы можете найти некоторые решения здесь в stackoverflow:
CSS-запросы и ширина полосы прокрутки Firefox
или здесь
$(window).width() не совпадает с медиа-запросом
Надеюсь, это поможет вам:)