0

iScroll4 を使用した PhoneGap アプリケーションがあります。基本的には 2000 個のリスト アイテムを使用した iScroll の例です。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<title>iScroll demo: iOS Perfect Scrollbar</title>

<link rel="stylesheet" type="text/css" href="css/general.css">
<link rel="stylesheet" type="text/css" href="css/scrollbar.css">

<script src="js/jquery-1.7.1.js"></script>
<script src="js/iscroll.js"></script>
<script src="js/alldata.js"></script>

<script type="text/javascript">

var myScroll;
function loaded() {
    myScroll = new iScroll('wrapper', 
    { 
        scrollbarClass: 'myScrollbar',
        hideScrollbar:false,
        /*onBeforeScrollStart: function (e) { return false; }*/
    });
}

document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);

document.addEventListener('DOMContentLoaded', loaded, false);

</script>

<script>
    function initList(){
        for(var i=0; i<allData.length; i++){
            var line = "<li style='color:#"+ allData[i].Color + ";'>" + allData[i].EventName + "</li>"
            $("#thelist").append(line);
        }
    }

    $(document).ready(function(){
        initList();
        initList();
        initList();
        initList();
        //alert("Finished!");
    });
</script>

</head>
<body>
<div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
<div id="wrapper">
    <div id="scroller">
        <ul id="thelist">
        </ul>
    </div>
</div>

<div id="footer"></div>

</body>
</html>

注:変数allDataは、500 個のオブジェクトを含む JSON 配列です。
編集: Motorola Atrix (2.3.3) と Galaxy 3 では正常に動作
しますが、Galaxy 2 (4.2.2) と Galaxy3 では 1000 個のリスト アイテムの後、奇妙な Motorola Atrix は Android バージョンが低く、Web です-ツールキットが遅い

その問題を解決する方法はありますか?

4

1 に答える 1

1

データがロードされたら、リストを更新するだけです。

function initList(){
        for(var i=0; i<allData.length; i++){
            var line = "<li style='color:#"+ allData[i].Color + ";'>" + allData[i].EventName + "</li>"
            $("#thelist").append(line);
        }

        myScroll.refresh();
    }
于 2013-07-09T12:44:36.467 に答える