誰かが書いた古い jQuery コードをデバッグしようとしています。iPad 以外のすべてのブラウザで正常に動作します。目標は、2 つの別個の div があることです。ヘッダー行と、(テーブル内の) 多くの本文行を含む div です。
フロントエンド コードのサンプルを次に示します (私が書いたわけではありません。セマンティックな問題がいくつかあることはわかっています)。
<div class="detailsScroller" id="headerDetailsScroller" style="overflow:hidden;">
<div class="scrollingDetailsContainer" style="width: 935px; ">
<table class="alternating scrollingDetails" id="headerScrollingDetails">
<thead>
<tr class="even">
<td>[Header Rows Here]</td>
…
</tr>
</thead>
</table>
</div>
</div>
<div class="detailsScroller">
<div class="scrollingDetailsContainer" style="width: 935px; ">
<table class="alternating scrollingDetails" id="scrollingDetailsTable">
<tbody>
<tr>
<td>[Content Here]</td>
</tr>
<tr>
…
</tr>
</tbody>
</table>
</div>
</div>
したがって、 の 2 番目のセット<div>s
がスクロールされると、最初のセットも一緒にスクロールする必要があります。左または右に移動する可能性があります。これは、次の jQuery コードによって実現されます。
$("#fakeHorizontalScroller").scroll(function(thing) {
$("#headerDetailsScroller").scrollLeft(($(thing.target).scrollLeft()));
$("div.detailsScroller").scrollLeft(($(thing.target).scrollLeft()));
});
私の調査で見つけた唯一のことは、.scrollLeft が Mobile Safari で機能しないことです。適切な代替手段、またはこれにアプローチする別の方法はありますか? 私が見つけたすべての解決策は、アニメーションをイベントの特定の場所に強制的に移動させることです。<div>s
左右にスクロールすると、両方がお互いを追跡したいだけです。