js模拟重力拖拽动画效果代码

代码语言:html

所属分类:拖放

代码描述:js模拟重力拖拽动画效果代码,按住1实现慢镜头、按住2实现零重力,按住3实现反重力。

代码标签: 拖拽 动画 效果

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

<html>

<head>
    <meta charset="UTF-8">
    <style>
        * {
          margin: 0;
        }
         
        body {
          font-family: Helvetica, sans-serif;
          background:#1f1f1f;
        }
        
        #info {
          font-size: 22px;
          color: #ccc;
          position: absolute;
          z-index: -1;
          display: flex;
          flex-direction: column;
          width: 100vw;
          height: 100vh;
          justify-content: center;
          align-items: center;
          animation: fadeOut 1s forwards 3s;
        }
        
        #info > div {
          margin-top: -3em;
        }
        
        #info > div > div {
          margin-bottom: 0.4em;
        }
        
        code {
          color: #bbb;
          background: rgba(0, 0, 0, 0.07);
          padding: 0em 0.2em;
        }
    </style>

</head>

<body>
    <div id="info">
        <div>
            <div>用鼠标拖动</div>
            <div>按住
                <code>1</code>慢镜头.</div>
            <div>按住
                <code>2</code>零重力.</div>
            <div>按住
                <code>3</code> 反重力.</div>
        </div>
    </div>
    <canvas width="1047" height="646"></canvas>
    <script>
        const SPACING = 14;
        const ITERATIONS = 14;
        const MOUSE = SPACING * 5;
        let GRAVITY = 0.05;
        let SPEED = 1;
        
        const canvas = document.querySelector('canvas');
        const ctx = canvas.getContext('2d');
        
        canvas.width = window.innerWidth;
        canvas.height = window.innerHeight;
        
        const mouse = {
          x: 0,
          y: 0,
          px: 0,
          py: 0,
          points: [],
        };
        
        const clamp = function (val, min, max) {
          return Math.min(Math.max(val, min), max);
        };
        
        class Vector {
          constructor (x = 0, y = 0) {
            this.x = x;
            this.y = y;
          }
        
          get length () {
            return Math.sqrt(this.x * this.x + this.y * this.y);
          }
.........完整代码请登录后点击上方下载按钮下载查看

网友评论0