目前我正在嘗試一些我想創建的圖像縮放/滾動腳本,是的我知道有插件那樣做,但我正在開發這個輕量級版本和學習。我現在的主要問題是,我不確定如何將圖像滾動限制爲僅限圖像的寬度和高度。我想設置我的腳本來阻止圖像滾動時,當用戶獲得ceartin寬度或圖像的高度,以停止滾動出格的圖像。下面是我的腳本的小提琴,任何建議或提示,以幫助我在正確的方向移動將不勝感激click here to go to fiddleJavascript滾動圖像邊緣檢測
1
A
回答
1
我建立了一個這樣一個前一陣子。
原則是你聽三個事件:mousedown
,mouseup
和mousemove
。
首先,最好使用div
,然後將圖像設置爲div
的background-image
。這使您可以使用background-position
在div
內移動圖像。我們將這稱爲div
#container
。
在mousedown
上,記錄了圖像背景位置的座標。在頁面加載時,這些將是0 0
(除非你已經告訴它是別的東西,我們假設你沒有)。當mousedown
事件被觸發時,這實際上是拖動操作的開始,因此您可能需要設置某種draggingStarted
變量。
對mousemove
,你想檢查draggingStarted
是否爲真。如果是,則計算鼠標光標移動的相對距離並相應地更改背景圖像座標。
對mouseup
您想要將draggingStarted
變量設置爲false。這是因爲如果mousemove
事件被觸發,圖像位置保持不變。
現在,您所問的問題是,迄今爲止給出的解決方案允許背景位置座標超過圖像,所以我們會得到部分空白的#container
。 這個問題的解決方案是記錄圖像的尺寸,然後當你計算移動背景圖像的距離有多遠時(在mousemove
函數中),檢查新的背景圖像座標是否在圖像的邊界。如果是,請不要允許!
相關問題
- 1. 圖像邊緣檢測
- 2. 如何測量邊緣檢測圖像邊緣的長度?
- 3. 圖像地圖邊緣檢測
- 4. Canny邊緣檢測器檢測到所述圖像的邊界
- 5. 圖像邊緣檢測和平滑?
- 6. 從邊緣檢測中分割圖像
- 7. C++中的圖像邊緣檢測
- 8. 檢測圖像中的邊緣
- 9. 圖像分割與邊緣檢測
- 10. 圖像處理中的邊緣檢測
- 11. 檢測圖像中的U形邊緣
- 12. 檢測滾動查看器的滾動邊緣
- 13. SQLITE邊緣檢測
- 14. VHDL邊緣檢測
- 15. Canny邊緣檢測
- 16. qTip2邊緣檢測
- 17. Python大圖像邊緣檢測使用Scikit圖像和GDAL
- 18. 矢量圖像的圖像比較(基於邊緣檢測)?
- 19. opencv:操縱邊緣檢測像素
- 20. 使用CIImage「內部」(像邊緣)檢測?
- 21. 圖像檢索 - 邊緣直方圖
- 22. 移動時檢測屏幕邊緣UIImageView
- 23. 在jQuery Mobile中檢測邊緣滑動
- 24. 檢測圖片框邊緣C#
- 25. 單色圖片邊緣檢測 - Java
- 26. 檢測圖中的相互邊緣
- 27. 在滾動視圖中淡出邊緣
- 28. 邊緣檢測 - 檢測不良
- 29. WPF圖像邊緣
- 30. 邊緣檢測和分割
謝謝你,現在會給我一個開始,所以你認爲我使用di來保存絕對位置的圖像,拖動是導致圖像頂部和左側pos改變的圖像不是一個好的方法作爲圖像爲div的bg圖像? – Lawrence
嗯。那麼,你當然可以嘗試這種方法,但我已經成功使用'background-image'。您需要將'div'的'position'設置爲'relative',然後將圖像絕對放置在其中。你需要隱藏圖像溢出div,所以在div上使用'overflow:hidden'。 – Alex
這正是我所愛,你應該檢查我的例子上面,按照鏈接 – Lawrence