2012-05-11 12 views
2

私はoverflow: hidden divを持っています。ユーザーがクリックして背景をドラッグできるようにしています。このスペースにはリンクやボタンもあります。CSSでのカーソルの上書き

これは、私はCSSのために何をすべきかです:

#div-grabscroll {  
    cursor: url(../img/openhand.cur), move; 
} 
#div-grabscroll:active { 
    cursor: url(../img/closedhand.cur), n-resize; 
} 

これは素晴らしい作品が、何が起こるかは、マウスが終わる場合は、ドラッグ中にはpointerボタンの上に(によるスクロールの限界に到達する)移動していることカーソルが私のclosedhandカーソルよりも優先されます。

希望の動作は、divでマウスを操作している間、カーソルをclosedhandのままにします。

のすべてについて、CSSを変更せずにカーソルをオーバーライドする方法はありますかマウスが移動する可能性がありますか?私は!important:activeスタイルで試しましたが、それはしませんでした。

+1

どのブラウザが使用していますか? – SomeKittens

+1

コードの実際のバージョンを表示できますか?移動を開始するときは、ドラッグが終了したときに削除される特別なクラスを可動divに追加する必要があります。このクラスをCSSで使用して、カーソルスタイルをオーバーライドすることができます。 – kapa

+0

@bažmegakapadiv内の要素は、オーバーライドされたカーソルを継承できないようです。 –

答えて

1

Answer/Question:グラブスクロールdivの上に座っているが、その背後に何も隠さないように背景やタイプの内容がない重複したdivがあり、カーソルを設定するとどうなりますか?これを手にする。

zインデックスはこのように重要度を上書きしますか?

これは意味がありますか?

効果的に、レイヤードオーダーでgrabscroll - button - opaque grabscrollがあります。

+0

私は、IEがフォームコントロールのz-indexを尊重する良い仕事をしていないので、IEでなく、 'div'が仕事をするとは思わない。しかし、あなたは 'iframe'で同じことをすることができます。 –

+1

私はスクロールエリア(ドラッグが進行中でなければ 'display:none'です)の上に置かれた透明なdivが十分に良い解決策だと思います。それはかなり賢いです。 IE <9は私の優先事項ではないので、これはかなりうまくいくと思います。 –

+0

@StevenLu:モックアップしてIEで試してみましょう(最低のバージョンをサポートしたいものであれば)、 'div'だけで十分です。私はそれがあるとは思わない。 –

1

これは「モーダル」ダイアログボックスを作成するのと非常によく似た問題です。おそらく同じような解決策があります:スクロールしているコンテンツの上にiframeを配置して、スクロールの持続時間の間、コンテンツよりもzインデックス順に表示されます。これは、IEで(少なくとも)フォームコントロールがZ-indexによく従わない傾向があるからです。これが「ライトボックス」スタイルのものがこれを行う理由です。iframe shim thing。

Here's an answer I gaveここでの別の質問はiframeシムの基礎を示しています。その場合、それはモーダル目的ですが、コンセプトとほとんどのコードが適用されます。

+0

IEがこれを強制するなら、私は悲しくなるでしょう。私はIE9が適切に透明なdivを処理することができるすべての希望を持っています。私はあなたに戻ってきます...私がそれを助けることができれば、そのようなiframeの忌み嫌いを私のページに貼り付けることを避けたいと思うだけです。 –

+0

@StevenLu:良いニュース、あなたはIE9(http://jsbin.com/uvovin/2)でいいと思うし、IE8でももっと良いニュースだ。 (これは重要なことです。なぜなら、XPユーザーはIE8を越えることができず、何年も前からXPユーザーがたくさんいるからです。 –

関連する問題