Skip to content

Instantly share code, notes, and snippets.

@guibot17
guibot17 / introrx.md
Created October 16, 2016 09:39 — forked from staltz/introrx.md
The introduction to Reactive Programming you've been missing
@guibot17
guibot17 / app.js
Created May 10, 2017 07:49 — forked from akirattii/app.js
Draggable & Movable popup example using pure javascript.
(function(){
var SCROLL_WIDTH = 24;
var btn_popup = document.getElementById("btn_popup");
var popup = document.getElementById("popup");
var popup_bar = document.getElementById("popup_bar");
var btn_close = document.getElementById("btn_close");
var smoke = document.getElementById("smoke");
@guibot17
guibot17 / titlecase.pipe.ts
Created July 11, 2017 01:17 — forked from apkostka/titlecase.pipe.ts
Angular 2 pipe to transform string to Title Case
import {Pipe, PipeTransform} from 'angular2/core';
/*
* Changes the case of the first letter of a given number of words in a string.
*/
@Pipe({name: 'titleCase', pure: false})
export class TitleCase implements PipeTransform {
transform(input:string, length: number): string{
return input.length > 0 ? input.replace(/\w\S*/g, (txt => txt[0].toUpperCase() + txt.substr(1).toLowerCase() )) : '';
@guibot17
guibot17 / firebase_firstime_user.js
Created July 19, 2017 19:20 — forked from shadowcodex/firebase_firstime_user.js
Firebase: Detecting if user exists.This snippet detects if a user ID already exists, in order to do first time user functions.
// Assuming you have included the firebase script tag above this javascript
// For reference here is the tag: <script src="https://cdn.firebase.com/js/client/2.3.2/firebase.js"></script>
// Assumes you have already authenticated the user.
// Setup your firebase reference
var ref = new Firebase('https://your-app.firebaseIO-demo.com/');
// Setup a way to get your userid (Assuming using provided firebase authentication method...)
function getUser(authData) {
@guibot17
guibot17 / delayedEnter, delayedLeave, and delayedHover.js
Created September 12, 2017 05:27 — forked from ixisio/delayedEnter, delayedLeave, and delayedHover.js
Simple delayed events for `mouseenter` & `mouseleave`
/*
* jQuery special events for delayedEnter, delayedLeave, and delayedHover
* Author: Scott Jehl, scott@filamentgroup.com
* Copyright (c) 2011 Filament Group
* licensed under MIT
* note: Each event can be used with bind or live event handling as you would use mouseenter,mouseleave, and hover
* events fire after 200ms timeout
*/
(function($){
//delayedEnter event
@guibot17
guibot17 / rxjs_operators_by_example.md
Created September 15, 2017 00:59 — forked from btroncone/rxjs_operators_by_example.md
RxJS 5 Operators By Example
@guibot17
guibot17 / audio-api-wrapper.ts
Created November 11, 2017 06:36 — forked from devfred/audio-api-wrapper.ts
Typescript: HTML5 Audio Wrapper for angular2
/**
* @class
* @description
* Wrapper for HTML5 audio.
*/
import {Injectable, NgZone} from 'angular2/core';
import {Observer} from 'rxjs/Observer';
import {Observable} from 'rxjs/Observable';
declare var AudioContext:any;
@guibot17
guibot17 / snap-to-grid.js
Created December 7, 2017 23:47 — forked from caleb531/snap-to-grid.js
Makes a jCanvas layer draggable along a defined grid
// Available in jCanvas v20.1.0
// The pixel multiple to snap to
var snapToAmount = 40;
// Round the given value to the nearest multiple of n
function nearest(value, n) {
return Math.round(value / n) * n;
}
$('canvas').drawArc({
layer: true,
@guibot17
guibot17 / sample.html
Created December 21, 2017 07:58 — forked from guillaumegarcia13/sample.html
Angular 4 ng-template & ng-container with parameters
<ng-template #followingpost let-author="author" let-age="age" let-text="text" let-badge="badge">
<div class="container-fluid">
<div class="card">
<div class="header">
<h4 class="title">{{ author }}</h4>
<p class="category">il y a {{ age }} jours</p>
</div>
<div class="content" [innerHTML]="text">
</div>
@guibot17
guibot17 / what-forces-layout.md
Created December 23, 2017 07:17 — forked from paulirish/what-forces-layout.md
What forces layout/reflow. The comprehensive list.

What forces layout / reflow

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.

Element

Box metrics
  • elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent
  • elem.clientLeft, elem.clientTop, elem.clientWidth, elem.clientHeight
  • elem.getClientRects(), elem.getBoundingClientRect()