3d分层悬停效果

写在前面

经过了2个星期的努力,我回来了!会继续将我学习路上遇到的问题,以及一些笔记,demo分享给大家

实现效果

致我最爱的backpink

实现思路

  1. 将6张图片,通过定位叠在一起
  2. 当鼠标移入时,每张图片旋转一定的角度,从而实现

思路很简单,实现也很简单,但是效果很好看

实现过程

HTML

<div class="imgBox">
<div class="innerBox">
<img src="img/1.jpg" style="--ljc:1;" alt="">
<img src="img/1.jpg" style="--ljc:2;" alt="">
<img src="img/1.jpg" style="--ljc:3;" alt="">
<img src="img/1.jpg" style="--ljc:4;" alt="">
<img src="img/1.jpg" style="--ljc:5;" alt="">
<img src="img/1.jpg" style="--ljc:6;" alt="">
</div>
</div>

html结构很简单,用盒子包裹6张图片,--ljc自定义属性后面会提高

CSS样式

给装图片的盒子添加hover事件,旋转一定的角度,skew属性是扭曲距离,这个实操一下效果很明显,不了解的可以动手试试

.innerBox:hover {
transform: rotateX(35deg) skew(10deg) rotateZ(-35deg);
}

这里利用了csscalc函数以及var变量来实现,简化了代码

html中我们给每个图片都设置了--ljc属性,并赋予了不一样的数值,这个数值就是用来计算我们偏移距离,例如--ljc:2通过calc函数计算的10px*2也就是20px,其他几个也是一样的,--ljc就相当于一个变量的存在

.innerBox:hover img {
transform: translateX(calc(-10px * var(--ljc))) translateY(calc(10px * var(--ljc))) translateZ(calc(-10px * var(--ljc)));
opacity: calc(0.1 * (10 - var(--ljc)));
}

完整代码

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body {
background-color: black;
} .imgBox {
position: relative;
display: flex;
justify-content: center;
margin-top: 40px;
perspective: 2000px;
} .innerBox {
position: relative;
width: 250px;
height: 500px;
transition: all 0.5s;
transform-style: preserve-3d;/*3d效果*/
} .innerBox img {
position: absolute;
width: 100%;
height: 100%;
border: none;
box-shadow: 0 0 8px pink;
transition: all 1.5s;
transform: translateZ(0px);
} .innerBox:hover {
transform: rotateX(35deg) skew(10deg) rotateZ(-35deg);
} .innerBox:hover img {
transform: translateX(calc(-10px * var(--ljc))) translateY(calc(10px * var(--ljc))) translateZ(calc(-10px * var(--ljc)));
opacity: calc(0.1 * (10 - var(--ljc)));
}
</style>
</head>
<body>
<div class="imgBox">
<div class="innerBox">
<img src="img/1.jpg" style="--ljc:1;" alt="">
<img src="img/1.jpg" style="--ljc:2;" alt="">
<img src="img/1.jpg" style="--ljc:3;" alt="">
<img src="img/1.jpg" style="--ljc:4;" alt="">
<img src="img/1.jpg" style="--ljc:5;" alt="">
<img src="img/1.jpg" style="--ljc:6;" alt="">
</div>
</div>
</body>
</html>

这个效果实现起来并不难,但是足够炫酷!

更多阅读

充电水波摇晃效果
旋转水滴加载效果
抖音超火的罗盘时钟效果
圆盘时钟效果
文字抖动效果
旋转魔方效果
文字闪烁效果
加载动画效果
炫彩流光按钮
原生js轮播图效果
文字折叠效果

