3D 图片悬停效果

12 篇文章 0 订阅

3D 图片悬停效果

效果展示

在这里插入图片描述

CSS 知识点

  • background 属性的综合运用
  • transform 属性的综合运用

页面整体布局

<div class="box">
  <span style="--i: 0"></span>
  <span style="--i: 1"></span>
  <span style="--i: 2"></span>
  <span style="--i: 3"></span>
</div>

编写图片框样式

.box {
  width: 640px;
  height: 360px;
  transform: rotate(-25deg) skew(25deg);
  transition: 0.5s;
  display: flex;
  border-left: 5px solid #fff;
  border-left: 5px;
  /* 只是为了看图片框样式才进行设置的参数后续要删除 */
  background: #fff;
}

编写图片框选型效果

.box:hover {
  transform: rotate(-25deg) skew(-25deg) translateY(-20px);
}

编写 4 等分图片容器框和设置对应背景图片

图片容器框主要作用是用于图片悬停后使用transform属性实行 3D 效果。

.box span {
  width: 25%;
  height: 100%;
  background: none;
  display: block;
  transition: 0.5s;
  pointer-events: none;
  background: url(./bg.jpg);
  background-size: cover;
  /* 640px / 4 等分计算出每个图片容器背景图片的移动位置 */
  background-position: calc(-160px * var(--i));
}

编写图片容器选型效果

.box:hover span:nth-child(odd) {
  transform: skewY(25deg);
  box-shadow: inset 20px 0 50px rgba(0, 0, 0, 0.5);
}
.box:hover span:nth-child(even) {
  transform: skewY(-25deg);
  box-shadow: inset 20px 0 50px rgba(0, 0, 0, 0.5);
}

图片框添加边框

.box span {
  width: 25%;
  height: 100%;
  background: none;
  display: block;
  transition: 0.5s;
  pointer-events: none;
  background: url(./bg.jpg);
  background-size: cover;
  background-position: calc(-160px * var(--i));
  border-top: 5px solid #fff;
  border-bottom: 5px solid #fff;
}
.box span:first-child {
  border-left: 5px solid #fff;
}
.box span:last-child {
  border-right: 5px solid #fff;
}

完整代码下载

完整代码下载

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值