css全景的實(shí)現(xiàn)

之前講了css3的立方體實(shí)現(xiàn),同時(shí)又講了backface-vibility屬性。這時(shí)候這倆結(jié)合,可以做一個(gè)很好玩的東西励负。

這里先看下最終要實(shí)現(xiàn)的效果:
效果,代碼 在這里

1.gif

先說原理:

  1. 把立方體的每個(gè)對(duì)應(yīng)面的位置進(jìn)行對(duì)調(diào)(比如面1放到了后面匕得,面3放到了前面)继榆。
  2. 對(duì)調(diào)后當(dāng)前位置的面與對(duì)調(diào)前那個(gè)面的角度剛好相反(比如對(duì)調(diào)后的面3現(xiàn)在在前面,但它還是反面)
  3. 給每個(gè)面設(shè)置backface-visibility屬性 從而達(dá)到視角被包圍住的感覺汁掠。

先把每個(gè)面的位置進(jìn)行對(duì)調(diào)略吨。
先對(duì)面1和面3進(jìn)行改造:

面1原本的css
.slide1{
        transform:rotateY(0deg) translateZ(150px);
        -webkit-transform:rotateY(0deg) translateZ(150px);
        background: green;
    }
修改后:
.slide1{
        transform:rotateY(0deg) translateZ(-150px);
        -webkit-transform:rotateY(0deg) translateZ(-150px);
        background: green;
   }

這時(shí)候的頁面效果:(為了排除面3的干擾,已經(jīng)把面3進(jìn)行了隱藏)


1.gif

接下來對(duì)面3也進(jìn)行類似的操作

面3原本的css
 .slide3{
        transform: rotateY(180deg) translateZ(150px);
        -webkit-transform: rotateY(180deg) translateZ(150px);
        background: #00A2E8;
    }
修改后:
 .slide3{
        transform: rotateY(180deg) translateZ(-150px);
        -webkit-transform: rotateY(180deg) translateZ(-150px);
        background: #00A2E8;
    }

這時(shí)候的效果(也是為了消除影響考阱,把面1進(jìn)行了注釋)

1.gif

對(duì)其他面都進(jìn)行這樣的改造翠忠。可以看下最終的效果圖:
1.gif

改造完畢乞榨,現(xiàn)在給每個(gè)面加上backface-visibility可以看下效果:
1.gif

這時(shí)候是不是對(duì)那種全景的感覺還不如出很明顯秽之。接下來要做的事情,就是把這個(gè)立方體擴(kuò)大到整屏吃既。


這里有問題了

我把立方體的大小設(shè)置了足夠大(1000px),可是在頁面上發(fā)現(xiàn)大小生效的不符合預(yù)期考榨,而且位置還有所偏離。下圖這樣


Paste_Image.png

那么問什么會(huì)出現(xiàn)這個(gè)問題以及該怎么解決呢鹦倚。是因?yàn)槲覜]有給立方體設(shè)置居中(這不尷尬了)河质。


居中之后,剩下的事情,就是拉近視角了,也就是translateZ

這時(shí)候本來是要給立方體的父級(jí)加tranlateZ 可是景深如果跟translateZ在一個(gè)層級(jí)或者同一個(gè)dom上的時(shí)候掀鹅,景深是沒有效果的散休,也就是表現(xiàn)出來的樣子是translateZ直接無效。 所以這時(shí)候要給立方體外面再去加一個(gè)dom 專門去做拉伸視角的事情乐尊。


我新增了dom戚丸,這時(shí)候有發(fā)現(xiàn)了問題,為啥這個(gè)dom的高度會(huì)不受控制呢

(即不是100vh,寫100%也是無效的)


Paste_Image.png

排查了好久扔嵌,發(fā)現(xiàn)了問題:

里面的dom有個(gè)數(shù)值很高的margin-top昏滴, 這個(gè)margin-top對(duì)父級(jí)造成了這個(gè)影響。

一開始想了兩個(gè)辦法:

  1. 不用margin-top对人,而是通過flex布局來對(duì)立方體進(jìn)行居中。
  2. 給父級(jí)設(shè)置top bottom left right

這時(shí)候又發(fā)現(xiàn)了一個(gè)新坑拂共。

