Хорошо. Вот хак.
Динамически корректируйте значение левой позиции sidenav.
Сначала возьмите один элемент страницы в качестве левого поля, вертикальной линии, к которой вы хочу sidenav придерживаться. Здесь я использовал свой .col и дал ему идентификатор, чтобы я мог нацелиться на него и найти его левую позицию, используя jQuery:
<div id="content" class="col s12 m8 offset-m2">
И jQuery:
var contentLeft = $('#content').offset().left
Далее мы берем левую позицию нашего контента и устанавливаем левую позицию sidenav равной ей минус ширина sidenav .
var sidenavOffset = contentLeft-300;
$('.sidenav.sidenav-fixed').css('left',sidenavOffset);
Мы поместите все это в функцию, а затем запустите функцию при загрузке страницы:
var contentLeft;
var sidenavOffset;
function positionSidenav() {
contentLeft = $('#content').offset().left
sidenavOffset = contentLeft-300;
$('.sidenav.sidenav-fixed').css('left',sidenavOffset);
}
positionSidenav();
Затем, при каждом изменении размера окна, мы снова запускаем функцию, чтобы обновить значение:
$( window ).resize(function() {
positionSidenav();
});
Обратите внимание, что для вашего случая использования вам нужно будет запускать эту функцию только на экранах шириной более определенной величины. Так что вы можете заключить функцию в оператор if, может быть.
Codepen здесь .
И, поскольку я чувствую себя щедрым, здесь ручка с оператором if:)