SnippetVamp

Because spending time searching snippets sucks.



javascript 3 jquery 3 php 1 vanilla 3

.

Derniers snippets

Welcome to my SnippetVamp space !

Retrouver le numéro d'ordre d'un item par rapport à son conteneur

// Récupéré depuis la doc de jQuery - je ne m'en souviens jamais

ul>
  <li id="foo">foo</li>
  <li id="bar">bar</li>
  <li id="baz">baz</li>
</ul>

var listItem = document.getElementById( "bar" );
alert( "Index: " + $( "li" ).index( listItem ) );

// Index: 1 

jquery

https://api.jquery.com/index/

<iframe width="100%" height="398" src="http://raphael.salique.fr/snippetvamp/index.php?embed=57d908cb3955e" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 14/09/2016

Détection du scroll vertical (haut / bas)

// Initial state
var scrollPos = 0;
// adding scroll event
window.addEventListener('scroll', function(){ scrolling() });

// the function : compares the "new" scrolling state with the previous
// (this allows detecting either "up" or "down" scrolling)
// then saves the new in the $previous for the next iteration.

function scrolling() {
    if ((document.body.getBoundingClientRect()).top > scrollPos) {
        console.log('scrolling DOWN');
    } else {
        console.log('scrolling UP');
    }
    scrollPos = (document.body.getBoundingClientRect()).top;
}

javascript vanilla

http://lehollandaisvolant.net/?mode=links&id=20160224192625

<iframe width="100%" height="488" src="http://raphael.salique.fr/snippetvamp/index.php?embed=56d2d85282db9" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 28/02/2016

Filtrer une liste en pur javascript et sans jquery

