react实现网格切片随机排列动画过渡效果代码

代码语言:html

所属分类:动画

代码描述:react实现网格切片随机排列动画过渡效果代码,将一个4*4的网格进行编号,点击按钮进行随机更换位置。

代码标签: react 网格 切片 随机 排列 动画 过渡

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  

  
  
  
<style>
@layer flippable {
  .flippable_root[data-flip] {
    transition: transform 0.4s cubic-bezier(0.2, 0, 0.5, 1);
    transform: none;
    transform-origin: top left;
  }

  .flippable_root[data-flip="invert"] {
    transition: none !important;
    transform: var(--flip-translate) var(--flip-scale);

    --flip-translate: translate(calc(-1px * var(--dx)), calc(-1px * var(--dy)));
    --flip-scale: scale(calc(1 / var(--dw)), calc(1 / var(--dh)));
    --flip-radius: calc((var(--dw)) * var(--radius)) /
      calc((var(--dh)) * var(--radius));
  }
}

/* ---------------------------------- */

:root {
  --color-1: #c9dabf;
  --color-2: #9ca986;
  --color-3: #808d7c;
  --color-4: #5f6f65;

  background: var(--color-1);
  color: var(--color-4);
  font-family: monospace;
  margin: 0;
  padding: 0;
}

body {
  margin: 0;
  padding: 0;
}

.grid-container {
  display: grid;
  place-items: center;
  place-content: center;
  height: 100dvh;
}

.shuffle-button {
  background: var(--color-2);
  padding: 1em 2em;
  font-family: inherit;
  border: thick double var(--color-4);
  color: var(--color-4);
  cursor: pointer;
}

.grid {
  margin: 1em;
  display: grid;
  grid-template-rows: repeat(var(--rows), 1fr);
  grid-template-columns: repeat(var(--cols), 1fr);
  border: thick double var(--color-2);
}

.grid-col {
  display: grid;
  aspect-ratio: 1 / 1;

  > * {
    grid-area: 1 / -1;
  }

  .grid-col-id {
    display: grid;
    aspect-ratio: 1 / 1;
    place-items: center;
    border: thick double var(--color-2);
    color: var(--color-3);
    font-size: 3vmin;
    padding: 2em;
    background: var(--color-1);
    transition-delay: calc(var(--i) * 50ms);
    cursor: pointer;
  }

  .grid-selected {
    transition-delay: 0s;
    transition-duration: 0.4s;
    transition-timing-function: cubic-bezier(0.5, 0, 0.2, 1);
    background: var(--color-2);
    border-color: var(--color-4);
    color: var(--color-4);
    position: relative;
    z-index: 2;
  }
}
</style>


  
</head>

<body translate="no">
  <div id="app"></div>
  <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/babel.7.18.13.js"></script>
  <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/react.production.18.2.0.js"></script>
  <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/react-dom.production.18.2.0.js"></script>
      <script type="text/babel">

const { useEffect, useRef, useState} = window.React;
  con.........完整代码请登录后点击上方下载按钮下载查看

网友评论0