程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> .Net裡漂浮窗口拖動的實現方法

.Net裡漂浮窗口拖動的實現方法

編輯:關於.NET

.Net裡漂浮窗口拖動的實現方法。另外還提到一個 jquery 的插件 easydrag,這個插件處理拖放還算好用,但自從我上次修改後,現在又發現了它的另一個 bug. 在應用了 easydrag 的頁面中,某種情況下會在頁面加載時出現“找不到對象”的腳本錯誤。經過仔細檢查,發現問題在於 easydrag 中過早的綁定了 document 的 mousemove 和 mouseup 事件,而有時候腳本加載的時候 document 還沒有 ready, 自然就會“找不到對象”了。

  解決問題的辦法很簡單,我們推遲這兩個事件的綁定即可:

以下為引用的內容:
  function mousemove_handler(e){ 
  // 
  } 
  function mouseup_handler(e){ 
  // 
  // 解除鼠標移動和彈起事件的處理函數綁定 
  $(document).unbind("mousemove", mousemove_handler).unbind("mouseup", mouseup_handler); 
  } 
  $("#拖動目標").mousedown(function(){ 
  // 
  // 添加鼠標移動和彈起事件的處理函數綁定 
  $(document).mousemove(mousemove_handler).mouseup(mouseup_handler); 
  })

  注意上面代碼中 unbind 事件也是很必要的。

  另外推薦一個很好的 jquery 插件 —— background iframe.

  以前我們寫網頁中的日歷控件之類的,為了遮住 <select> 的效果。

  調用方式也非常簡單:

以下為引用的內容:
<div>  
  <iframe></iframe>  
</div>

  來加載彈出的內容。但是這樣有個問題,就是加載的文檔和當前文檔不是一個頁面,那麼在 ASP.Net 等後台代碼裡,就不是很方便做數據綁定,因為多了一個頁面,就需要多出很多不必要的變量傳遞工作。 

  而 background iframe 的原理是,你可以在當前頁面的 <div></div> 裡直接寫彈出內容,它負責動態的在這個 div 中插入一個透明的 iframe 作為背景的遮罩,這樣也一樣能達到遮擋 <select> 的效果。  
調用方式也非常簡單: 

以下為引用的內容:
$("#some_layer").bgiframe(); 

  這樣就可以了。 

  這裡聯想到,編程真的是思路最重要。記得以前看 meizz 的日歷控件代碼,通過 iframe 的方式寫入,實現很復雜,現在如果換了 background iframe 這個思路,問題很簡單就解決了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved