中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術文檔 > 網(wǎng)頁制作 > JavaScript 拖放效果分析
Web標準在中國 回到列表 焦點圖片輪換第三季——iFocus
 JavaScript 拖放效果分析

作者:cloudgamer 時間: 2008-11-24 文檔類型:原創(chuàng) 來自:藍色理想

第 1 頁 JavaScript 拖放效果分析 [1]
第 2 頁 JavaScript 拖放效果分析 [2]
第 3 頁 JavaScript 拖放效果分析 [3]
第 4 頁 JavaScript 拖放效果分析 [4]
第 5 頁 JavaScript 拖放效果分析 [5]

清除選擇

ie在設置setCapture之后內(nèi)容選擇都會被禁止,但也因此不會清除在設置之前就已經(jīng)選擇的內(nèi)容,而且設置之后也能通過其他方式選擇內(nèi)容,
例如用ctrl+a來選擇內(nèi)容。
ps:onkeydown、onkeyup和onkeypress事件不會受到鼠標捕獲影響。
而ff在mousedown時就能清除原來選擇的內(nèi)容,但拖動鼠標,ctrl+a時還是會繼續(xù)選擇內(nèi)容。
不過在丟棄了系統(tǒng)默認動作之后,這樣的選擇并不會對拖放操作造成影響,這里設置主要還是為了更好的體驗。

以前我用禁止拖放對象被選擇的方法來達到目的,即ie中設置拖放對象的onselectstart返回false,在ff中設置樣式MozUserSelect(css:-moz-user-select)為none。
但這種方法只能禁止拖放對象本身被選擇,后來找到個更好的方法清除選擇,不但不影響拖放對象的選擇效果,還能對整個文檔進行清除:

  • ie: document.selection.empty()
  • ff: window.getSelection().removeAllRanges()

為了防止在拖放過程中選擇內(nèi)容,所以把它放到Move程序中,下面是兼容的寫法:

window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();

margin

還有一個情況,當拖放對象設置了margin,那么拖放的時候就會錯位(給SimpleDrag的拖放對象設置margin就可以測試)。
原因是在Start程序設置_x和_y時是使用offset獲取的,而這個值是包括margin的,所以在設置left和top之前要減去這個margin。
但如果在Start程序中就去掉margin那么在Move程序中設置范圍限制時就會計算錯誤,
所以最好是在Start程序中獲取值:

this._marginLeft = parseInt(CurrentStyle(this.Drag).marginLeft) || 0;
this._marginTop = parseInt(CurrentStyle(this.Drag).marginTop) || 0;

其中CurrentStyle是用來獲取最終樣式,詳細看這里的最終樣式部分。

在Move程序中設置值:

this.Drag.style.left = iLeft - this._marginLeft + "px";
this.Drag.style.top = iTop - this._marginTop + "px";

要注意margin要在范圍修正只后再設置,否則會錯位。

【透明背景bug】

在ie有一個透明背景bug(不知算不算bug),可以用下面的代碼測試:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html>
<body>
<div onmousedown="alert(1)" style="border:10px solid #C4E3FD; width:50px; height:50px;position:absolute;"> </div>
</body>
</html>

會發(fā)現(xiàn)背景點擊觸發(fā)不了事件,不過點擊邊框的話還是可以觸發(fā)。
為什么呢?再用下面的代碼測試:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html>
<body style="border:1px solid #FF0000;">
<style>div{width:100px; height:100px; border:1px solid #000;} </style>
<div style="position:relative;">
<div onclick="alert(1)" style="border-color:#00f;margin:50px;"> </div>
<div onclick="alert(2)" style="border-color:#6f0;position:absolute;top:50px;"> </div>
</div>
</body>
</html>

應該能看出個大概了,下面兩個div超出body(即超出紅色框)的部分就觸發(fā)不了事件。
也就是說當觸發(fā)事件的點,在body以外,而背景又是透明的,那么就會誤認為觸發(fā)點是在了body外空白的地方,所以觸發(fā)不了事件。
那解決的方法就是,使事件觸發(fā)點保持在body內(nèi),或者設置一個非透明背景。

那程序中只要給拖放對象設一個背景色就可以解決了,但有時需求正好是要透明(例如切割效果),那怎么辦呢?
首先想到的是加上背景色后設置完全透明,但這樣連邊框,容器內(nèi)的對象等都完全透明了,這個不好。
我想到的一個解決方法是在容器里面加一個層,覆蓋整個容器,并設置背景色和完全透明:

with(this._Handle.appendChild(document.createElement("div")).style){
width = height = "100%"; backgroundColor = "#fff"; filter = "alpha(opacity:0)";
}

當發(fā)現(xiàn)程序有這個bug出現(xiàn),把程序可選參數(shù)Transparent設為true就會自動插入這樣一個層了。
各位如果有更好的方法請多多指點。

暫時就研究到這里,不過還有iframe,滾屏等這些還沒考慮到,等以后有需要了再來研究拉。

經(jīng)典論壇交流
http://bbs.blueidea.com/thread-2896954-1-1.html

本文鏈接:http://m.95time.cn/tech/web/2008/6292.asp 

出處:藍色理想
責任編輯:bluehearts

上一頁 JavaScript 拖放效果分析 [4] 下一頁

◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。

相關文章 更多相關鏈接
焦點圖片輪換第三季——iFocus
不間斷滾動圖片Javascript特效講解
JavaScript的陷阱
用javascript修復瀏覽器中頭痛問題
Javascript利用閉包循環(huán)綁定事件
關鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設計比賽 網(wǎng)頁制作 web標準 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點最新 站點最新列表
周大福“敬•自然”設計大賽開啟
國際體驗設計大會7月將在京舉行
中國國防科技信息中心標志征集
云計算如何讓安全問題可控
云計算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機會
阿里行云
云手機年終巨獻,送禮標配299起
阿里巴巴CTO王堅的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機主題設計大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:5/51個記錄/頁 轉到 頁 共5個記錄

藍色理想版權申明:除部分特別聲明不要轉載,或者授權我站獨家播發(fā)的文章外,大家可以自由轉載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權歸我站和作者共有。

轉載要求:轉載之圖片、文件,鏈接請不要盜鏈到本站,且不準打上各自站點的水印,亦不能抹去我站點水印。

特別注意:本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯(lián)系,版權歸原作者所有,文章若有侵犯作者版權,請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項有關法律法規(guī)
·承擔一切因您的行為而直接或間接導致的民事或刑事法律責任
·本站評論管理人員有權保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權在網(wǎng)站內(nèi)轉載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設計》
犀利開發(fā)—jQuery內(nèi)核詳解與實踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2