• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 用Javascript實現鼠標拖拽網頁表單

    發表于:2007-06-21來源:作者:點擊數: 標簽:
    下一頁 1 2 3 4 怎么用javascript進行拖拽 本文譯自: http://www.webreference.com/programming/javascript/mk/column2/index.html 所有版權歸原文所有 Javascript的特點是dom的處理與網頁效果,大多數情況我們只用到了這個語言的最簡單的功能,比如制作圖

    下一頁 1 2 3 4 

       

    怎么用javascript進行拖拽

      本文譯自:http://www.webreference.com/programming/javascript/mk/column2/index.html
      所有版權歸原文所有

      Javascript的特點是dom的處理與網頁效果,大多數情況我們只用到了這個語言的最簡單的功能,比如制作圖片輪播/網頁的tab等等,這篇文章將向你展示如何在自己的網頁上制作拖拽.

      有很多理由讓你的網站加入拖拽功能,最簡單的一個是數據重組.例如:你有一個序列的內容讓用戶排序,用戶需要給每個條目進行輸入或者用select選擇,替代前面這個方法的就是拖拽.或許你的網站也需要一個用戶可以拖動的導航窗口!那么這些效果都是很簡單:因為你可以很容易的實現!

      網頁上實現拖拽其實也不是很復雜.第一你需要知道鼠標坐標,第二你需要知道用戶鼠標點擊一個網頁元素并實現拖拽,最后我們要實現移動這個元素。

     獲取鼠標移動信息

      第一我們需要獲取鼠標的坐標.我們加一個用戶函數到document.onmousemove就可以了:

    function mouseMove(ev){
     ev           = ev || window.event;
     var mousePos = mouseCoords(ev);
    }

    function mouseCoords(ev){
     if(ev.pageX || ev.pageY){
      return {x:ev.pageX, y:ev.pageY};
     }
     return {
      x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
      y:ev.clientY + document.body.scrollTop  - document.body.clientTop
     };
    }

      你首先要聲明一個e.net對象.不論何時你移動鼠標/點擊/按鍵等等,會對應一個event的事件.在Internet Explorer里event是全局變量,會被存儲在window.event里. 在firefox中,或者其他瀏覽器,event事件會被相應的自定義函數獲?。斘覀儗?FONT color=#ff0000>mouseMove函數賦值于document.onmousemove,mouseMove會獲取鼠標移動事件.

      (ev = ev || window.event) 這樣讓ev在所有瀏覽器下獲取了event事件,在Firefox下"||window.event"將不起作用,因為ev已經有了賦值.在MSIE下ev是空的,所以ev將設置為window.event.

      因為我們在這篇文章中需要多次獲取鼠標坐標,所以我們設計了mouseCoords這個函數,它只包含了一個參數,就是the event.

      我們需要運行在MSIE與Firefox為首的其他瀏覽器下.Firefox以event.pageX和event.pageY來代表鼠標相應于文檔左上角的位置.如果你有一個500*500的窗口,而且你的鼠標在正中間,那么paegX和pageY將是250,當你將頁面往下滾動500px,那么pageY將是750.此時pageX不變,還是250.

      MSIE和這個相反,MSIE將event.clientX與event.clientY來代表鼠標與ie窗口的位置,并不是文檔.當我們有一個500*500的窗口,鼠標在正中間,那么clientX與clientY也是250,如果你垂直滾動窗口到任何位置,clientY仍然是250,因為相對ie窗口并沒有變化.想得到正確的結果,我們必須加入scrollLeft與scrollTop這兩個相對于文檔鼠標位置的屬性.最后,由于MSIE并沒有0,0的文檔起始位置,因為通常會設置2px的邊框在周圍,邊框的寬度包含在document.body.clientLeft與clientTop這兩個屬性中,我們再加入這些到鼠標的位置中.

      很幸運,這樣mouseCoords函數就完成了,我們不再為坐標的事操心了.

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>