hex
This commit is contained in:
parent
cd6f815092
commit
962e9352ab
@ -2,11 +2,13 @@ const preact = require('preact');
|
|||||||
|
|
||||||
const TrippyTriangle = require('./components/svgs/trippy.triangle');
|
const TrippyTriangle = require('./components/svgs/trippy.triangle');
|
||||||
const Amplify = require('./components/svgs/amplify');
|
const Amplify = require('./components/svgs/amplify');
|
||||||
|
const Hex = require('./components/svgs/hex');
|
||||||
|
|
||||||
const Animations = () => (
|
const Animations = () => (
|
||||||
<main>
|
<main>
|
||||||
<TrippyTriangle />
|
<TrippyTriangle />
|
||||||
<Amplify />
|
<Amplify />
|
||||||
|
<Hex />
|
||||||
</main>
|
</main>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
61
client/src/components/svgs/hex.jsx
Normal file
61
client/src/components/svgs/hex.jsx
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
const preact = require('preact');
|
||||||
|
const { Component } = require('preact');
|
||||||
|
|
||||||
|
class TrippyTriangle extends Component {
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
this.state = { delta: 0 };
|
||||||
|
this.progress = this.progress.bind(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const { delta } = this.state;
|
||||||
|
|
||||||
|
const curvePoint = 200 * Math.sin(delta);
|
||||||
|
|
||||||
|
const curve = min => min * 2 + (min / 2) * Math.sin(delta);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
class='skill-animation blue'
|
||||||
|
version="1.1"
|
||||||
|
id="Layer_1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
viewBox="0 0 256 256">
|
||||||
|
<filter id="displacementFilter">
|
||||||
|
<feTurbulence type="turbulence" baseFrequency={0.5 * Math.abs(Math.sin(delta))} numOctaves="2" result="turbulence"
|
||||||
|
style={ {
|
||||||
|
transform: `scale(${100 * Math.abs(Math.sin(delta))})`,
|
||||||
|
}}
|
||||||
|
></feTurbulence>
|
||||||
|
<feDisplacementMap in2="turbulence" in="SourceGraphic" scale={curve(16)} xChannelSelector="R" yChannelSelector="G"></feDisplacementMap>
|
||||||
|
</filter>
|
||||||
|
<polygon
|
||||||
|
points={`64 128 8.574 96 8 32 64 0 119 32 119 96`}
|
||||||
|
style={ {
|
||||||
|
filter: 'url("#displacementFilter")',
|
||||||
|
transform: 'scale(1.7)',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fill="currentColor">
|
||||||
|
</polygon>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
progress() {
|
||||||
|
const delta = this.state.delta + 0.1;
|
||||||
|
this.setState({ delta });
|
||||||
|
requestAnimationFrame(this.progress);
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
requestAnimationFrame(this.progress);
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
// clearAnimation(this.props.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = TrippyTriangle;
|
||||||
Loading…
x
Reference in New Issue
Block a user