flex布局下 div本身大小就發(fā)生了變化牺弄,且這個(gè)用flex的其他屬性調(diào) 是沒法調(diào)成預(yù)期的樣子,無奈只能用第二種辦法宜狐。


Paste_Image.png

修改好后势告,下圖是這個(gè)階段的圖,符合預(yù)期抚恒。


Paste_Image.png

這時(shí)候就要進(jìn)行視角的拉伸了咱台,這個(gè)好做。
給立方體的附近設(shè)置translateZ
在給設(shè)置了translateZ translate-style之后突然發(fā)現(xiàn)東西咋都不見了

Paste_Image.png

其實(shí)這時(shí)候東西是都在的俭驮。只是被這個(gè)紫色的背景色給蓋住了回溺。

這里有點(diǎn)跟想象中的有點(diǎn)不一樣,按理說子節(jié)點(diǎn)應(yīng)該在父節(jié)點(diǎn)上層而不是下層混萝。
可是我在這里給子節(jié)點(diǎn)不管是設(shè)置z-index(明知道沒用)和translateZ遗遵,都沒辦法把子節(jié)點(diǎn)給挪到上層。
這個(gè)真不知道是為什么- -


Paste_Image.png

這時(shí)候把這個(gè)紫色背景色給去掉逸嘀,然后把這個(gè)節(jié)點(diǎn)的translateZ給提升transform: translateZ(1200px);车要。
會(huì)是這樣子的效果:

1.gif

這時(shí)候還會(huì)感覺沒有那種全景的效果,我在做這個(gè)東西的時(shí)候也是這么感覺的崭倘∫硭辏可是一旦我把背景圖給放上去之后,那效果我是很滿意的司光,美滋滋琅坡。~
效果在這里
其實(shí)仔細(xì)看這個(gè)全景的話 還是有些小問題和可以優(yōu)化的地方的,這個(gè)等日后開貼再說~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末飘庄,一起剝皮案震驚了整個(gè)濱河市脑蠕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖谴仙,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迂求,死亡現(xiàn)場離奇詭異排截,居然都是意外死亡密似,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門炼蹦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掀虎,“玉大人凌盯,你說我怎么就攤上這事∨胗瘢” “怎么了驰怎?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長二打。 經(jīng)常有香客問我县忌,道長,這世上最難降的妖魔是什么继效? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任症杏,我火速辦了婚禮,結(jié)果婚禮上瑞信,老公的妹妹穿的比我還像新娘厉颤。我一直安慰自己,他們只是感情好凡简,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布逼友。 她就那樣靜靜地躺著,像睡著了一般秤涩。 火紅的嫁衣襯著肌膚如雪翁逞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天溉仑,我揣著相機(jī)與錄音挖函,去河邊找鬼。 笑死浊竟,一個(gè)胖子當(dāng)著我的面吹牛怨喘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播振定,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼必怜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了后频?” 一聲冷哼從身側(cè)響起梳庆,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤暖途,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后膏执,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驻售,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年更米,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了欺栗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡征峦,死狀恐怖迟几,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情栏笆,我是刑警寧澤类腮,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站蛉加,受9級(jí)特大地震影響存哲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜七婴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望察滑。 院中可真熱鬧打厘,春花似錦、人聲如沸贺辰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽饲化。三九已至莽鸭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吃靠,已是汗流浹背硫眨。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留巢块,地道東北人礁阁。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像族奢,于是被迫代替她去往敵國和親姥闭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案越走? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,754評(píng)論 1 92
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,136評(píng)論 25 707
  • 1棚品、屬性選擇器:id選擇器 # 通過id 來選擇類名選擇器 . 通過類名來選擇屬性選擇器 ...
    Yuann閱讀 1,633評(píng)論 0 7
  • 能夠讓波斯成為古代世界第一個(gè)地跨亞伞广、非拣帽、歐三大洲的大帝國,說明這個(gè)帝王是非常有魄力的嚼锄,除了對(duì)自己國家實(shí)施有效的改革...
    王老師聊圍棋閱讀 804評(píng)論 2 3
  • 這所有的一切不過是信息减拭,這世界的本質(zhì)就是信息的重組與呈現(xiàn)。 如何讓別人對(duì)你刮目相看区丑?超出別人對(duì)你的預(yù)期拧粪。 對(duì)同齡人...
    愛閃電的魚閱讀 207評(píng)論 0 1