13

私はdivを取得しました。それをより魅力的にするために、そのdivでSlimScrolljQueryプラグインを使用します。

$('#scrollable').slimscroll({
   color: '#900',
   size: '8px',
   width: '300px',
   height: '500px'
});

ここで、このdivにこのプロパティをもう持たないようにしたい(ただし、ブラウザーのデフォルトのスクロールバーを持たせたい)瞬間があります。どうすれば削除できslimscrollますか?

4

7 に答える 7

17
$("#scrollable").slimScroll({destroy: true});
于 2014-03-12T07:43:21.747 に答える
6

私の場合はうまく機能するこの関数を作成しました

function destroySlimscroll(objectId) { 
   $("#"+objectId).parent().replaceWith($("#"+objectId)); 
}
于 2013-08-09T08:52:42.713 に答える
2

その上でメソッドを呼び出してみてくださいdestroy。うまくいけばサポートされます。

$('#scrollable').slimscroll("destroy");

プラグインによって適用されたすべてのインラインスタイルを削除することもできます

$('#scrollable').attr('style', '');
于 2012-02-05T19:28:24.723 に答える
1

大規模なSPAアプリでこれを行うのに問題がありました. SlimScroll の destroy メソッドを呼び出しても、スクロールが積み重なっていきます。

だからここに私の解決策があります。

$('.slimScrollBar,.slimScrollRail').remove();
$('.slimScrollDiv').each(function(){
    $(this).replaceWith($(this).children());
})

このコードが実行され、すべてのスクロールが破棄されると、コントローラーは必要に応じて自由にスクロールをバインドできます。

于 2016-01-24T07:04:17.430 に答える
0

どの答えもうまくいかなかったので、解決策を共有したいと思いました。

handleScroller()onという関数をロードしますdocument.ready()。で更新を実行する と、slimScrollDiv が破棄されて再構築されるように、関数を再度ul li呼び出します。handleScroller()ulコンテナの高さも設定しました。それはかなりうまくいっているようです。これが私のコードのサンプルです:

style.css .scroller{height: 182px;}内の CSS

HTML/Bootsrap メニュー

<ul class="nav navbar-nav pull-right">
   <!-- slimScroll notifications -->
   <li id="header_notification_bar"  class="hidden dropdown">
   <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">
    <i class="fa fa-bell"></i>
        <span class="badge">
            6
        </span>
   </a>
   <ul id="notifications" class="dropdown-menu extended"></ul>
   </li>
<!--other menu items ... //-->
</ul>

JS/jQuery

$(document).ready(function(){
   handleScroller();
   VisitedHandler(); 
});

function VisitedHandler(){
   $("#notifs li").on("click",function(){

      $("#notifications").html('');     
      $('ul#notifs').html('');
      $("#notifications").append('<li><ul id="notifs" class="dropdown-menu-list scroller"></li>');
       var ul = $('#notifs');
           ul.append('<li id="general">New Announcement</li>')   
           ul.append('<li id="enhancements">New Page Enhancements</li>'); 

    handleScroller();

});
}

function handleScroller(){
  $("#notifs").slimscroll({destroy:true});
     var notes = $("#notifs");
     var height = notes.css("height");
     if($('#notifs .nws').size() < 5 && $('#notifs .nws').size() != 0)
        height = $('#notifs .nws').size() * 40 + 22;
     else      
        height = 182;
     //no Notifications
     if($('#notifs .nws').size() == 0)
        height = 0;
   $("#notifs").slimScroll({
    size: '10px',
    color: '#a1b2bd',
    railColor:'#272727',
    position: 'right',
    height: height,
    alwaysVisible: true,
    railVisible: true,
    disableFadeOut: true
   });
}

注:ここhandleScroller()には、ロジックを aでラップするソリューションがありsetInterval()ます。可能であれば離れることをお勧めしsetInterval()ます。

于 2016-09-10T23:06:52.840 に答える