CSS打造图片翻转立体3D效果

这篇具有很好参考价值的文章主要介绍了CSS打造图片翻转立体3D效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.案例效果展示

css实现立体效果,css,html,css,html,前端

 

二.搭建一个基本的html结构,将需要用到的图片居中

html的结构非常简单,只要一个盒子里面放二张照片即可

html代码:

 <div class="img_box">
    <img src="./img/1.png" id="img1">
    <img src="./img/2.png" id="img2">
  </div>

css代码:

    * {
      margin: 0;
      padding: 0;
    }

    body {
      display: flex;
      justify-content: center;
      align-items: center;
      background-color: #01C4DA;
    }

三.首先我们要对二张图片进行翻转处理就应该给她们开启定位,这样他们就会覆盖在一起了

    .img_box {
      width: 400px;
      height: 500px;
      padding-top: 140px;
      position: relative;
    }

    img {
      width: 100%;
      height: 100%;
      position: absolute;
      border-radius: 20px;
      box-shadow: 0 0 15px rgba(0, 0, 0);
    }

这里记得开绝对定位时一定要给父盒子开启相对定位,否则图片就会以body为父盒子进行定位了

四.图片翻转的主要实现思路

我们可以通过transform这个css属性对样式进行一些翻转处理

1.我们需要翻转第一张图片展示第二张图片,所以我们就要对图片进行180°的翻转

我们可以对某一张图片进行一个翻转处理

   #img2 {
      transform: rotateY(180deg);
    }

这里注意在添加属性后,图片进行了翻转,但是并没有显示第一张图片,此时我们可以加一条属性来控制,他的主要作用就是当图片处理背面时将它隐藏

      backface-visibility: hidden;

2.然后可以对body添加一个hover事件,实现图片的切换

注意这里我们在鼠标进入时,应该将背面的图片翻转回来,而另外一张图片应该进行逆向翻转,这也才能看起来更加的连贯

 body:hover #img2 {
      transform: rotateY(0deg);
    }

body:hover #img1 {
      transform: rotateY(-180deg);
    }

3.然后给图片添加一个过度的时间

transition: 2s all;

我们的基本翻转功能已经实现了,但是图片翻转看起来非常的生硬,不够美观,所以此时我们可以对图片进行3D化处理,让其看起来更有立体感

五.3D效果实现

我们这里主要用到二个属性,一个是开启三维空间,一个是配合此属性来实现逼真的立体效果

  transform-style: preserve-3d;
      /* 开启三维空间 */
  perspective: 1000px;
      /* 可以改变元素在视觉上的尺寸和位置,从而创建出更加逼真的3D效果 */

perspective的主要作用实现模拟你的眼睛与图片的距离的效果,值越小,透视效果越强烈,物体大小看起来更大;值越大,透视效果越弱,物体大小看起来更小。

1000px是我测试出来看起来比较美观的值,也可以尝试设置一些比较小的值,能打开新世界的大门。

六.完整代码

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    body {
      display: flex;
      justify-content: center;
      align-items: center;
      background-color: #01C4DA;
      perspective: 1000px;
      /* 可以改变元素在视觉上的尺寸和位置,从而创建出更加逼真的3D效果 */
    }

    .img_box {
      width: 400px;
      height: 500px;
      padding-top: 140px;
      position: relative;
      transform-style: preserve-3d;
      /* 开启三维空间 */
    }

    img {
      width: 100%;
      height: 100%;
      position: absolute;
      border-radius: 20px;
      box-shadow: 0 0 15px rgba(0, 0, 0);
      backface-visibility: hidden;
      /* 该句代码的意思就是当你是背面面向的时候,就会隐藏图片,我们设置的180°旋转就是让他隐藏了 */
      transition: 2s all;
    }

    #img2 {
      transform: rotateY(180deg);
    }

    body:hover #img2 {
      transform: rotateY(0deg);
    }

    body:hover #img1 {
      transform: rotateY(-180deg);
    }
  </style>
</head>

<body>
  <div class="img_box">
    <img src="./img/1.png" id="img1">
    <img src="./img/2.png" id="img2">
  </div>
</body>

</html>

