DIV内でiScroll4を実行していますが、DIVの高さが動的に生成され、iScrollを台無しにします
<script src="js/iscroll/iscroll.js?v4"></script>
<script>
var myScroll;
function loaded() {
myScroll = new iScroll('wrapper-sidebar-left');
myScroll = new iScroll('wrapper-sidebar-right');
myScroll = new iScroll('wrapper');
}
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', loaded, false);
</script>
DIVを含むiScrollsにハードコードされた高さを指定すると、正常に機能します。
しかし、それはjavascriptによって作成された動的な高さです。そしてiScrollはそれを無視します。ただし、デスクトップブラウザでビューポートのサイズを調整すると、ビューポートのサイズが機能します。
これは、動的な高さを作成するスクリプトです。
<script>
$(document).ready(function() {
$("#latest-tweet").tweet({
count: 1,
username: ["motocomdigital"],
loading_text: "searching twitter..."
}).bind("loaded", function(){
var tweetheight = $("#tweet-area").height();
$("#sidebar-wrapper").css({ bottom: tweetheight });
});
});
</script>
Twitterスクリプトを無視します-それは、含まれているDIVの高さを決定しているバインドされた関数の後です。
DIVを含む「スクローラー」の高さは、次のCSS値によって決定されます:top:0pxおよび「bottom」値。ただし、一番下のCSS値は動的です。
ここでライブプロジェクトを参照してください-これは壊れているときです。メニューをクリックして、サイドバーに壊れたスクローラーを表示します。
次に、以下の同じプロジェクトを参照してください。ただし、ヘッドにハードコードされた下部のCSS値が追加され、スクリプトが削除されています。そして、これはうまくいきます。
これは、iScrollが一番下のCSS値を無視していることを意味します(ただし、ビューポートサイズを調整すると機能し始めますが、デバイスではうまくいきません)
どんな助けでも大歓迎です
ありがとう、ジョシュ
更新、これは機能します-しかし、それは毎回機能しますか?
<script>
var myScroll;
function loaded() {
setTimeout(function () {
myScroll = new iScroll('wrapper-sidebar-left', {
scrollbarClass: 'sub-scrollbar',
useTransform: false,
onBeforeScrollStart: function (e) {
var target = e.target;
while (target.nodeType != 1) target = target.parentNode;
if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA')
e.preventDefault();
}
});
myScroll = new iScroll('wrapper-sidebar-right');
}, 1000);
myScroll = new iScroll('wrapper');
}
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', loaded, false);
</script>