国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

教你用 CSS 實現(xiàn)超真實的 3D 相冊,讓你的照片立體感 UPUP

這篇具有很好參考價值的文章主要介紹了教你用 CSS 實現(xiàn)超真實的 3D 相冊,讓你的照片立體感 UPUP。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

現(xiàn)如今網(wǎng)頁越來越趨近于動畫,相信大家平時瀏覽網(wǎng)頁或多或少都能看到一些動畫效果,今天我們來做一個有意思的動畫效果,通過 css3 實現(xiàn) 3d 效果的立方體相冊,下面一起看看吧。


實現(xiàn)思路

  • 首先我們要確定好 html 的結(jié)構(gòu)以及要使用的標簽;
  • 當我們搭建好 html 的結(jié)構(gòu)后,就要想到怎么去實現(xiàn)立體的效果;
  • 最后就是如何實現(xiàn)旋轉(zhuǎn)以及鼠標觸摸時變換的效果。

html 布局

<div class="parentBox">
  <div class="contantBox">
    <div class="outerBox">
      <!--======================= 外部正方體 =======================-->
      <!-- 外前圖 -->
      <div class="frontImgBox"><img src="../assets/tu1.jpg" /></div>
      <!-- 外后圖 -->
      <div class="queenImgBox"><img src="../assets/tu2.jpg" /></div>
      <!-- 外左圖 -->
      <div class="liftImgBox"><img src="../assets/tu3.jpg" /></div>
      <!-- 外右圖 -->
      <div class="rightImgBox"><img src="../assets/tu4.jpg" /></div>
      <!-- 外上圖 -->
      <div class="topImgBox"><img src="../assets/tu5.jpg" /></div>
      <!-- 外下圖 -->
      <div class="bottomImgBox"><img src="../assets/tu6.jpg" /></div>
      <!--======================= 內(nèi)部正方體 =======================-->
      <!-- 內(nèi)前圖 -->
      <p class="inFrontImgBox"><img src="../assets/tu7.jpg" /></p>
      <!-- 內(nèi)后圖 -->
      <p class="inqueenImgBox"><img src="../assets/tu8.jpg" /></p>
      <!-- 內(nèi)左圖 -->
      <p class="inLeftImgBox"><img src="../assets/tu9.jpg" /></p>
      <!-- 內(nèi)右圖 -->
      <p class="inRightImgBox"><img src="../assets/tu10.jpg" /></p>
      <!-- 內(nèi)上圖 -->
      <p class="inTopImgBox"><img src="../assets/tu11.jpg" /></p>
      <!-- 內(nèi)下圖 -->
      <p class="inBottomImgBox"><img src="../assets/tu12.jpg" /></p>
    </div>
  </div>
</div>

立體的效果

立體效果的核心就是運用 css3 中的 transform-style 屬性。

transform-style 屬性

transform-style 屬性用來指定嵌套元素是怎樣在三維空間中呈現(xiàn)。當值為 flat 時,表示所有子元素在 2D 平面呈現(xiàn);值為 preserve-3d 時,表示所有子元素在 3D 空間中呈現(xiàn)。

屬性值 描述
flat(默認值) 將設(shè)置元素的子元素位于該元素的平面中
preserve-3d 將指示元素的子元素應(yīng)位于 3D 空間中

注意:

  • 該屬性必須與 transform 屬性一同使用,否則沒效果;
  • 該屬性不能被子元素繼承;
  • 該屬性的效果作用于子元素,不作用于自身。

旋轉(zhuǎn)和變換的效果

旋轉(zhuǎn)及變換的效果我們則需要通過 animation 屬性和 hover 偽類屬性的配合來實現(xiàn)。

旋轉(zhuǎn)核心代碼

	.outerBox{
		-webkit-animation: rotate 10s infinite;
	}
	
	@-webkit-keyframes rotate {
	  from {
	    transform: rotateX(0deg) rotateY(0deg);
	  }
	  to {
	    transform: rotateX(360deg) rotateY(360deg);
	  }
	}

變換核心代碼

.outerBox:hover .frontImgBox {
  transform: rotateY(0deg) translateZ(200px);
}
.outerBox:hover .queenImgBox {
  transform: translateZ(-200px) rotateY(180deg);
}
.outerBox:hover .liftImgBox {
  transform: rotateY(90deg) translateZ(200px);
}
.outerBox:hover .rightImgBox {
  transform: rotateY(-90deg) translateZ(200px);
}
.outerBox:hover .topImgBox {
  transform: rotateX(90deg) translateZ(200px);
}
.outerBox:hover .bottomImgBox {
  transform: rotateX(-90deg) translateZ(200px);
}

