0

私は<div>いくつかのコンテンツを持っています。このdivにid属性、を与え、この小さなスクリプトを介してoDIV関数をイベントにバインドしました。onscroll

window.onload = {
    document.getElementById("oDiv").onscroll = function() {
        document.getElementById("tooltip").className = "sTooltip";
        this.onscroll = null;
    };  
}

divに簡単なCSSを追加して、垂直スクロールバーが表示されるようにしました。コンテンツはかなり伸びており、スクロールするものがたくさんあります。

#oDiv {
     border: 1px solid black;
     float: left;
     height: 300px;
     overflow: auto;
     overflow-x: hidden;
     padding: 0;
     padding-right: 40px;
     clear: left;
}

とにかく、ユーザーがスクロールしようとした場合、ツールチップを表示して、スクロールする必要のあるものの一部を非表示にするフィルターオプションがあることをユーザーに思い出させたいと思います。

Firefoxや最近のブラウザでは、問題なく動作しました。

私が抱えている問題は、IE6をサポートする必要があることです。このアプローチは、IE6でも機能しますが、わずかな問題があります。左クリックしてスクロールバーを「つかむ」と、イベントが発生したときにドラッグを続けると、スクロールバーが途中で解放されます。ユーザーにドラッグバーをもう一度クリックするように強制します。マイナーな問題ですが、理由を知りたいですか?

スクロールが開始されたときにのみ、このイベントを1回だけ発生させるつもりです。

ライブラリまたはフレームワークがこの奇妙な動作を解決した場合、それらがこれに対処しているソースを示していただけますか?

また、「スクロールを停止したポイント」を決定するためのタイミングライブラリなどは、これにはかなりやり過ぎだと思います。

4

1 に答える 1

1

IEが「ツールチップ」のレンダリングを一時停止していることが原因である可能性があります。display:noneツールチップで使用する代わりに、を使用してvisibility:hiddenからに切り替えてみてくださいvisibility:visible

于 2012-05-02T21:04:31.780 に答える