3d分层悬停效果
3d分层悬停效果
写在前面
经过了2个星期的努力,我回来了!会继续将我学习路上遇到的问题,以及一些笔记,demo分享给大家
实现效果
致我最爱的backpink
实现思路
- 将6张图片,通过定位叠在一起
- 当鼠标移入时,每张图片旋转一定的角度,从而实现
思路很简单,实现也很简单,但是效果很好看
实现过程
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);
}
这里利用了css
的calc
函数以及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分层悬停效果的更多相关文章
- MFC 使用位图按钮,并且设置按钮的鼠标悬停效果
系统环境:Windows 10软件环境:Visual C++ 2013 SP1本次目的:使用位图按钮,并且设置按钮的鼠标悬停效果 在用MFC开发时,界面是比较不好开发的一块.VC中自带了CBitmap ...
- 精致3D图片切换效果,最适合企业产品展示
这是一个精致的立体图片切换效果,特别适合企业产品展示,可立即用于实际项目中.支持导航和自动播放功能, 基于 CSS3 实现,推荐使用最新的 Chrome,Firefox 和 Safari 浏览器浏览效 ...
- Hover.css:一组超实用的 CSS3 悬停效果和动画
Hover.css 是一套基于 CSS3 的鼠标悬停效果和动画,这些可以非常轻松的被应用到按钮.LOGO 以及图片等元素.所有这些效果都是只需要单一的标签,必要的时候使用 before 和 after ...
- HTML5 Canvas 高仿逼真 3D 布料图案效果
HTML5 规范引进了很多新特性,其中最令人期待的之一就是 Canvas 元素,HTML5 Canvas 提供了通过 JavaScript 绘制图形的方法,非常强大.下面给大家分享一个 HTML5 C ...
- JQ实现3D拖拽效果
<!DOCTYPE HTML> <html onselectstart='return false'> <head> <meta http-equiv=&qu ...
- HTML5画布生成的3D飞船舰队效果
在线演示 本地下载 使用HTML5画布2D来模拟3D的空间效果,生成舰队飞行效果,了解如何开发,请阅读下面代码相关“轻视频”: HTML5画布模拟生成3D的舰队飞行效果
- HTML+CSS鼠标悬停效果
HTML+CSS实现鼠标悬停效果 HTML: <link href="style.css" rel="stylesheet"> <a clas ...
- Android ScrollView滚动实现大众点评、网易云音乐评论悬停效果
今天听着网易云音乐,写着代码,真是爽翻了. http://blog.csdn.net/linshijun33/article/details/47910833 网易云音乐这个产品亮点应该在评论这一模块 ...
- 超酷3D照片展示效果
@{ Layout = null; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www. ...
随机推荐
- MySQL学习之路(一)锁机制
1 锁的分类 1.1 操作类型 读锁(共享锁):针对同一份数据,多个操作可以同时进行而不会互相影响 写锁(排它锁):当写操作没有完成前,它会阻塞其他读锁或者写锁 1.2 操作粒度 表锁:锁住整张表 行 ...
- 敏捷史话(十五):我发明了敏捷估算扑克牌 —— James Greening
雪鸟会议 雪鸟会议前夕,James Grenning 在 Object Mentor 与 Robert C. Martin 一同工作,彼时组织雪鸟会议的 Bob 大叔盛情邀请 James,告知他会议的 ...
- Typora+PicGo+阿里云写博客笔记
Typora+PicGo+阿里云写博客笔记 选择这三个工具的理由 我一直有在使用typora使用mardown写作,毕竟typora很香,可以实时预览,非常丝滑. 配合上PicGo这个图床工具简直绝了 ...
- 某大佬的TODOLIST
回文串 manacher(完成时间:2018.12.10)回文串计数最长双回文串(完成时间:2018.12.10) 扫描线 棋盘制作巨大的牛棚玉蟾宫某个blog 汉诺塔相关 新汉诺塔SHOI 博弈论 ...
- NNLM原理及Pytorch实现
NNLM NNLM:Neural Network Language Model,神经网络语言模型.源自Bengio等人于2001年发表在NIPS上的<A Neural Probabilistic ...
- Linux内核软中断
1 软中断概述 软中断是实现中断下半部的一种手段,与2.5以前版本的下半段机制不同.软中断可以同时运行在不同的CPU上. 1.1 软中断的表示 内核中用结构体softirq_action表示一个软中断 ...
- 【CompletableFuture】CompletableFuture测试runAsync()方法调用
问题 CompletableFuture.runAsync() 返回 CompletableFuture<Void>对象,调用CompletableFuture.allOf(f1,f2). ...
- 一个简单的Android木马病毒的分析
一.样本信息 文件名称: 一个安卓病毒木马.apk 文件大小:242867 byte 文件类型:application/jar 病毒名称:Android.Trojan.SMSSend.KS 样本MD5 ...
- 从苏宁电器到卡巴斯基(后传)第05篇:聊聊我对WannaCry产生的感慨
这几天看到网上对WannaCry勒索病毒讨论得沸沸扬扬,不免有些感触. 其实该病毒的这次爆发,完全可以类比N年前"熊猫烧香"爆发的情况.也就是国内杀软纷纷歇菜,让本来就没什么技术含 ...
- php、jsp、asp和aspx的区别
目录 PHP JSP ASP ASP.NET PHP PHP是一种跨平台的服务器端的嵌入式脚本语言.它大量地借用C.Java 和 Perl 语言的语法,并耦合PHP自己的特性,使WEB开发者能够快速地 ...