到這里為止,我們已經(jīng)將整個功能的核心要點分析完畢,話不多說,下面一起來看完整的源碼?。


完整源碼

<template>
  <div class="parentBox">
    <div class="contantBox">
      <div class="outerBox">
        <!--======================= 外部正方體 =======================-->
        <!-- 外前圖 -->
        <div class="frontImgBox"><img src="../assets/tu1.jpg" /></div>
        <!-- 外后圖 -->
        <div class="queenImgBox"><img src="../assets/tu2.jpg" /></div>
        <!-- 外左圖 -->
        <div class="liftImgBox"><img src="../assets/tu3.jpg" /></div>
        <!-- 外右圖 -->
        <div class="rightImgBox"><img src="../assets/tu4.jpg" /></div>
        <!-- 外上圖 -->
        <div class="topImgBox"><img src="../assets/tu5.jpg" /></div>
        <!-- 外下圖 -->
        <div class="bottomImgBox"><img src="../assets/tu6.jpg" /></div>
        <!--======================= 內(nèi)部正方體 =======================-->
        <!-- 內(nèi)前圖 -->
        <p class="inFrontImgBox"><img src="../assets/tu7.jpg" /></p>
        <!-- 內(nèi)后圖 -->
        <p class="inqueenImgBox"><img src="../assets/tu8.jpg" /></p>
        <!-- 內(nèi)左圖 -->
        <p class="inLeftImgBox"><img src="../assets/tu9.jpg" /></p>
        <!-- 內(nèi)右圖 -->
        <p class="inRightImgBox"><img src="../assets/tu10.jpg" /></p>
        <!-- 內(nèi)上圖 -->
        <p class="inTopImgBox"><img src="../assets/tu11.jpg" /></p>
        <!-- 內(nèi)下圖 -->
        <p class="inBottomImgBox"><img src="../assets/tu12.jpg" /></p>
      </div>
    </div>
  </div>
</template>
<style lang="less" scoped>
.parentBox {
  height: 100%;
  background: rgb(31, 31, 31);
  padding: 200px;
  .contantBox {
    width: 200px;
    height: 200px;
    margin: 0px auto;
    position: relative;
    .outerBox {
      width: 200px;
      height: 200px;
      margin: 0 auto;
      transform-style: preserve-3d;
      transform: rotateX(-30deg) rotateY(-80deg);
      -webkit-animation: rotate 10s infinite;
      animation-timing-function: linear; //勻速
      // 外部正反體樣式
      div {
        position: absolute;
        width: 200px;
        height: 200px;
        opacity: 0.75;
        transition: all 0.4s;
        img {
          width: 100%;
          height: 100%;
        }
      }
      .frontImgBox {
        transform: rotateY(0deg) translateZ(100px);
      }
      .queenImgBox {
        transform: translateZ(-100px) rotateY(180deg);
      }
      .liftImgBox {
        transform: rotateY(90deg) translateZ(100px);
      }
      .rightImgBox {
        transform: rotateY(-90deg) translateZ(100px);
      }
      .topImgBox {
        transform: rotateX(90deg) translateZ(100px);
      }
      .bottomImgBox {
        transform: rotateX(-90deg) translateZ(100px);
      }
      @-webkit-keyframes rotate {
        from {
          transform: rotateX(0deg) rotateY(0deg);
        }
        to {
          transform: rotateX(360deg) rotateY(360deg);
        }
      }
      // 內(nèi)部正方體樣式
      p {
        display: bloack;
        width: 100px;
        height: 100px;
        position: absolute;
        top: 50px;
        left: 50px;
        img {
          width: 100%;
          height: 100%;
        }
      }
      .inFrontImgBox {
        transform: rotateY(0deg) translateZ(50px);
      }
      .inqueenImgBox {
        transform: translateZ(-50px) rotateY(180deg);
      }
      .inLeftImgBox {
        transform: rotateY(90deg) translateZ(50px);
      }
      .inRightImgBox {
        transform: rotateY(-90deg) translateZ(50px);
      }
      .inTopImgBox {
        transform: rotateX(90deg) translateZ(50px);
      }
      .inBottomImgBox {
        transform: rotateX(-90deg) translateZ(50px);
      }
    }
    // 鼠標觸摸后樣式
    .outerBox:hover {
      cursor: pointer;
    }
    .outerBox:hover .frontImgBox {
      transform: rotateY(0deg) translateZ(200px);
    }
    .outerBox:hover .queenImgBox {
      transform: translateZ(-200px) rotateY(180deg);
    }
    .outerBox:hover .liftImgBox {
      transform: rotateY(90deg) translateZ(200px);
    }
    .outerBox:hover .rightImgBox {
      transform: rotateY(-90deg) translateZ(200px);
    }
    .outerBox:hover .topImgBox {
      transform: rotateX(90deg) translateZ(200px);
    }
    .outerBox:hover .bottomImgBox {
      transform: rotateX(-90deg) translateZ(200px);
    }
  }
}
</style>

