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