over文章来源地址https://www.toymoban.com/news/detail-724347.html

到了这里,关于CSS打造图片翻转立体3D效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用HTML、CSS和JavaScript实现鼠标可交互的3D太阳和月亮切换效果

    部分数据来源: ChatGPT  引言         太阳和月亮对于我们来说是一种常见的对比,这篇文章将介绍一个使用HTML、CSS和JavaScript创建的网页场景,能够把太阳和月亮切换展示给用户。这个场景能够让用户使用鼠标和滚轮与场景互动,带来更多的趣味和体验。 这里展示了HT

    2024年02月07日
    浏览(69)
  • HTML5+CSS3小实例:3D翻转Tab选项卡切换特效

    实例:3D翻转Tab选项卡切换特效 技术栈:HTML+CSS 效果: 源码: 【HTML】

    2024年02月04日
    浏览(55)
  • 用HTML、CSS和JS打造绚丽的雪花飘落效果

    目录 一、程序代码 二、代码原理 三、运行效果 这段代码主要通过JavaScript来操作DOM元素,实现了一个下雪的效果。首先,通过CSS样式设置整个页面的背景为黑色,并且创建一个id为\\\"box\\\"的容器元素用于容纳雪花。 接着,使用JavaScript代码自执行函数来封装雪花的相关逻辑。在

    2024年02月19日
    浏览(41)
  • 教你用 CSS 实现超真实的 3D 相册,让你的照片立体感 UPUP

    现如今网页越来越趋近于动画,相信大家平时浏览网页或多或少都能看到一些动画效果,今天我们来做一个有意思的动画效果,通过 css3 实现 3d 效果的立方体相册,下面一起看看吧。 首先我们要确定好 html 的结构以及要使用的标签; 当我们搭建好 html 的结构后,就要想到怎

    2023年04月16日
    浏览(38)
  • css 实现3D效果

    主要用到两个属性:transform-style属性和animation属性 transform-style是用来开启3D效果的属性,而animation是用来让元素实现3D的动画效果 我们以制作一个3D的立方体为例。 transform详细属性,animation详细属性 先把html部分写出来,我们需要把立方体的6个面都先表示出来。 上面分别把

    2024年02月09日
    浏览(43)
  • CSS3 立体 3D 变换

    个人主页: 学习前端的小z 个人专栏: HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 什么是3D的场景呢?2D场景,在屏幕水平和垂直的交叉轴线x轴和y轴。 3D场景,在垂直于屏幕的方法,相对于3D多出个Z轴。 Z轴

    2024年04月15日
    浏览(38)
  • CSS悬停卡片翻转明信片效果源码附注释

    运行效果演示: HTML页面代码:

    2024年02月07日
    浏览(43)
  • 【HTML+CSS+JavaScript】实现鼠标点击烟花效果

    本文主要讲解三种烟花效果(爆炸型、心型、圆形),文章末尾附有完整的代码和图片获取链接。 效果图(一) - 心型 : 效果图(二) - 圆型 : 效果图(三) - 爆炸型 : (1) HTML部分代码 (2) CSS部分代码 (3) 内部的JavaScript部分代码 (1) HTML部分代码 (2) CSS部分代码 (3) 内部的JavaScript部分

    2024年02月01日
    浏览(86)
  • CSS样式前端HTML页面常用CSS效果实现及其相关配置信息------前端入门基础教程

    !DOCTYPE html !-- 这是HTML的注释 -- html lang=\\\"en\\\" id=\\\"myHtml\\\"     head         !-- 这里不是设置了编码,而是告诉浏览器,用什么编码方式打开文件避免乱码 --         meta charset=\\\"UTF-8\\\"         meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"         titleHtmlAll/title         

    2024年02月05日
    浏览(54)
  • CSS3实现的4种3D文字效果

    本文将介绍css3实现的4种3D文字效果。代码很简单,效果很震撼: 代码实现 html: css: 代码解释 1、3D文字效果运用原理就是像Photoshop一样,我们在文字的下方或上方复制了多个图层,并把每一个层向左上或右下方向移动一个1px距离,从而制作出3D效果。同时我们层数越多,其

    2024年02月11日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包