/*
# ------------------ BEGIN LICENSE BLOCK ------------------
#
# This file is part of SIGesTH
#
# Copyright (c) 2009 - 2014 Cyril MAGUIRE, (!Pragmagiciels)
# Licensed under the CeCILL v2.1 license.
# See http://www.cecill.info/licences.fr.html
#
# ------------------- END LICENSE BLOCK -------------------
*/
/*
HTML Structure
<label for="">Filtrer</label>
<input id="inputFilterForwhatYouWantHere" name="inputName" type="text" placeholder="Find in the list" />
<ul id="filterForWhatYouChooseForInputAbove" class="filter">
<li><a>First element</a></li>
</ul>
*/
;(function(window,undefined){

    'use_strict';

    var keyCode = 0;
    var isIE = isBrowserIE();
    function isBrowserIE() {
        var nav = navigator.userAgent.toLowerCase();
        return (nav.indexOf('msie') != -1) ? parseInt(nav.split('msie')[1]) : false;
    }
    
    // from http://www.javascripter.net/faq/onkeydown.htm
    function fromKeyCode (n) {
        if( 47<=n && n<=90 ) return unescape('%'+(n).toString(16))
        if( 96<=n && n<=105) return 'NUM '+(n-96)
        if(112<=n && n<=135) return 'F'+(n-111)
        switch (n) {
            case (3): return 'Cancel' //DOM_VK_CANCEL
            case (6): return 'Help'   //DOM_VK_HELP
            case (8): return 'Backspace'
            case (9): return 'Tab'
            case (12): return 'NUM 5'  //DOM_VK_CLEAR
            case (13): return 'Enter'
            case (16): return 'Shift'
            case (17): return 'Ctrl'
            case (18): return 'Alt'
            case (19): return 'Pause|Break'
            case (20): return 'CapsLock'
            case (27): return 'Esc'
            case (32): return 'Space'
            case (33): return 'PageUp'
            case (34): return 'PageDown'
            case (35): return 'End'
            case (36): return 'Home'
            case (37): return 'Left Arrow'
            case (38): return 'Up Arrow'
            case (39): return 'Right Arrow'
            case (40): return 'Down Arrow'
            case (42): return '*' //Opera
            case (43): return '+' //Opera
            case (44): return 'PrntScrn'
            case (45): return 'Insert'
            case (46): return 'Delete'

            case (91): return 'WIN Start'
            case (92): return 'WIN Start Right'
            case (93): return 'WIN Menu'
            case (106): return '*'
            case (107): return '+'
            case (108): return 'Separator' //DOM_VK_SEPARATOR
            case (109): return '-'
            case (110): return '.'
            case (111): return '/'
            case (144): return 'NumLock'
            case (145): return 'ScrollLock'

            //Media buttons (Inspiron laptops) 
            case (173): return 'Media Mute On|Off'
            case (174): return 'Media Volume Down'
            case (175): return 'Media Volume Up'
            case (176): return 'Media >>'
            case (177): return 'Media <<'
            case (178): return 'Media Stop'
            case (179): return 'Media Pause|Resume'

            case (182): return 'WIN My Computer'
            case (183): return 'WIN Calculator'
            case (186): return '; :'
            case (187): return '= +'
            case (188): return ', <'
            case (189): return '- _'
            case (190): return '. >'
            case (191): return '/ ?'
            case (192): return '\` ~'
            case (219): return '[ {'
            case (220): return '\\ |'
            case (221): return '] }'
            case (222): return '\' "'
            case (224): return 'META|Command'
            case (229): return 'WIN IME'

            case (255): return 'Device-specific' //Dell Home button (Inspiron laptops)

        }
        return null
    }

    function arrayCompare(a1, a2) {
        if (a1.length != a2.length) return false;
        var length = a2.length;
        for (var i = 0; i < length; i++) {
            if (a1[i] !== a2[i]) return false;
        }
        return true;
    }
    function inArray(needle, haystack) {
        var length = haystack.length;
        for(var i = 0; i < length; i++) {
            if(typeof haystack[i] == 'object') {
                if(arrayCompare(haystack[i], needle)) return true;
            } else {
                if(haystack[i] == needle) return true;
            }
        }
        return false;
    }

    var object = {
        init: function() {
            var input = document.getElementsByTagName('input');
            for (var i = 0, c = input.length; i < c; i++) {
                this.addEventListener(input[i],"keypress", this);
                this.addEventListener(input[i],"keydown", this);
            };
        },
        field:'',
        idPressed: '',
        fieldVal: '',
        addEventListener: function(el, eventName, handler) {
            if (el.addEventListener) {
                el.addEventListener(eventName, handler, false);
            } else {
                el.attachEvent('on' + eventName, object.handleEvent);
            }
        },
        handleEvent: function(e) {
            var obj = Object;
            var evt = e ? e:event;
            var chrTyped, chrCode = 0;

            if (evt.charCode!=null)     chrCode = evt.charCode;
            else if (evt.which!=null)   chrCode = evt.which;
            else if (evt.keyCode!=null) chrCode = evt.keyCode;

            if (chrCode==0) chrTyped = 'SPECIAL KEY';
            else chrTyped = String.fromCharCode(chrCode);
            if (evt.keyCode==8) chrTyped = 'Backspace';

            if (isIE) {
                obj = object;
            } else {
                obj = this;
            }
            obj.field = evt.target || evt.srcElement;
            obj.idPressed = obj.field.getAttribute('id');
            obj.fieldVal = obj.field.value; 

            if (chrTyped != 'SPECIAL KEY') {
                obj.action(chrTyped);
            }
        },
        action: function(a) {
            var obj = Object;
            if (isIE) {
                obj = object;
            } else {
                obj = this;
            }

            var id = obj.idPressed;
            if (id == null) return true;

            var val = obj.fieldVal;
            var idList = id.substring(14,id.length); //we remove "inputFilterFor" from input id

            var list = document.getElementById('filterFor'+idList); //to find list associated with input
            if (list == null) return true;

            var listItem = list.getElementsByTagName('li');
            if (listItem == null) return true;

            var span = null;

            //text filled in input form
            if (a != 'Backspace') {
                //we add key because input value is filled after key is up
                val += a;
            } else {
                val = val.substring(0, val.length-1);//we remove last char because input value is updated after key is up
            }
            // if empty, all the list is display
            if(val == ''){
                for(var i =0, count = listItem.length; i < count; i++) {
                    listItem[i].style.display = 'list-item';
                }
                return true;
            }
            // regex build from what is filled in form : (.*)e(.*)x(.*)e(.*)m(.*)p(.*)l(.*)e(.*)
            var regexp = '\\b(.*)';
            for(var i =0, count = val.length; i < count; i++){
                if (inArray(val[i],['.','?','*','+','/'])) {regexp += '(\\'+val[i]+')(.*)';}
                else if (val[i] != '') {regexp += '('+val[i]+')(.*)';}
            }
            regexp += '\\b';
             // for each item of the list
            for(var i =0, count = listItem.length; i < count; i++) {
                listItem[i].style.display = 'list-item';

                // we looking for span tag wrapped by link tag
                var links = listItem[i].getElementsByTagName('a');
                for (var k = 0, c= links.length; k < c; k++) {
                    var span = links[k].getElementsByTagName('span');
                }
                // we take the first one
                if (span[0] != undefined) {
                    span = span[0];

                    if(span.innerHTML.match(new RegExp(regexp,'i'))) {
                        listItem[i].style.display = 'list-item';
                    } else {
                        listItem[i].style.display = 'none';
                    }
                }
            }
            return true;
        }
    };

    // Init
    object.init();

})(window);

javascript jquery vanilla

