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