Jinuss's blog Jinuss's blog
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript高级程序设计》
    • 《Vue》
    • 《React》
    • 《Git》
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • 学习
  • 实用技巧
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

东流

前端可视化
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript高级程序设计》
    • 《Vue》
    • 《React》
    • 《Git》
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • 学习
  • 实用技巧
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • HTML

  • CSS

    • CSS教程和技巧收藏
    • flex布局语法
    • flex布局案例-基础
    • flex布局案例-骰子
    • flex布局案例-圣杯布局
    • flex布局案例-网格布局
    • flex布局案例-输入框布局
    • CSS3之transition过渡
    • CSS3之animation动画
    • CSS自定义设置滚动条样式
    • 「布局技巧」图片未加载前自动撑开元素高度
    • 文字在一行或多行时超出显示省略号
    • 从box-sizing属性入手,了解盒子模型
    • 水平垂直居中的几种方式-案例
    • 如何根据系统主题自动响应CSS深色模式
    • CSS-function汇总
    • 网格布局中的动画
    • CSS属性background-position-y实现动画
    • CSS实现github右上角图标
    • CSS3实现购物车动画效果
    • css-functions-属性函数
    • css-functions-图形函数
    • CSS3换装达人原理
    • iconfont图标字体库介绍
    • css关键字currentColor
    • css伪类选择器系列一
    • css伪类选择器系列二
    • 动态修改iconfont图标配色
    • 使用CSS3实现loading效果
    • CSS滚动驱动动画
    • CSS实现图片3D立体效果
      • 概述
        • 3D 立体效果
        • 具体实现
        • 相关语法介绍
    • iconfont中svg图片颜色动态修改第二弹
  • 浏览器

  • 页面
  • CSS
东流
2024-11-08
目录

CSS实现图片3D立体效果

# 概述

本文主要讲述如何通过 CSS 简单的设置就可以实现图片的 3D 立体效果。

# 3D 立体效果

当鼠标移入某一个图片上时,其余图片会像该图片倾斜。

# 具体实现

静图如下:

  • 倒影效果

图片会有一个倒影效果,其代码如下:

<style>
  img {
    -webkit-box-reflect: below 1px linear-gradient(transparent, #0009);
  }
</style>
1
2
3
4
5

-webkit-box-reflect属性会有兼容性问题,该属性的作用就是将元素内容在特定方向上进行轴对称反射。

其语法如下:

/* 方向值 */
-webkit-box-reflect: above | below | left | right;
/* 偏移量值 */
-webkit-box-reflect: below 10px;

/* 蒙版值 */
-webkit-box-reflect: below 0 linear-gradient(transparent, white);

/* 全局属性值 */
-webkit-box-reflect: inherit | initial | unset;

-webkit-box-reflect: <值> <length> <image>
1
2
3
4
5
6
7
8
9
10
11
12
  • hover旋转效果 鼠标移入放大,其余元素旋转效果主要是用到了 CSS3 的 preserve-3d,核心实现如下:
<style>
  .container {
    transform-style: preserve-3d; /**开启3D空间 */
  }

  img:hover {
    transform: perspective(500px) rotateY(0) translateX(-30px) scale(1.5); /*景深 500px 沿X轴负半轴平移30px 放大1.5倍*/
  }

  .container:hover img:not(:hover) {
    margin: 0 -40px;
    filter: drop-shadow(0 0 25px #000) drop-shadow(0 0 45px #000); /*阴影效果*/
    transform: perspective(500px) rotateY(45deg) scale(0.95); /*景深 500px 沿Y轴逆时针旋转45° 缩小0.95倍*/
  }

  .item:hover ~ .item img {
    transform: perspective(500px) rotateY(-45deg) scale(0.95); /*景深 500px 沿Y轴顺时针旋转45° 缩小0.95倍*/
  }
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 相关语法介绍

  • drop-shadow():是一个用于创建阴影效果的函数,可以应用到元素上,给元素添加一种阴影的视觉效果。例子中使用了两种不同的阴影效果
drop-shadow(0 0 25px #000) drop-shadow(0 0 45px #000);
1

上面这段代码表示元素的阴影在X 轴(水平方向)和Y 轴(垂直方向)上的偏移量都是 0,阴影始终保持在元素的正下方;25px表示阴影的模糊半径,这个模糊半径决定了阴影的模糊程度,值越大,阴影越模糊,扩散的范围越广泛。#000表示阴影的颜色。

  • transform-style:transform-style属性默认是 2D,当它使用 preserve-3d 时,子元素会按 3D 空间中的位置进行变换,能够让元素在 3D 空间中立体呈现,而不仅仅是二维扭曲。
编辑 (opens new window)
上次更新: 2024/11/08, 09:00:21
CSS滚动驱动动画
iconfont中svg图片颜色动态修改第二弹

← CSS滚动驱动动画 iconfont中svg图片颜色动态修改第二弹→

最近更新
01
GeoJSON
05-08
02
Circle
04-15
03
CircleMarker
04-15
更多文章>
Theme by Vdoing | Copyright © 2024-2025 东流 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式