2012-05-11 219 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žmegakapa看來div內的元素將無法繼承我重寫的遊標。 –

回答

1

回答/問題:如果您有一個位於grabscroll div頂部的重複div,但沒有任何背景或任何類型的內容以免隱藏任何背後的東西,然後將光標設置爲親自動手。

z-index是否以這種方式覆蓋重要性?

這是否有意義?

有效地,你有grabscroll - 按鈕 - 不透明grabscroll在該分層的順序。

+0

我不認爲'div'會完成這項工作,至少在IE上不行,因爲IE在表單控件方面並不擅長z-index。但是你可以用'iframe'做同樣的事情。 –

+1

我認爲一個透明的div位於我的滾動區域之上(除非拖動正在進行,否則它是'display:none')是一個很好的解決方案。這很聰明。 IE <9對我來說並不重要,所以我認爲這會工作得很好。 –

+0

@StevenLu:模擬它並在IE上嘗試它(無論您想支持的最低版本是什麼),只要確保'div'就足夠了。我懷疑它會是什麼。 –

1

這是創建「模態」對話框的一個非常類似的問題,它可能會有類似的解決方案:我認爲您必須創建一個iframe定位在您滾動的內容上,使其更高在滾動的持續時間內以z-索引順序比內容。這是因爲IE(至少)表單控件往往不會順從z-索引,這就是爲什麼「lightbox」風格的東西能夠做到這一點的原因。

Here's an answer I gave此問題上的另一個問題,它演示了iframe墊片的基礎知識。在這種情況下,它是爲了模態的目的,但是這個概念和大部分代碼都適用。

+0

如果IE強迫我這樣做,我會感到難過。我希望IE9能夠正確處理透明的div。我會盡快給您回覆...只是我非常想避免把這樣的iframe可憎的東西粘在我的頁面上,如果我能幫到的話。 –

+0

@StevenLu:好消息,看起來你對IE9(http://jsbin.com/uvovin/2)還好,以及 - 更好的消息 - 即使在IE8上也是如此。 (這一點很重要,因爲XP用戶無法超越IE8,並且XP用戶在未來幾年會有**很多**)。 –