http://www.ecyseo.net/article36/filtrer-une-liste-en-pur-javascript-et-sans-jquery

<iframe width="100%" height="4520" src="http://raphael.salique.fr/snippetvamp/index.php?embed=5390e71ad2cac" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 05/06/2014

Stocker des données dans le programme... marche pour les programmes légers, avec peu de données

<?php

//On ouvre la base de donnée sous forme de tableau
$db = db();
//on ajoute quelques données et on affiche la base
@$db['entries'][] = 'hello world '.count(@$db['entries']);
var_dump($db);
//on enregistre la base
db($db);

//A partir d'ici, ne touchez à rien ou tout explose.

//Base de donnée json compressée
$database = '';
//fonction de gestion de base de donnée intégrée
function db($d=false){
    $s = file_get_contents(__FILE__);
    if(!$d){
        preg_match_all('/\$database = \'(.*?)\';/s', $s, $result, PREG_PATTERN_ORDER);
        return $result[1][0]==''?array():json_decode(gzinflate($result[1][0]),true);
    }else{
        file_put_contents(__FILE__,preg_replace('/\$database = \'(.*?)\';/s', '$database = \''.gzdeflate(json_encode($d)).'\';', $s));
    }
}
?>

php

http://blog.idleman.fr/snippet-25-php-integrez-une-base-de-donnee-dans-votre-fichier-unique-dexecution/

<iframe width="100%" height="632" src="http://raphael.salique.fr/snippetvamp/index.php?embed=538eda36f1f18" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 04/06/2014

Un Scrolltotop sans jQuery (Vanilla JavaScript)

/*
# ------------------ BEGIN LICENSE BLOCK ------------------
#
#
# Copyright (c) 2009 - 2014 Cyril MAGUIRE
# Licensed under the CeCILL v2.1 license.
# See http://www.cecill.info/licences.fr.html
#
# ------------------- END LICENSE BLOCK -------------------
*/
;(function(window,undefined) {

    'use_strict';

    var timeOut;
    var isIE = isIE();

    function isIE() {
        var nav = navigator.userAgent.toLowerCase();
        return (nav.indexOf('msie') != -1) ? parseInt(nav.split('msie')[1]) : false;
    }

    function backToTop() {
        if (document.body.scrollTop!=0 || document.documentElement.scrollTop!=0){
            window.scrollBy(0,-50);
            timeOut=setTimeout('backToTop()',40);
        }
        else {
            clearTimeout(timeOut);
        }
    }

    function getScrollPosition() {
        return Array((document.documentElement && document.documentElement.scrollLeft) || window.pageXOffset || self.pageXOffset || document.body.scrollLeft,(document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop);
    }

    function Remove(idOfParent,idToRemove) {
        if (isIE) {
            document.getElementById(idToRemove).removeNode(true);
        } else {
            var Node1 = document.getElementById(idOfParent); 
            var len = Node1.childNodes.length;
            
            for(var i = 0; i < len; i++){           
                if (Node1.childNodes[i] != undefined && Node1.childNodes[i].id != undefined && Node1.childNodes[i].id == idToRemove){
                    Node1.removeChild(Node1.childNodes[i]);
                }
            }
        }   
    }

    function addElement(idOfParent,idToAdd,htmlToInsert) {
        var DomParent = document.getElementById(idOfParent);//id of body
        var newdiv = document.createElement('div');

        newdiv.setAttribute('id',idToAdd);
        newdiv.innerHTML = htmlToInsert;

        DomParent.appendChild(newdiv);
    }

    function displayBackButton() {
        var pos = [];
        var fleche = '\u21E7';

        if (isIE) {
            fleche = '\u25B2';
        }
        pos = getScrollPosition();
        var topLink = document.getElementById('toplink');
        if (pos[1] > 150) {
            if (topLink == null) {
                addElement('top','toplink',''+fleche+'');
            }
        } else {
            if (topLink != null) {
                Remove('top','toplink');
            }
        }
    }

    //add to global namespace
    window.onscroll = displayBackButton;
    window.displayBackButton = displayBackButton;
    window.backToTop = backToTop;


})(window);  

#toplink {
    position: fixed;
    bottom: 20px;
    width: 100px;
    text-align: center;
    right:10px;
}
#toplink a { 
    font-size: 40px;
    opacity: 0.8;
}

jquery javascript vanilla

http://www.ecyseo.net/article35/scrolltotop-sans-jquery-en-pur-javascript

<iframe width="100%" height="1982" src="http://raphael.salique.fr/snippetvamp/index.php?embed=5386f4c30dc78" type="text/html"></iframe>

Texte seul - Permalink - Snippet public posté le 29/05/2014

Flux RSS de cette page


SnippetVamp 1.84 par Bronco - Page générée en 0.026 s