實現(xiàn)效果

教你用 CSS 實現(xiàn)超真實的 3D 相冊,讓你的照片立體感 UPUP


拓展

旋轉(zhuǎn)視差效果

<template>
  <div class="box">
    <div class="item">
      <img src="../../img/fj1.png" alt="">
    </div>
    <div class="item">
      <img src="../../img/fj2.png" alt="">
    </div>
    <div class="item">
      <img src="../../img/fj3.png" alt="">
    </div>
    <div class="item">
      <img src="../../img/fj4.png" alt="">
    </div>
    <div class="item">
      <img src="../../img/fj5.png" alt="">
    </div>
  </div>
</template>

<style scoped>
.box {
  width: 300px;
  height: 300px;
  margin: 0 auto;
  margin-top: 100px;
  /* 網(wǎng)格布局 */
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3列 */
  grid-template-rows: repeat(3, 1fr); /* 3行 */
  grid-template:
    "A A B"
    "C D B"
    "C E E";
  gap: 5px; /* 間隙 */
  animation: rotation 10s linear infinite;
}
.item {
  overflow: hidden;
  border: 2px solid;
  display: flex;
  justify-content: center;
  align-items: center;
}
.item img {
  width: 260%;
  height: 260%;
  object-fit: cover;
  animation: rotation2 10s linear infinite;
}
/* 布局到那個區(qū)域 */
.item:nth-child(1) {
  grid-area: A;
}
.item:nth-child(2) {
  grid-area: B;
}
.item:nth-child(3) {
  grid-area: C;
}
.item:nth-child(4) {
  grid-area: D;
}

.item:nth-child(5) {
  grid-area: E;
}
/* 外層順時針旋轉(zhuǎn) */
@keyframes rotation {
  to {
    transform: rotate(360deg);
  }
}
/* 外層逆時針旋轉(zhuǎn) */
@keyframes rotation2 {
  to {
    transform: rotate(-360deg);
  }
}
</style>

實現(xiàn)效果

教你用 CSS 實現(xiàn)超真實的 3D 相冊,讓你的照片立體感 UPUP文章來源地址http://www.zghlxwxcb.cn/news/detail-415071.html

