【全】CSS动画大全之其他【火影忍者动态背景】
效果预览

代码
<!DOCTYPE html>
<html>
  <head>
    <head>
      <meta charset="utf-8" />
      <meta name="author" content="https://www.cnblogs.com/beixuan">
      <meta name="version" content="1.0.0">
      <meta name="date" content="2021/12/05 17:05:50">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>CSS动画大全之火影忍者动态背景</title>
    </head>
  </head>
  <style>
    body {
      padding: 0;
      margin: 0;
      box-sizing: border-box;
    }
    .page-wrapper {
      width: 100%;
      height: 100vh;
      display: flex;
      justify-content: space-around;
      align-items: center;
      justify-items: center;
      flex-direction: row;
      flex-wrap: wrap;
      box-sizing: border-box;
      padding: 3rem;
    }
    .page-wrapper > div {
      width: 20rem;
      height: 15rem;
      background-color: #55557f;
      position: relative;
      border-radius: 12px;
      display: grid;
      grid-template-columns: 100%;
      grid-template-rows: 100%;
      justify-content: center;
      justify-items: center;
      align-items: center;
      cursor: pointer;
    }
    .circle {
      width: 15rem !important;
      height: 15rem !important;;
      border-radius: 50% !important;;
    }
    img {
      z-index: 10;
      transition: all 0.8s ease;
      filter: sepia(1);
    }
    .right img {
      transform: scaleX(-1);
    }
    .bg {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      border-radius: 12px;
      overflow: hidden;
    }
    .first > .bg,
    .second > .bg  {
      border-radius: 50%;
    }
    .bg > span {
      position: absolute;
      top: 0;
      left: 0;
      width: 1.8rem;
      height: 100%;
      background-color: #acacac;
      transform: skewX(20deg);
      transition: all 0.5s ease;
    }
    .right > .bg > span {
      transform: skewX(-20deg);
    }
    .bg > span::before {
      content: '';
      position: absolute;
      left: 3rem;
      top: 0;
      width: 100%;
      height: 100%;
      background-color: #acacac;
      transition: all 0.5s ease;
    }
    .bg > span::after {
      content: '';
      position: absolute;
      left: -3rem;
      top: 0;
      width: 100%;
      height: 100%;
      background-color: #acacac;
      transition: all 0.5s ease;
    }
    .bg > span:nth-child(1) {
      left: -3rem;
    }
    .bg > span:nth-child(2) {
      left: 6rem;
    }
    .bg > span:nth-child(3) {
      left: 15rem;
    }
    .bg > span:nth-child(4) {
      left: 24rem;
    }
    .left:hover img {
      filter: drop-shadow(2px 4px 6px black);
      transform: scale(1.5) translateY(-30px);
    }
    .right:hover img {
      filter: drop-shadow(2px 4px 6px black);
      transform: scaleX(-1) scale(1.5) translateY(-30px);
    }
    .left:hover .bg > span {
      animation: animeSpanLeft 0.5s infinite linear;
    }
    .right:hover .bg > span {
      animation: animeSpanRight 0.5s infinite linear;
    }
    .page-wrapper > div:hover span,
    .page-wrapper > div:hover span::before,
    .page-wrapper > div:hover span::after {
      background-color: #ffff7f;
    }
    @keyframes animeSpanLeft {
      from{
        transform: translateX(0) skew(20deg);
      }
      to{
        transform: translateX(6.25rem) skew(20deg);
      }
    }
    @keyframes animeSpanRight {
      from{
        transform: translateX(0) skew(-20deg);
      }
      to{
        transform: translateX(6.25rem) skew(-20deg);
      }
    }
  </style>
  <body>
    <div class="page-wrapper">
      <div class="first circle left">
        <img src="./鸣人.png" height="280" />
        <div class="bg">
          <span></span>
          <span></span>
          <span></span>
          <span></span>
        </div>
      </div>
      <div class="second circle right">
        <img src="./鸣人.png" height="280" />
        <div class="bg">
          <span></span>
          <span></span>
          <span></span>
          <span></span>
        </div>
      </div>
      <div class="third left">
        <img src="./鸣人.png" height="280" />
        <div class="bg">
          <span></span>
          <span></span>
          <span></span>
          <span></span>
        </div>
      </div>
      <div class="fourth right">
        <img src="./鸣人.png" height="280" />
        <div class="bg">
          <span></span>
          <span></span>
          <span></span>
          <span></span>
        </div>
      </div>
    </div>
  </body>
</html>
图片资源

【全】CSS动画大全之其他【火影忍者动态背景】的更多相关文章
- 【2016年特别福利】史上最全CSS学习资料大全
		
css学习篇 [2016年特别福利]史上最全CSS学习资料大全
 - Jquery 动态交换两个div位置并添加Css动画效果
		
