2013-12-13 3 views
2

Как отключить все экземпляры плагина Tiny Scrollbar на странице? Вот тест JSBin.Как отключить крошечный плагин jQuery прокрутки?

Контекст: Я создаю веб-приложение, которое использует этот плагин для всех scollbars для настольной версии, но я хочу отключить его и использовать собственные полосы прокрутки для мобильной версии.

+0

Do это: $ ('# scrollbar1'). tinyscrollbar(); только если это не мобильный браузер. – Poornima

+0

Взгляните на https://github.com/borismus/device.js для способов загрузки скриптов/выполнения кода на основе медиа-запросов. – megawac

ответ

0

Попробуйте это:

$(document).ready(function(){ 
    if(!(navigator.userAgent.match(/Android/i) 
    || navigator.userAgent.match(/webOS/i) 
    || navigator.userAgent.match(/iPhone/i) 
    || navigator.userAgent.match(/iPad/i) 
    || navigator.userAgent.match(/iPod/i) 
    || navigator.userAgent.match(/BlackBerry/i) 
    || navigator.userAgent.match(/Windows Phone/i) 
    )){ 
     $('#scrollbar1').tinyscrollbar(); 
    } 
}); 
0

Этот вопрос поможет вам определить, является ли он мобильным браузером, читайте комментарии, хотя и об оговорках.

What is the best way to detect a mobile device in jQuery?

+0

Я буду использовать медиа-запросы на данный момент (я также хочу отключить плагин прокрутки на рабочем столе при изменении размера окна браузера, чтобы вызвать мобильный макет). –

+0

@DiegoR Вы можете использовать определенное пользовательское определение ширины окна/окна просмотра, чтобы отключить плагин. Вы также можете перейти на экран @media и (max-width: 1000px) {', чтобы динамически менять макет. В зависимости от того, как вы обслуживаете свой сайт, вы также можете чередовать другую страницу специально для мобильных браузеров. Если вы тестируете в локальном браузере, вам нужно сделать больше размера вашего браузера и перейти к обмену пользовательским агентом. – Mark

-3

использование:

$(selector).unbind("tinyscrollbar"); 

пример:

$("#parent").unbind("tinyscrollbar"); 
+1

tinyscrollbar - это не событие, это плагин. – NaNpx

-1

Похоже малолетка Scrollbar плагин генерирует свой собственный Марку p для имитации «родной» полосы прокрутки.

Что вы можете сделать, это определить, установлено ли устройство, мобильное устройство, а затем скрыть сгенерированную разметку для полосы прокрутки. Вы можете сделать это через jQuery или css. Например:

$('#scroll-bar').hide(); 

или

<div id="scroll-bar" style="display:none;">... 

Для того, чтобы отобразить собственные полосы прокрутки браузера в для просмотра, установите перелив в автоматический режим и указать высоту. Например:

<div id="view-port" style="height:200px; overflow:auto;">... 
+0

Скрытие полосы прокрутки и установка переполнения не исправят это.Что касается всех прослушивателей событий tinyscrollbar, они все равно будут срабатывать при отправке событий. – NaNpx

0

Я нашел эту страницу ищет способ, чтобы уничтожить/полностью удалить JQuery плагин (в частности, он был tinyscrollbar). Таким образом, ключевые слова имеют смысл, и выбранный ответ делает то, что нужно оператору. Но здесь нет полных ответов на вопрос «Как отключить плагин jQuery».

@yMed был вниз проголосовали дважды, но был близок ..

В конце концов, я нашел свой ответ ниже ..

var destroyTinyScrollBar = function($elem) { 
    var eventNamespace = 'tinyscrollbar', 
     isInstantiated = !! $.data($elem.get(0)); 

    if (isInstantiated) { 
     $.removeData($elem.get(0)); 
     $elem.off(eventNamespace); 
     $elem.unbind('.' + eventNamespace); 
    } 
}; 

Что лучше объяснено более в, http://ub4.underblob.com/remove-jquery-plugin-instance/

Смежные вопросы