gsap+svg+Draggable3+InertiaPlugin实现拖动不同颜色的铅笔到对应笔迹下面代码

代码语言:html

所属分类:拖放

代码描述:gsap+svg+Draggable3+InertiaPlugin实现拖动不同颜色的铅笔到对应笔迹下面代码,拖动正确后笔迹会往下绘制出来。

代码标签: gsap svg Draggable3 InertiaPlugin 拖动 铅笔 笔迹

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

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">




    <style>
        :root {
          --fill-color: #f7eae2;
          --wood-color: #dab28e;
          --start: 100;
          --space: 170;
          --white: #f7eae2;
          --pink: #f498c0;
          --lightblue: #7cc0ea;
          --brown: #603917;
          --black: #231f1f;
          --red: #ee3124;
          --orange: #f57f29;
          --yellow: #fff000;
          --green: #58b947;
          --navy: #0054a6;
          --purple: #9f248f;
        }
        
        * {
          box-sizing: border-box;
        }
        
        body {
          display: grid;
          place-items: center;
          height: 100vh;
          width: 100vw;
          background-color: #f5ebe2;
          background-image: url("https://assets.codepen.io/1385231/moonpaper.jpg");
        }
        
        svg {
          height: auto;
          max-width: 99vw;
          max-height: 99vh;
          opacity: 0;
        }
        
        .space {
          --width: calc(3000px / 11);
          width: var(--width);
          opacity: 0;
        }
        
        .pencil {
          x: 0;
          filter: url(#pencil-filter);
        }
        
        .scribbles,
        .space-scribbles {
          filter: url(#scribble);
        }
        .scribbles path,
        .space-scribbles path {
          transform-origin: bottom center;
          stroke: var(--fill-color, black);
          stroke-width: 9;
          stroke-linecap: round;
        }
        
        .space-scribble {
          stroke-dasharray: 12248;
          stroke-dashoffset: 12248;
          transition: all 2s;
        }
        
        .space-scribble.win {
          stroke-dashoffset: 0;
        }
        
        .space-0 {
          x: calc(0 * var(--width));
        }
        
        .space-1 {
          x: calc(1 * var(--width));
        }
        
        .space-2 {
          x: calc(2 * var(--width));
        }
        
        .space-3 {
          x: calc(3 * var(--width));
        }
        
        .space-4 {
          x: calc(4 * var(--width));
        }
        
        .space-5 {
          x: calc(5 * var(--width));
        }
        
        .space-6 {
          x: calc(6 * var(--width));
        }
        
        .space-7 {
          x: calc(7 * var(--width));
        }
        
        .space-8 {
          x: calc(8 * var(--width));
        }
        
        .space-9 {
          x: calc(9 * var(--width));
        }
        
        .space-10 {
          x: calc(10 * var(--width));
        }
        
        .mask-rect {
          height: 950;
        }
        
        .pencil:nth-child(11n+1) {
          background: white;
          --fill-color: var(--white);
          --index: 1;
        }
        
        .space-scribble:nth-child(11n+1) {
          --stroke-color: var(--white);
        }
        
        .scribbles > path:nth-child(11n+1) {
          --fill-color: var(--white);
          --index: 1;
        }
        
        .pencil:nth-child(11n+2) {
          background: pink;
          --fill-color: var(--pink);
          --index: 2;
        }
        
        .space-scribble:nth-child(11n+2) {
          --stroke-color: var(--pink);
        }
        
        .scribbles > path:nth-child(11n+2) {
          --fill-color: var(--pink);
          --index: 2;
        }
        
        .pencil:nth-child(11n+3) {
          background: lightblue;
          --fill-color: var(--lightblue);
          --index: 3;
        }
        
        .space-scribble:nth-child(11n+3) {
          --stroke-color: var(--lightblue);
        }
        
        .scribbles > path:nth-child(11n+3) {
          --fill-color: var(--lightblue);
          --index: 3;
        }
        
        .pencil:nth-child(11n+4) {
          background: brown;
          --fill-color: var(--brown);
          --index: 4;
        }
        
        .space-scribble:nth-child(11n+4) {
          --stroke-color: var(--brown);
        }
        
        .scribbles > path:nth-child(11n+4) {
          --fill-color: var(--brown);
          --index: 4;
        }
        
        .pencil:nth-child(11n+5) {
          background: black;
          --fill-color: var(--black);
          --index: 5;
        }
        
        .space-scribble:nth-child(11n+5) {
          --stroke-color: var(--black);
        }
        
        .scribbles > path:nth-child(11n+5) {
          --fill-color: var(--black);
          --index: 5;
        }
        
        .pencil:nth-child(11n+6) {
          background: red;
          --fill-color: var(--red);
          --index: 6;
        }
        
        .space-scribble:nth-child(11n+6) {
          --stroke-color: var(--red);
        }
        
        .scribbles > path:nth-child(11n+6) {
          --fill-color: var(--red);
          --index: 6;
        }
        
        .pencil:nth-child(11n+7) {
          background: orange;
          --fill-color: var(--orange);
          --index: 7;
        }
        
        .space-scribble:nth-child(11n+7) {
          --stroke-color: var(--orange);
        }
        
        .scribbles > path:nth-child(11n+7) {
          --fill-color: var(--orange);
          --index: 7;
        }
        
        .pencil:nth-child(11n+8) {
          background: yellow;
          --fill-color: var(--yellow);
          --index: 8;
        }
        
        .space-scribble:nth-child(11n+8) {
          --stroke-color: var(--yellow);
        }
        
        .scribbles > path:nth-child(11n+8) {
          --fill-color: var(--yellow);
          --index: 8;
        }
        
        .pencil:nth-child(11n+9) {
          background: green;
          --fill-color: var(--green);
          --index: 9;
        }
        
        .space-scribble:nth-child(11n+9) {
          --stroke-color: var(--green);
        }
        
        .scribbles > path:nth-child(11n+9) {
          --fill-color: var(--green);
          --index: 9;
        }
        
        .pencil:nth-child(11n+10) {
          background: navy;
          --fill-color: var(--navy);
          --index: 10;
        }
        
        .space-scribble:nth-child(11n+10) {
          --stroke-color: var(--navy);
        }
        
        .scribbles > path:nth-child(11n+10) {
          --fill-color: var(--navy);
          --index: 10;
        }
        
        .pencil:nth-child(11n+11) {
          background: purple;
          --fill-color: var(--purple);
          --index: 11;
        }
        
        .space-scribble:nth-child(11n+11) {
          --stroke-color: var(--purple);
        }
        
        .scribbles > path:nth-child(11n+11) {
          --fill-color: var(--purple);
          --index: 11;
        }
    </style>


</head>

<body>
    <svg viewBox="0 0 3000 2300" fill="none" xmlns="http://www.w3.org/2000/svg" id="container">
  <defs>
.........完整代码请登录后点击上方下载按钮下载查看

网友评论0