0
<html>
<head>
  <script type="text/javascript" src="js/jquery.js"></script>
  <script type="text/javascript" src="js/iscroll.js"></script>
  <script type="text/javascript" src="js/jquery-ui.min.js"></script>
  <link rel="stylesheet" type="text/css" href="js/jquery-ui.css" />
  <link rel="stylesheet" type="text/css" href="css/drag.css" />
  <script type="text/javascript">
    $(document).ready(function(){
      var myScroll;
      function loaded() {
        myScroll = new iScroll('wrapper');
      }
      document.addEventListener('DOMContentLoaded', loaded, false);
    });
  </script>
</head>
<body>
<div id="wrapper" style="overflow: hidden; ">
  <div id="scroll" style="-webkit-transition: -webkit-transform 0ms; -webkit-transform-origin: 0px 0px; -webkit-transform: translate3d(0px, 0px, 0px);" >
  <ul>
    <li>a</li>
    <li>b</li>
    <li>c</li>
    <li>c</li>
    <li>c</li>
    <li>c</li>
    <li>c</li>
    <li>c</li>
    <li>c</li>
    <li>c</li>
    <li>c</li>
    <li>c</li>
    <li>c</li>
    <li>c</li>
    <li>d</li>
  </ul>
</div>
<div class="myScrollbarV" style="pointer-events: none; -webkit-transition: opacity 0ms 0ms; overflow: hidden; opacity: 1; ">
  <div style="pointer-events: none; -webkit-transition: -webkit-transform 0ms cubic-bezier(0.33, 0.66, 0.66, 1); height: 40px; -webkit-transform: translate3d(0px, 221px, 0px); ">
  </div>
</div>
</div>
</body>
</html>

上記はiscroll4のHTMLコードであり、次のCSSを使用しています。

.wrapper{
  position: absolute;
  z-index: 1;
  top: 45px;
  bottom: 48px;
  left: 0;
  width: 100%;
  background: #AAA;
  overflow: auto;
}
.scroll{
  position: relative;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
  float: left;
  width: 100%;
  padding: 0;
}
.div2{
  list-style-type:none;
}
.myScrollbarV {
  position:absolute;
  z-index:100;
  width:8px;bottom:7px;top:2px;right:1px
}
.myScrollbarV > div {
  position:absolute;
  z-index:100;
  width:100%;
  /* The following is probably what you want to customize */
  background:-webkit-gradient(linear, 0 0, 100% 0, from(#f00), to(#900));
  background-image:-moz-linear-gradient(top, #f00, #900);
  background-image:-o-linear-gradient(top, #f00, #900);
  border:1px solid #900;
  -webkit-background-clip:padding-box;
  -moz-background-clip:padding-box;
  -o-background-clip:padding-box;
  background-clip:padding-box;
  -webkit-box-sizing:border-box;
  -moz-box-sizing:border-box;
  -o-box-sizing:border-box;
  box-sizing:border-box;
  -webkit-border-radius:4px;
  -moz-border-radius:4px;
  -o-border-radius:4px;
  border-radius:4px;
  -webkit-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
  -moz-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
  -o-box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
  box-shadow:inset 1px 1px 0 rgba(255,255,255,0.5);
}

その赤いスクロールを表示することはできますが、スクロールすることはできません。誰かが私を助けてくれますか?iscrollのCSS部分に問題はありますか?スクロールを実装するための参照としてこれを使用しています。

4

1 に答える 1

0

まず最初に、宣言する必要はありvar myScroll;ません。実際、宣言する必要はありません。iScroll をウィンドウ オブジェクトにバインドして、必要に応じて割り当てを解除し、その動作を調べたりデバッグしたりできるようにする必要があります。

ブラウザーに JavaScript ブレークポイントを設定し ([次で中断] ボタンが機能するはずです)、window.myScroll オブジェクトを調べます。手動で設定しない限り、iScroll はそのスクローラーまたはラッパーの計算された高さがゼロであると判断することがあるため、vScroll と hScroll を単独で無効にします。

window.myScroll.refresh();CSS を微調整した後、javascript コンソールで手動で実行してみてください。最終的にスクロールが開始されます。次に、ブラウザーで行った CSS の変更を drag.cs​​s ファイルに加えます。

(PS: iScroll が自動的に適用するため、必要に応じてスクローラーとラッパーからインライン スタイルを削除することもできます)

于 2012-06-29T03:55:19.080 に答える