很久以前就看過一個3DRoom效果,是用復雜 " /> 亚洲一区二区三区777,538视频在线,国产精品爽爽爽爽爽爽在线观看

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

JavaScript 圖片3D展示空間(3DRoom)

  一般的平面效果,通過改變水平和垂直坐標就能實現,再加上深度,就能在視覺上的產生3D(三維)的效果。程序就是模擬這樣一個三維空間,里面的圖片會根據三維坐標顯示在這個空間。
很久以前就看過一個3DRoom效果,是用復雜的計算實現的。在上一篇圖片變換研究過css3的transform之后,就想到一個更簡單的方法來實現。
  兼容:ie6/7/8, firefox 3.6.8, opera 10.6, safari 5.0.1, chrome 5.0

  實現原理

  3D效果的關鍵,是深度的實現。把3D容器看成一個由多個不同深度的層組成的空間,這些層的尺寸默認跟容器一樣。層里面放了該深度的圖片,并且各個層會根據深度的變化做縮放變換,從視覺上產生深度差。縮放變換的比例按照最近點為1,最遠點為0,逐漸變化。關鍵的地方是層里面圖片的尺寸和坐標必須跟著層同時變換,這個通過css3的transform很簡單就能實現。這樣圖片只需設置好尺寸再相對層定好位就行了,避免了隨深度變化要不斷調整圖片尺寸和定位的麻煩。
  圖片加載

  在程序初始化之后,就可以調用add方法來添加圖片。add方法有兩個參數:圖片地址和參數對象,還會返回一個圖片操作對象。操作對象包含以下屬性和方法,方便對圖片進行操作:
  img: 圖片元素
  src: 圖片地址
  options: 參數對象
  show: 顯示圖片方法
  remove: 移除圖片方法
  其中options可以設置如下屬性:
  屬性:    默認值//說明
  x:  0,//水平位移
  y:  0,//垂直位移
  z:  0,//深度
  width: 0,//寬度
  height: 0,//高度
  scaleW: 1,//寬度縮放比例
  scaleH: 1//高度縮放比例
  其中x、y分別是水平和垂直坐標的位移參數,坐標原點在容器底部中間,水平坐標向右,縱坐標向上,單位是px。而z是深度,用于比例的計算,方向由近點到原點。
  坐標系如下圖:
  圖片加載成功后,就會執行_load圖片加載程序。首先根據參數設置圖片樣式:

layer = document.createElement("div");
layer.style.cssText
= "position:absolute;border:0;padding:0;margin:0;left:0;top:0;visibility:hidden;background:transparent;width:" + this._clientWidth + "px;height:" + this._clientHeight + "px;";

it知識庫JavaScript 圖片3D展示空間(3DRoom),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 清丰县| 南通市| 大足县| 茶陵县| 镇原县| 博湖县| 灵寿县| 资阳市| 运城市| 邛崃市| 辽阳县| 江永县| 石狮市| 新安县| 湘乡市| 阳新县| 醴陵市| 西华县| 淮滨县| 延边| 周至县| 东乌珠穆沁旗| 八宿县| 县级市| 赫章县| 界首市| 通河县| 淮安市| 凤凰县| 延庆县| 清新县| 德惠市| 安乡县| 青铜峡市| 鹤壁市| 南召县| 罗江县| 麻城市| 百色市| 靖江市| 台北县|