Skip to content

Instantly share code, notes, and snippets.

View bloodyowl's full-sized avatar
🦉

Matthias Le Brun bloodyowl

🦉
View GitHub Profile
function stripAccent( str ) {
var accents = "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿñ"
, fixes = "aaaaaaceeeeiiiiooooouuuuyaaaaaaceeeeiiiioooooouuuuyyn"
, reg = new RegExp("(" + accents.split("").join("|") + ")", "g")
function replacement(a){
return fixes[accents.indexOf(a)] || ""
}
@bloodyowl
bloodyowl / index.htm
Created December 1, 2012 15:43 — forked from kunalvarma05/index.htm
AJAX Contact Form with PHP
<!DOCTYPE HTML>
<html>
<head>
<title>Welcome to my Website</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="send.js"></script>
</head>
<body>
<h1>A Simple AJAX Contact Form</h1>
<form method="post" action="" id="contact_form">
@bloodyowl
bloodyowl / LICENSE.txt
Created October 26, 2012 17:04 — forked from 140bytes/LICENSE.txt
HTML5forIE
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2011 Matthias Le Brun http://mlb.li
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
@bloodyowl
bloodyowl / part2.md
Created October 29, 2017 10:08 — forked from wyeo/part2.md
Observable

Bienvenue dans la deuxième partie du tutoriel sur les Observables.

Résumé de partie 1

Dans la première partie, nous avons vu que les Observables nous permettent de traiter des données synchrones et asynchrones. Aussi, nous avons vu la méthode subscribe() à laquelle nous appliquons notre Observer afin de consulter les données. Enfin dans le dernier exemple, une méthode unsubscribe() qui va nous permettre en tant que Observer d'avoir la possibilité de decider de ne plus écouter les données émises.

Vous l’aurez compris, les Observables sont surtout utilisés dans l’objectif de manipuler de la donnée asynchrone. Nous allons donc essayer de comprendre, comment est-ce que les données reçue peuvent être manipulées.

Prenons un cas concret pour illustrer notre problématique :

jQuery(document).ready(function($){
var headerOffset = $(".main-header").height()
, blockMenu = $(".block-menu")
, scrolled
, isBelow = false
, isCurrentlyBelow = false
$(window).scroll(function () {
scrolled = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0