Показать сообщение отдельно
  #1 (permalink)  
Старый 25.08.2017, 17:00
Аспирант
Отправить личное сообщение для sergey24 Посмотреть профиль Найти все сообщения от sergey24
 
Регистрация: 04.11.2016
Сообщений: 56

Проблемы с реинициализацией jscrollpane
Добрый день. Есть сайт, который использует jscrollpane. Для работы данного плагина требуется добавить class к блоку в котором хотим заменить скролл. Если его ставить изначально в html код, то всё работает отлично. Но у меня он присваивается после загрузки страницы, т.к. требуется присваивать разным блокам в зависимости от размера экрана, после чего отказывается работать (из-за кривых рук). Собственно вот сам код:
<div class="block1">123
456
789</div>
<div class="block2">123
456
789</div>
<div class="block2">123
456
789</div>

$(document).ready(function() {
    $('.scroll-pane2').jScrollPane({
         autoReinitialise: true
  });
$(function() {
			doUseful();
			$(window).resize(doUseful);
		});

		function doUseful() {
			var width = $('body').innerWidth();
			var element2 = $('.scroll-pane2').jScrollPane();
			var api2 = element2.data('jsp');
			if (width < 1200) {
			$('.block1').removeClass('scroll-pane2');
			$('.block2').addClass('scroll-pane2');
			api2.reinitialise();
			}
			else {
			$('.block1').addClass('scroll-pane2');
			$('.block2').removeClass('scroll-pane2');
			api2.reinitialise();
			}
		}

PS Использую scroll-pane2, т.к. scroll-pane уже есть на странице и используется в других блоках
К слову вот его код:
function explode(){
        var element = $('.scroll-pane').jScrollPane();
	var api = element.data('jsp');
	api.scrollToBottom();
}
setTimeout(explode, 500);

Этот код работает отлично

Последний раз редактировалось sergey24, 25.08.2017 в 17:08.
Ответить с цитированием