rx实现鼠标跟随多彩曲线流动动画效果代码
代码语言:html
所属分类:动画
代码描述:rx实现鼠标跟随多彩曲线流动动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
html, body {
width: 100%;
height: 100%;
overflow: hidden;
margin: 0;
padding: 0;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
color: #111;
}
body {
background-color: #303030;
}
#app {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div id="app">
<svg id="stage" width="200" height="200" xmlns="http://www.w3.org/2000/svg"></svg>
</div>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/TweenMax.min.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/rx.all.2.3.22.js"></script>
<script>
"use strict";
// Tidier code with webpack and better Typescript in Github
// https://github.com/ste-vg/svg-squiggles
console.clear();
var SquiggleState;
(function (SquiggleState) {
SquiggleState[SquiggleState["ready"] = 0] = "ready";
SquiggleState[SquiggleState["animating"] = 1] = "animating";
SquiggleState[SquiggleState["ended"] = 2] = "ended";
})(SquiggleState || (SquiggleState = {}));
var Squiggle = /** @class */function () {
function Squiggle(stage, settings, grid) {
this.sqwigs = [];
this.state = SquiggleState.ready;
this.grid = grid;
this.stage = stage;
settings.width = 0;
settings.opacity = 1;
this.state = SquiggleState.animating;
var path = this.createLine(settings);
var sqwigCount = 3;
for (var i = 0; i < sqwigCount; i++) {
this.createSqwig(i, sqwigCount, path, JSON.parse(JSON.stringify(settings)), i == sqwigCount - 1);
}
}
Squiggle.prototype.createSqwig = function (index, total, path, settings, forceWhite) {
var _this = this;
var sqwig = document.createElementNS("http://www.w3.org/2000/svg", 'path');
sqwig.setAttribute('d', path);
sqwig.style.fill = 'none';
sqwig.style.stroke = forceWhite ? '#303030' : this.getColor();
sqwig.style.strokeLinecap = "round";
settings.length = sqwig.getTotalLength();
settings.chunkLength = settings.length / 6; //(settings.sections * 2) + (Math.random() * 40);
settings.progress = settings.chunkLength;
sqwig.style.strokeDasharray = settings.chunkLength + ", " + (settings.length + settings.chunkLength);
sqwig.style.strokeDashoffset = "" + settings.progress;
this.stage.appendChild(sqwig);
this.sqwigs.unshift({ path: sqwig, settings: settings });
TweenLite.to(settings, settings.sections * 0.1, {
progress: -settings.length,
width: settings.sections * 0.9,
ease: Power1.easeOut,
delay: index * (settings.sections * 0.01),
onComplete: function () {
if (index = total - 1)
_this.state = SquiggleState.ended;
sqwig.remove();
} });
};
Squiggle.prototype.update = function () {
this.sqwigs.map(function (set) {
set.path.style.strokeDashoffset = "" + set.settings.progress;
set.path.style.stro.........完整代码请登录后点击上方下载按钮下载查看
网友评论0