Skip to content

Instantly share code, notes, and snippets.

@code-machina
Created November 28, 2018 22:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save code-machina/acc48ec472d24f0d6b080fa925582785 to your computer and use it in GitHub Desktop.
Save code-machina/acc48ec472d24f0d6b080fa925582785 to your computer and use it in GitHub Desktop.
React Tutorial
<div id="root" />
function transform(offset) {
const cos = Math.cos(offset);
const sin = Math.sin(offset);
return { transform:
`matrix3d(${sin}, ${-cos}, ${sin}, 0, ${-cos}, ${sin}, 0, 0, 0, ${cos}, ${cos}, ${sin}, 0,0,0,1)`
};
}
class App extends React.Component {
state = { styleOne: {}, styleTwo: {}};
onMouseMove = (event) => {
this.setState({
styleOne: transform(-event.clientX / event.clientY),
styleTwo: transform(event.clientX / event.clientY)
})
}
render() {
return <div onMouseMove={this.onMouseMove}>
<div className="panel" style={this.state.styleOne} />
<div className="panel" style={this.state.styleTwo} />
</div>
}
}
ReactDOM.render(
<App />,
document.querySelector('#root')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
div {
height: 100vh;
width: 100vw;
}
.panel {
position: absolute;
box-shadow: 0 0 50px grey;
background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="100" height="18" viewBox="0 0 100 18"%3E%3Cpath fill="%239C92AC" fill-opacity="0.4" d="M61.82 18c3.47-1.45 6.86-3.78 11.3-7.34C78 6.76 80.34 5.1 83.87 3.42 88.56 1.16 93.75 0 100 0v6.16C98.76 6.05 97.43 6 96 6c-9.59 0-14.23 2.23-23.13 9.34-1.28 1.03-2.39 1.9-3.4 2.66h-7.65zm-23.64 0H22.52c-1-.76-2.1-1.63-3.4-2.66C11.57 9.3 7.08 6.78 0 6.16V0c6.25 0 11.44 1.16 16.14 3.42 3.53 1.7 5.87 3.35 10.73 7.24 4.45 3.56 7.84 5.9 11.31 7.34zM61.82 0h7.66a39.57 39.57 0 0 1-7.34 4.58C57.44 6.84 52.25 8 46 8S34.56 6.84 29.86 4.58A39.57 39.57 0 0 1 22.52 0h15.66C41.65 1.44 45.21 2 50 2c4.8 0 8.35-.56 11.82-2z"%3E%3C/path%3E%3C/svg%3E');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment