【基本原理】
圖片預(yù)覽主要包括兩個部分:從file表單控件獲取圖像數(shù)據(jù),根據(jù)數(shù)據(jù)顯示預(yù)覽圖像。程序的file和img屬性就是用來保存file控件和顯示預(yù)覽圖像的容器的,而img還必須是img元素。
程序有以下幾種預(yù)覽方式:
- simple模式:
直接從file的value獲取圖片路徑來顯示預(yù)覽,適用于ie6;
- filter模式:
通過selection獲取file的圖片路徑,再用濾鏡來顯示預(yù)覽,適用于ie7/8;
- domfile模式:
調(diào)用file的getAsDataURL方法獲取Data URI數(shù)據(jù)來顯示預(yù)覽,適用于ff3;
- remote模式:
最后的辦法,把file提交后臺處理后返回圖片數(shù)據(jù)來顯示預(yù)覽,全適用。
程序定義時就自動根據(jù)瀏覽器設(shè)置MODE屬性:
ImagePreview.MODE = $$B.ie7 || $$B.ie8 ? "filter" : $$B.firefox ? "domfile" : $$B.opera || $$B.chrome || $$B.safari ? "remote" : "simple";
如果用能力檢測會比較麻煩,所以只用了瀏覽器檢測。 由于瀏覽器對應(yīng)的默認(rèn)模式是不會變的,這個值直接會保存到函數(shù)屬性中作為公用屬性。 ps:ie6也可以用filter模式,不過它有更好的simple模式。
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁 JavaScript 圖片預(yù)覽效果 [1] 下一頁 JavaScript 圖片預(yù)覽效果 [3]
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|