iframe を使用してコンテンツをロードする場合にのみ、FireFox の slimScroll / jQuery UI で問題が発生します。コードは、他のすべてのブラウザーで正常に動作します。
iframe を正常にロードすると、正常に動作します。(.hide() または display:none;) で開始するために非表示でロードすると、引き続きロードされますが、slimScroll ドラッグ可能バーは表示されません (レールのみが存在します)。
これは FireFox のスクロールの問題か、おそらく jQuery UI のドラッグ可能な問題だと思います。いずれにせよ、私はそれを理解することはできません。
親ページ (parent.html) に入れるスクリプト:
$(document).ready(function () {
var tip = $('<div id="tip" style="position:absolute;top:90px;left:190px;height:120px;' + 'width:275px;border:1px solid grey;z-index:2147483647;overflow:hidden;">' + "<iframe frameborder='0' scrolling='no' src='content.html' width='275px' height='120px' id='myiframe' type='content' style='display:block;visibility:visible'></iframe>" + '</div>');
$('body').prepend(tip);
$('#showtip').click(function (event) {
$('#tip').show();
});
$('#tip').hide(); //comment this line out and it works correctly...
});
親ページには、iframe を示すリンクもあります。
<a href="#" id="showtip">Click to Show Iframe</a>
コンテンツ ページ スクリプト (content.html):
$(document).ready(function () {
$('#scroll').slimScroll({
height: 95,
railVisible: true,
alwaysVisible: true,
allowPageScroll: false
});
});
content.html のダミー コンテンツ:
<div id="scroll">This is the iframe content area <p>This is the iframe content area</p> p>This is the iframe content area</p> <p>This is the iframe content area</p> </div>
必要な JS リファレンス:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.js"></script>
<script type="text/javascript" src="https://raw.github.com/rochal/jQuery-slimScroll/master/slimScroll.min.js"></script>
それでおしまい。