JavaScript拖拽圖片一

來源:互聯網
上載者:User

本文示範如何將一張圖片用滑鼠拖拽到某個位置。

先看html代碼:

<html>  <head>    <title>drag demo</title>    <script src="js/drag.js" type="text/javascript"></script>  </head>  <body onload="init()">    <div id="icon1"  onmousedown="mouseDown(event)" style="left:1px; top: 1px; position: absolute;">      <img alt="" border="0" src="/img/2.jpg"></img>    </div>  </body></html>

注意,必須在style中指定三個屬性:

left,top屬性值可以為任意有效數值,position必須是absolute

為了便於擴充,將圖片封裝在div中,下面的JavaScript代碼其實是拖動div。

然後看看drag.js檔案:

function init() {window.document.onmousemove = mouseMove;window.document.onmouseup = mouseUp;window.document.ondragstart = mouseStop;}function mouseDown(e) {window.dragObj = e.currentTarget;if (window.dragObj !== null) {window.clickLeft = window.event.x - parseInt(dragObj.style.left);window.clickTop = window.event.y - parseInt(dragObj.style.top);window.dragObj.style.zIndex += 1;}}function mouseStop() {window.event.returnValue = false;}function mouseMove() {if (window.dragObj !== null ) {window.dragObj.style.left = window.event.x - window.clickLeft;window.dragObj.style.top = window.event.y - window.clickTop;}}function mouseUp() {window.dragObj = null;}

ondragStart事件被禁用。

主要就是mouseDown,mouseMove和mouseUp三個函數。

注意window.clickLeft和window.clickTop,它們是在點擊圖片的時候計算的,代表滑鼠在圖片裡的位置(距離圖片左上方的x和y值)。

它們用來保證在移動後滑鼠仍然停留在圖片的相對位置,通過將滑鼠的位置減去這兩個位移值。

相關文章

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。