3d分层悬停效果的更多相关文章

  1. MFC 使用位图按钮,并且设置按钮的鼠标悬停效果

    系统环境:Windows 10软件环境:Visual C++ 2013 SP1本次目的:使用位图按钮,并且设置按钮的鼠标悬停效果 在用MFC开发时,界面是比较不好开发的一块.VC中自带了CBitmap ...

  2. 精致3D图片切换效果,最适合企业产品展示

    这是一个精致的立体图片切换效果,特别适合企业产品展示,可立即用于实际项目中.支持导航和自动播放功能, 基于 CSS3 实现,推荐使用最新的 Chrome,Firefox 和 Safari 浏览器浏览效 ...

  3. Hover.css:一组超实用的 CSS3 悬停效果和动画

    Hover.css 是一套基于 CSS3 的鼠标悬停效果和动画,这些可以非常轻松的被应用到按钮.LOGO 以及图片等元素.所有这些效果都是只需要单一的标签,必要的时候使用 before 和 after ...

  4. HTML5 Canvas 高仿逼真 3D 布料图案效果

    HTML5 规范引进了很多新特性,其中最令人期待的之一就是 Canvas 元素,HTML5 Canvas 提供了通过 JavaScript 绘制图形的方法,非常强大.下面给大家分享一个 HTML5 C ...

  5. JQ实现3D拖拽效果

    <!DOCTYPE HTML> <html onselectstart='return false'> <head> <meta http-equiv=&qu ...

  6. HTML5画布生成的3D飞船舰队效果

    在线演示 本地下载 使用HTML5画布2D来模拟3D的空间效果,生成舰队飞行效果,了解如何开发,请阅读下面代码相关“轻视频”: HTML5画布模拟生成3D的舰队飞行效果

  7. HTML+CSS鼠标悬停效果

    HTML+CSS实现鼠标悬停效果 HTML: <link href="style.css" rel="stylesheet"> <a clas ...

  8. Android ScrollView滚动实现大众点评、网易云音乐评论悬停效果

    今天听着网易云音乐,写着代码,真是爽翻了. http://blog.csdn.net/linshijun33/article/details/47910833 网易云音乐这个产品亮点应该在评论这一模块 ...

  9. 超酷3D照片展示效果

    @{ Layout = null; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www. ...

随机推荐

  1. Pycharm Fiddler Requests https in _create raise ValueError("check_hostname requires server_hostname

    打开Fiddler, 开启抓取https,  在PyCharm中使用requests 发送https请求, 遇到  in _create raise ValueError("check_ho ...

  2. 由电脑专卖系统引发的Java设计模式:访问者模式

    目录 定义 意图 解决问题 何时使用 优缺点 结构 电脑专卖系统 定义 访问者模式是对象的行为型模式,它的目的是封装一些施加于某些数据结构元素之上的操作,一旦这些操作需要修改的话,接收这个操作的数据结 ...

  3. 浅入Kubernetes(10):控制节点的部署,选择器、亲和性、污点

    目录 标签和nodeSelector 标签选择 亲和性和反亲和性 污点和容忍度 系统默认污点 容忍度 DaemonSet 在前面的学习中,我们学到了 Deployment 部署,以及副本数(Repli ...

  4. day14.面向对象编程

    一 对象的概念 "面向对象"的核心是"对象"二字,而对象的精髓在于"整合" 所有的程序都是由"数据"与"功能& ...

  5. 详解Linux指令与文件的搜寻

    我们在管理Linux服务器时通常会进行搜索文件及目录操作,下面我们就开始了解一下linux目录结构的相关知识. 博主再奉上一套零基础入门Linux视频,带你从入门到精通 https://www.bil ...

  6. 进击中的Vue 3——“电动车电池范围计算器”开源项目

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文参考:https://dzone.com/articles/build-a-tesla-battery- ...

  7. 【cypress】4. 丰富的调试工具

    Cypress附带了一系列调试工具来帮助我们弄明白测试的经过,利于我们更好的调试. 具体这些工具的能力都有啥? 回到每个命令的快照. 可以看到特殊的已发生的page events. 接收关于每个命令的 ...

  8. ThnikPHP3.2 学习链接整理

    ThnikPHP3.2 学习链接整理 ThinkPHP3.2.3 U()方法的使用总结 看云手册 ThinkPHP3.2完全开发手册 TP3.2单字母函数 TP3.x中 M方法和D方法的区别

  9. Heap Spray原理浅析

    Heap Spray定义基本描述 Heap Spray并没有一个官方的正式定义,毕竟这是漏洞攻击技术的一部分.但是我们可以根据它的特点自己来简单总结一下.Heap Spray是在shellcode的前 ...

  10. Android Hook框架adbi的分析(3)---编译和inline Hook实践

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/75200800 一.序言 在前面的博客中,已经分析过了Android Hook框架a ...