javascript: document.body.setAttribute( "style", "-webkit-transform: rotate(-90deg);");
paste into JS console: Ctrl-Shift-C -> "Console" from top menu
| <!-- | |
| 1. Download the Android Jelly Bean fonts and the Symbola font: | |
| https://www.dropbox.com/s/tvtzcnzkvbe0nrt/jelly-bean-fonts.zip | |
| http://users.teilar.gr/~g1951d/Symbola707.zip | |
| 2. unzip the files and put AndroidEmoji.ttf and Symbola.ttf (and any of the other fonts that strike your fancy) | |
| in your ~/.fonts/ directory | |
| 3. run `fc-cache -f`. You can check to make sure the new fonts | |
| were installed with `fc-list`. You'll probably want to grep the copious output for Symbola or Emoji |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
In React's terminology, there are five core types that are important to distinguish:
React Elements
| import { Component } from "React"; | |
| export var Enhance = ComposedComponent => class extends Component { | |
| constructor() { | |
| this.state = { data: null }; | |
| } | |
| componentDidMount() { | |
| this.setState({ data: 'Hello' }); | |
| } | |
| render() { |
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.
Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.
elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent| var smoothScrolling = { | |
| // add smooth vertical scrolling to internal anchors | |
| init: function() { | |
| // if new native support available we don't need any of this | |
| var isSmoothScrollSupported = 'scrollBehavior' in document.documentElement.style; | |
| if (isSmoothScrollSupported) { | |
| return; | |
| } | |
| this.bindEvents(); |