前端网页开发中我们经常会遇到需要动态置换两个DIV元素的位置,常见的思路大多是不考虑原始位置,直接采用append或者appendTo方式将两元素进行添加,该法未考虑原始位置,仅会添加为元素的最后一子 ...
 - CSS动画-transition/animation
		
HTML系列: 人人都懂的HTML基础知识-HTML教程(1) HTML元素大全(1) HTML元素大全(2)-表单 CSS系列: CSS基础知识筑基 常用CSS样式属性 CSS选择器大全48式 CS ...
 - Css 动画的回调
		
在做项目中经常会遇到使用动画的情况.以前的情况是用js写动画,利用setTimeout函数或者window.requestAnimationFrame()实现目标元素的动画效果.虽然后者解决了刷新频率 ...
 - 【译】css动画里的steps()用法详解
		
原文地址:http://designmodo.com/steps-c... 原文作者:Joni Trythall 我想你在css 动画里使用steps()会和我一样有很多困惑.一开始我不清楚怎样使用它 ...
 - css动画属性性能
		
性能主要表现:流量.功耗与流畅度 在现有的前端动画体系中,通常有两种模式:JS动画与CSS3动画. JS动画是通过JS动态改写样式实现动画能力的一种方案,在PC端兼容低端浏览器中不失为一种推荐方案. ...
 - [转]CSS hack大全&详解
		
转自:CSS hack大全&详解 1.什么是CSS hack? CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的, ...
 - CSS动画与GPU
		
写在前面 满世界的动画性能优化技巧,例如: 只允许改变transform.opacity,其它属性不要动,避免重新计算布局(reflow) 对动画元素应用transform: translate3d( ...
 - 全新jquery多点滑动幻灯片——全屏动画animateSlide
		
首页banner的酷炫效果多来自全屏大图的幻灯片动画,下面提供一种完美兼容的jquery动画特效:全新jquery多点滑动幻灯片——全屏动画animateSlide(代码完全原创). 直接上代码,把h ...
 - CSS动画属性性能详细介绍
		
CSS动画属性会触发整个页面的重排relayout.重绘repaint.重组recomposite Paint通常是其中最花费性能的,尽可能避免使用触发paint的CSS动画属性,这也是为什么我们推荐 ...
 
随机推荐
- WPF/C#:显示分组数据的两种方式
			
前言 本文介绍自己在遇到WPF对数据进行分组显示的需求时,可以选择的两种方案.一种方案基于ICollectionView,另一种方案基于IGrouping. 基于ICollectionView实现 相 ...
 - UICollectionView滑动流畅性优化
			
UICollectionView滑动流畅性优化 前言 初始的collection view在滑动时都是十分流畅的,然而因为collection view cell 加载更多的内容时因为主线程耗用太多性 ...
 - Linux特殊权限之SBIT
			
简单点,说话的方式简单点: 用于修饰目录 其他用户x位替换成t 作用:目录属主在该目录下创建的文件只有该属主能删除
 - Grab 基于 Apache Hudi 实现近乎实时的数据分析
			
介绍 在数据处理领域,数据分析师在数据湖上运行其即席查询.数据湖充当分析和生产环境之间的接口,可防止下游查询影响上游数据引入管道.为了确保数据湖中的数据处理效率,选择合适的存储格式至关重要. Vani ...
 - [翻译] PySide6.QtCore.Qt.ConnectionType
			
翻译 (自用,不保证对) PySide6.QtCore.Qt.ConnectionType 这个 enum 描述了 signals 和 slots 连接(connection) 的类型. 在一些特殊情 ...
 - 写给rust初学者的教程(三):闭包、智能指针、并发工具
			
这系列RUST教程一共三篇.这是最后一篇,介绍RUST语言的进阶概念.主要有闭包.智能指针.并发工具. 上一篇:写给rust初学者的教程(二):所有权.生存期 closure "闭包&quo ...
 - 韦东山freeRTOS系列教程之【第七章】互斥量(mutex)
			
目录 系列教程总目录 概述 7.1 互斥量的使用场合 7.2 互斥量函数 7.2.1 创建 7.2.2 其他函数 7.3 示例15: 互斥量基本使用 7.4 示例16: 谁上锁就由谁解锁? 7.5 示 ...
 - wireshark查看https通讯
			
前言 https在原有的http基础上增加了了一个TLS/SSL层,https的通讯过程是加密的,如果想用wireshark仔细分析TLS/SSL层,需要借助服务器证书公私钥或者用浏览器截取密钥: 接 ...
 - “古剑山”初赛Misc 幸运饼干
			
"古剑山"初赛Misc 幸运饼干 考点:Chrome的Cookies解密 赛中思路 bandzip极限压缩hint.jpg后打明文攻击 压缩包密码:sv@1v3z ┌──(root ...
 - 通过vscode写博客
			
通过Vscode写博客到博客园 前言 在以前的写作方式都是通过博客园内置的markdown进行工作,但是在实际使用过程中,感觉不是很方便,所以找到了用VSCode插件写作的方法. 所需插件 博客园Cn ...