2016-02-04 32 views
2

我在使用cursorhack時遇到了一些麻煩。jquery - 停止鼠標鎖定位置:從擴展頁面絕對?

在我的網站上,我有一個「祕密」頁面,出於某些原因,我必須在該頁面上有一個動畫光標。

這個動畫光標實際上是一個位置:絕對div位於體內,由CSS動畫支持。大多數情況下,這是有效的。我仍然需要找出如何禁用遊標本身,但它的工作原理。

但是,無論何時將鼠標移到視口的右側/底部,頁面都會開始延伸。這是因爲div是一個絕對div,所以當它進入右側/底部時,頁面擴展爲允許您查看剛剛離開視口的光標部分。

本質上,位於body標籤中的絕對div位於視口之外,這導致滾動條延伸的問題。自然,這不是我想要發生的事情。

有什麼辦法可以阻止這種情況發生?

編輯:這裏是我正在使用的代碼片段。在情況下,它可以幫助:

$(document).mousemove(function(e){ 
$("#Cursor").css({left:e.pageX, top:e.pageY}); 
}); 

EDIT2:一個視覺參考,這幾乎等同於我的設置:http://jsfiddle.net/BfLAh/1/ 嘗試將鼠標移動到窗口的底部/右,你會看到的問題。

回答

1

嘗試使用transform屬性將translate元素置於正確位置 - AFAIK「定位」視口之外的元素,使用該元素不應增加文檔測量值。

如果你看到它,你的光標元件位於0/0開始與(如通過將
#Cursor{position:absolute;top:0;left:0;}在樣式表),那麼我認爲你應該能夠只取pageX/pageY值是這樣的翻譯參數

$("#Cursor").css({ 
    transform: "translate("+e.pageX+"px, "+e.pageY+"px)" 
}); 
+0

不幸的是,它仍然導致頁面展開。作爲參考,這幾乎與我的設置相同:http://jsfiddle.net/BfLAh/1/ – Kizzycocoa

+1

嗯。也許把圖像放到一個固定位置的容器中,可以拉伸視口,並且有'overflow:hidden'設置? http://jsfiddle.net/BfLAh/2541/(我在這裏使用了'pointer-events:none'來阻止容器可能干擾與它下面的頁面元素的交互 - 在舊版瀏覽器中如何實現這些功能, t支持'pointer-events',你可能要檢查一下。) – CBroe

+0

這已經解決了遊標擴展頁面的問題,但是新問題是當向下滾動時,遊標sorta跳到你的鼠標之外。我認爲它搞亂了「+ e.pageX +」等代碼! – Kizzycocoa