到了這里,關(guān)于教你用 CSS 實現(xiàn)超真實的 3D 相冊,讓你的照片立體感 UPUP的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 你的Jmeter是不是經(jīng)常亂碼?教你用四種方法解決它

    你的Jmeter是不是經(jīng)常亂碼?教你用四種方法解決它

    亂碼的原因: 一般情況下jemeter默認設(shè)置的編碼格式為:ISO-8859-1,而我們程序中經(jīng)常使用的是UTF-8編碼,由于響應(yīng)頁面和jmeter編碼格式不統(tǒng)一導(dǎo)致響應(yīng)結(jié)果中經(jīng)常會亂碼,所以需要將jmeter的編碼格式設(shè)置為UTF-8來解決亂碼問題。 下圖為中文亂碼情況,我們將使用下面四種方式

    2024年02月07日
    瀏覽(40)
  • 【AI生產(chǎn)力工具】Upscale.media:用AI技術(shù)提升照片質(zhì)量,讓你的作品更出色

    【AI生產(chǎn)力工具】Upscale.media:用AI技術(shù)提升照片質(zhì)量,讓你的作品更出色

    在如今的數(shù)字時代,圖片已經(jīng)成為我們?nèi)粘I钪胁豢苫蛉钡囊徊糠郑瑥纳缃幻襟w到電子商務(wù)網(wǎng)站,從廣告宣傳到個人生活,都需要使用各種形式的圖片。然而,在實際應(yīng)用中,我們常常會遇到一些圖片分辨率過低、尺寸過小的問題,這時候就需要一些強大的工具來幫助我們

    2024年02月01日
    瀏覽(22)
  • Web前端:HTML+CSS+JS實現(xiàn)美女照片3D立方體旋轉(zhuǎn)(1),網(wǎng)易資深Web前端架構(gòu)師

    Web前端:HTML+CSS+JS實現(xiàn)美女照片3D立方體旋轉(zhuǎn)(1),網(wǎng)易資深Web前端架構(gòu)師

    先自我介紹一下,小編浙江大學(xué)畢業(yè),去過華為、字節(jié)跳動等大廠,目前阿里P7 深知大多數(shù)程序員,想要提升技能,往往是自己摸索成長,但自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前! 因此收集整理了一份《2024年最新Web前端全套學(xué)習(xí)資料》,

    2024年04月23日
    瀏覽(28)
  • HTML+CSS+JS--3D相冊

    HTML+CSS+JS--3D相冊

    ??博客主頁:大寄一場. ??系列專欄:前端 ??博客制作不易歡迎各位??點贊+?收藏+?關(guān)注 ? 在本文中,我們將介紹如何使用HTML、CSS和JavaScript創(chuàng)建一個3D相冊。這個相冊將會展示一系列的照片,并且每個照片都會以3D效果呈現(xiàn),使得整個相冊更加生動和有趣。 ? 先,我們

    2024年02月07日
    瀏覽(22)
  • 手把手教你基于HTML、CSS搭建我的相冊(下)

    經(jīng)常有一些粉絲咨詢前端該從什么開始學(xué),那當然是我們的前端基礎(chǔ)三件套開始學(xué)起,HTML、CSS、javaScript,前端的大部分框架的底層還是圍繞著前端三件套來搭建的,相信大家能夠在很多平臺中去找到一些前端三件套的體系教程,借著原力計劃涼哥也為大家?guī)砬岸巳椎?/p>

    2024年02月03日
    瀏覽(14)
  • 手把手教你基于HTML、CSS搭建我的相冊(上)

    其實有過一些粉絲咨詢前端該從什么開始學(xué),那當然是我們的前端基礎(chǔ)三件套開始學(xué)起,HTML、CSS、javaScript,前端的大部分框架的底層還是圍繞著前端三件套來搭建的,相信大家能夠在很多平臺中去找到一些前端三件套的體系教程,借著原力計劃呢,涼哥也為大家?guī)砬岸巳?/p>

    2024年02月02日
    瀏覽(17)
  • 【前端領(lǐng)域】3D旋轉(zhuǎn)超美相冊(HTML+CSS)

    【前端領(lǐng)域】3D旋轉(zhuǎn)超美相冊(HTML+CSS)

    世界上總有一半人不理解另一半人的快樂。 ——《愛瑪》 目錄 一、前言 二、本期作品介紹 ? ?3D旋轉(zhuǎn)相冊 三、效果展示 四、詳細介紹? 五、編碼實現(xiàn) index.html style.css? img ?六、獲取源碼 公眾號獲取源碼? 獲取源碼?私信?關(guān)注?點贊?收藏? ????????新的一年,我們

    2024年02月02日
    瀏覽(25)
  • 前端 CSS 3D 照片墻自動旋轉(zhuǎn)案例(詳細步驟)

    前端 CSS 3D 照片墻自動旋轉(zhuǎn)案例(詳細步驟)

    案例動畫 Gif 動畫地址,圖片太大傳不上來! 案例 DEMO 源碼地址 ,僅供參考。

    2024年01月18日
    瀏覽(23)
  • 16個實用的CSS樣式之3D照片墻

    16個實用的CSS樣式之3D照片墻

    對于初學(xué)前端的小白來說css樣式的設(shè)計很考驗基本功和創(chuàng)意想法,而在項目開發(fā)中我們不可能將大部分的時間用于CSS代碼的編寫,能復(fù)用的就復(fù)用。因此我特意總結(jié)了16個在項目開發(fā)中常用的CSS樣式,因為自己也是初學(xué)者,所以以小白的視角來記錄和學(xué)習(xí)這16款樣式的設(shè)計與編

    2024年02月05日
    瀏覽(17)
  • 【Midjourney】Midjourney Prompt 提示詞 ④ ( 紋身設(shè)計 | 建筑設(shè)圖案 | 照片級真實性圖像 | 玻璃窗設(shè)計圖案 | 使用 Blender 制作的 3D 圖像 )

    【Midjourney】Midjourney Prompt 提示詞 ④ ( 紋身設(shè)計 | 建筑設(shè)圖案 | 照片級真實性圖像 | 玻璃窗設(shè)計圖案 | 使用 Blender 制作的 3D 圖像 )

    tattoo 提示詞 可生成 紋身設(shè)計圖案 ; 提示詞格式 : 描述內(nèi)容 tattoo design 示例 : /imagine prompt octopus tattoo design 生成效果 : 大圖展示 : 使用 architecture / interior design 提示詞 可生成 建筑設(shè)計圖案 ; 適合 建筑設(shè)計 , 裝修設(shè)計 從業(yè)者使用 ; 提示詞格式 : architecture / interior design 描述內(nèi)容

    2024年02月10日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包