var currentFACE = 'front'; function CubeButton(props) { const posClass = 'sidebutton bt_' + props.sidePosition; return
{props.cap}
{props.cap2}
; } class Cube extends React.Component { constructor(props) { super(props); this.state = { face: currentFACE, size: props.size, sw: props.w, sh: props.h }; } onSide(target) { currentFACE = target; this.setState(prevState => { return { face: target }; }); } onTop() { this.onSide('top'); } onBottom() { this.onSide('bottom'); } onLeft() { this.onSide('left'); } onRight() { this.onSide('right'); } onFront() { this.onSide('front'); } onBack() { this.onSide('back'); } render() { let half = this.state.size / 2; let cubeTransform = 'translateX(' + ((this.state.sw / 2) - half) + 'px) translateY(' + ((this.state.sh / 2) - half) + 'px) translateZ(-' + half + 'px)'; if (this.state.face == 'front') cubeTransform = cubeTransform + ' rotateY(0deg)'; if (this.state.face == 'right') cubeTransform = cubeTransform + ' rotateY(-90deg)'; if (this.state.face == 'back') cubeTransform = cubeTransform + ' rotateY(-180deg)'; if (this.state.face == 'left') cubeTransform = cubeTransform + ' rotateY(90deg)'; if (this.state.face == 'top') cubeTransform = cubeTransform + ' rotateX(-90deg)'; if (this.state.face == 'bottom') cubeTransform = cubeTransform + ' rotateX(90deg)'; let trFront = 'rotateY( 0deg) translateZ(' + half + 'px)'; let trRight = 'rotateY( 90deg) translateZ(' + half + 'px)'; let trBack = 'rotateY(180deg) translateZ(' + half + 'px)'; let trLeft = 'rotateY(-90deg) translateZ(' + half + 'px)'; let trTop = 'rotateX( 90deg) translateZ(' + half + 'px)'; let trBottom = 'rotateX(-90deg) translateZ(' + half + 'px)'; return (
); } } class Scene extends React.Component { constructor(props) { super(props); let s = ''; for (let i = 0; i < 10; i++) { s = s + ' ' + Math.round(Math.random()); s = s + ' ' + Math.round(Math.random()); s = s + ' ' + Math.round(Math.random()); s = s + ' ' + Math.round(Math.random()); s = s + ' ' + Math.round(Math.random()); s = s + ' ' + Math.round(Math.random()); s = s + ' ' + Math.round(Math.random()); s = s + ' ' + Math.round(Math.random()); s = s + ' '; } this.state = { content: s }; } render() { let scrWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; let scrHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; let _size = Math.min(scrWidth, scrHeight); let _SIZE = Math.max(scrWidth, scrHeight); let _aspect = _SIZE / _size; let _perspective = _size * _aspect * 1.2; let _content = ''; for (let i = 0; i < 150; i++) { _content = _content + '\n' + this.state.content; } const cusize = _size * 0.92; reactRenrerComplete = true; return (
); } } const placeWeWantToPutComponent = document.getElementById('hook'); ReactDOM.render(, placeWeWantToPutComponent); window.addEventListener('resize', function(event){ clearChilds(placeWeWantToPutComponent); ReactDOM.render(, placeWeWantToPutComponent); if (!contentUpdateTimer) contentUpdateTimer = setTimeout(contentFill, 250); });