begin process at 2012 05 28 10:46:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > JBLOCKS, EFFET APPARITION DAMIER

JBLOCKS, EFFET APPARITION DAMIER


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :jquery, effet, damier Niveau :Initié Date de création :17/06/2010 Date de mise à jour :17/08/2010 21:38:30 Vu / téléchargé :3 031 / 225

Auteur : genepink

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Petit script basé sur jQuery :
- découpe des images en damier (nombre de "cases" paramétrable)
- affiche ces cases en fadeIn avec des temps d'exécution différents

il suffit d'appeler jQuery et le script ci dessous, et d'affecter la classe "block-me" aux images sur lesquelles on veut affecter l'effet.

démo : http://peekaboo-web.net/jblocks/

Source

  • /********************************************DO NOT REMOVE THIS PLEASE *********************************************
  • *
  • * script réalisé par Sébastien Pauwels
  • * http://www.peekaboo-web.net
  • *
  • * juin 2010 - août 2010
  • *
  • * l'utilisation et la modification de ce script sont libres et autorisées
  • *
  • * utilisation :
  • * -> téléchargez jQuery (http://docs.jquery.com/Downloading_jQuery)
  • * -> appelez jQuery dans votre page
  • * -> appelez jBlocks dans votre page
  • * -> les images sur lesquelles ce script agit ont pour class "block-me"
  • *
  • ********************************************************************************************************************/
  • nb=10; //nombre de blocs /!\ un nombre trop élevé peut ralentir l'exécution du script
  • tmax=5000; //temps d'apparition max des blocs /!\ un nombre trop élevé peut ralentir l'exécution du script
  • max_=nb/2;
  • $(document).ready(function() {
  • $(".block-me").hide();
  • $(window).load(function () {
  • //on parcourt toutes les images de la page et voit si elle doivent être traîtées par le script (si elles ont pour classe "block-me")
  • var x = document.images;
  • for (var i=0;i<x.length;i++)
  • {
  • if(x[i].className == "block-me") {
  • x[i].setAttribute('id',"blocked-"+i);
  • x[i].setAttribute('name',"blocked-"+i);
  • block_it(i);
  • }
  • }
  • });
  • });
  • function block_it(i) {
  • //on crée une div à la place de l'image (même taille)...
  • var img="#blocked-"+i;
  • var img_src = $(img).attr("src");
  • var w=$(img).width()/max_;
  • var h=$(img).height()/max_;
  • var n_b_div = document.createElement("div");
  • n_b_div.className="j_content";
  • n_b_div.style.width= $(img).width();
  • n_b_div.style.height= $(img).height();
  • n_b_div.id="j_content_"+i;
  • n_b_div.style.cssFloat = "left";
  • n_b_div.style.styleFloat= "left";
  • n_b_div.style.margin = "0";
  • n_b_div.setAttribute("style", n_b_div.getAttribute("style") + "; float:left; ");
  • $(img).parent().append(n_b_div);
  • var j_c="j_content_"+i;
  • //... qui contient toutes les cases
  • for (var k=0; k<max_; k++) {
  • for (var j=0; j<max_; j++) {
  • //on crée les cases (div "n_div")...
  • var id_blocks="#blocked_blocks_"+i+"_"+k+"_"+j;
  • var n_div = document.createElement("div");
  • var n_div2 = document.createElement("div");
  • var b_l=-w*j;
  • var b_t=-h*k;
  • n_div.style.width= w;
  • n_div.style.height= h;
  • n_div.style.styleFloat= "left";
  • n_div.setAttribute("style", n_div.getAttribute("style") + "; float:left; ");
  • n_div.id="blocked_blocks_"+i+"_"+k+"_"+j;
  • var j_content="#j_content_"+i;
  • $(j_content).append(n_div);
  • //... qui contiennent chacune une div avec en image de fond l'image d'origine en position différente
  • n_div2.style.backgroundImage="url("+img_src+")";
  • n_div2.style.backgroundPosition=b_l+"px "+b_t+"px";
  • n_div2.style.width= w;
  • n_div2.style.height= h;
  • n_div2.style.display= "none";
  • n_div2.id="blocked_blocks2_"+i+"_"+k+"_"+j;
  • $(id_blocks).append(n_div2);
  • }
  • }
  • //en on appelle la fonction permettant l'effet fadeIn de jQuery
  • move_it(i);
  • }
  • function move_it(i) {
  • for (var k=0; k<max_; k++) {
  • for (var j=0; j<max_; j++) {
  • var t = Math.random()*tmax+1000;
  • var id_blocks2="#blocked_blocks2_"+i+"_"+k+"_"+j;
  • $(id_blocks2).fadeIn(t);
  • }
  • }
  • }
/********************************************DO NOT REMOVE THIS PLEASE *********************************************
 *
 * script réalisé par Sébastien Pauwels
 * http://www.peekaboo-web.net
 *
 * juin 2010 - août 2010
 *
 * l'utilisation et la modification de ce script sont libres et autorisées
 *
 * utilisation :
 * -> téléchargez jQuery (http://docs.jquery.com/Downloading_jQuery)
 * -> appelez jQuery dans votre page
 * -> appelez jBlocks dans votre page
 * -> les images sur lesquelles ce script agit ont pour class "block-me"
 * 
 ********************************************************************************************************************/

nb=10;  //nombre de blocs   /!\ un nombre trop élevé peut ralentir l'exécution du script
tmax=5000; //temps d'apparition max des blocs   /!\ un nombre trop élevé peut ralentir l'exécution du script

max_=nb/2;
$(document).ready(function() {
    $(".block-me").hide();

    $(window).load(function () {


        //on parcourt toutes les images de la page et voit si elle doivent être traîtées par le script (si elles ont pour classe "block-me")
        
        var x = document.images;
        for (var i=0;i<x.length;i++)
        {
            if(x[i].className == "block-me") {

                x[i].setAttribute('id',"blocked-"+i);
                x[i].setAttribute('name',"blocked-"+i);
                block_it(i);
            }
        }
    });
});


function block_it(i) {
    //on crée une div à la place de l'image (même taille)...
    var img="#blocked-"+i;
    var img_src = $(img).attr("src");
    var w=$(img).width()/max_;
    var h=$(img).height()/max_;
    var n_b_div = document.createElement("div");
    n_b_div.className="j_content";
    n_b_div.style.width= $(img).width();
    n_b_div.style.height= $(img).height();
    n_b_div.id="j_content_"+i;
    n_b_div.style.cssFloat = "left";
    n_b_div.style.styleFloat= "left";
    n_b_div.style.margin = "0";
    n_b_div.setAttribute("style", n_b_div.getAttribute("style") + "; float:left; ");
    $(img).parent().append(n_b_div);
    var j_c="j_content_"+i;
    //... qui contient toutes les cases
    for (var k=0; k<max_; k++) {
        for (var j=0; j<max_; j++) {
            //on crée les cases (div "n_div")...
            var id_blocks="#blocked_blocks_"+i+"_"+k+"_"+j;            
            var n_div = document.createElement("div");
            var n_div2 = document.createElement("div");
            var b_l=-w*j;
            var b_t=-h*k;        
            n_div.style.width= w;
            n_div.style.height= h;
            n_div.style.styleFloat= "left";
            n_div.setAttribute("style", n_div.getAttribute("style") + "; float:left; ");
            n_div.id="blocked_blocks_"+i+"_"+k+"_"+j;
            var j_content="#j_content_"+i;
            $(j_content).append(n_div);
            //... qui contiennent chacune une div avec en image de fond l'image d'origine en position différente
            n_div2.style.backgroundImage="url("+img_src+")";
            n_div2.style.backgroundPosition=b_l+"px "+b_t+"px";
            n_div2.style.width= w;
            n_div2.style.height= h;
            n_div2.style.display= "none";            
            n_div2.id="blocked_blocks2_"+i+"_"+k+"_"+j;
            $(id_blocks).append(n_div2);           
        }
    }
    //en on appelle la fonction permettant l'effet fadeIn de jQuery
    move_it(i);
}

function move_it(i) {
    for (var k=0; k<max_; k++) {
        for (var j=0; j<max_; j++) {
            var t = Math.random()*tmax+1000;
            var id_blocks2="#blocked_blocks2_"+i+"_"+k+"_"+j;
            $(id_blocks2).fadeIn(t);
        }
    }
}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

18 juin 2010 11:28:59 :
- correction - ajout de commentaires
17 août 2010 21:38:31 :
problème de "compatibilité" réglé : il ne s'agissait pas à proprement parlé d'incompatibilité. Les images n'étaient pas (entièrement ?) chargée avant l'appel aux modifications. Le nouveau code inclut un preload d'images par régler le problème.

 Sources de la même categorie

Source avec Zip EDITION D'ÉTIQUETTES SANS OUTIL EXTERNE par ucfoutu
Source avec Zip APPRENDRE À PRONONCER LES MOTS ANGLAIS par alpha5
Source avec Zip AFFICHAGE DE TEXTE DANS UNE PICTUREBOX par alpha5
Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture MYNOTIFICATIONS par inwebo
Source avec Zip Source avec une capture PLUGIN JQUERY LISTE MODIFIABLE (COMBO) AUTOCOMPLÉTÉE par medkarim
Source avec Zip Source avec une capture RÉALISER UN COMPTE À REBOURS AVEC REDIRECTION AUTOMATIQUE AV... par kmsystem
GALERIE PHOTO DYNAMIQUE EN JAVASCRIPT "JQUERY" par zertyx
Source avec Zip Source avec une capture EFFET RAYONS DU SOLEIL par tefa24600

Commentaires et avis

Commentaire de LeFauve42 le 21/06/2010 11:11:43 7/10

L'effet est interessant, mais je ne peux m'empecher de relever quelques maladresses dans le code :
- Pourquoi faire un « $(".block-me").hide(); » alors que juste apres tu as une boucle qui parcourt toutes tes images. Ca fait faire deux boucles dans le DOM, dont une pour rien. Tu peux cacher tes images dans la seconde boucle.
- Tu changes l'id de tes images avant de passer a ta fonction block_it() un bout de cet id pour le reconstruire et recuperer l'image. Pourquoi ne pas simplement passer l'image a ta fonction (d'une part ca evite de changer l'id des images, ce qui est un peu intrusif, et d'autre part rechercher un element dans le dom a partir de son id, ca prend du temps pour rien). Tu devrais pouvoir faire pareil pour move_it.
- Tu fais beaucoups de concatenations de chaine pour rien dans tes boucles. tu pourrais faire la plupart en dehors. PAr exemple au lieux de calculer «"url("+img_src+")"» pour chaque div, tu pourrais faire directement «img_src = "url("+$(img).attr("src")+")"; ». Meme chose pour le style (et au fait, pourquoi setter 2 fois le "float: left;" ?).

Bonne optimisation !
Eric

Commentaire de jdmcreator le 23/06/2010 20:14:31

Est-ce que c'est normal que ça ne fonctionne pas sous Safari 5 ?

Commentaire de Makeindesign le 24/06/2010 00:32:47

Bonsoir,

il ne fonctionne pas avec le navigateur chrome, et je ne vois pas comment changer ce code...

Bonne continuation.

Commentaire de genepink le 17/08/2010 21:45:29

Merci à tous pour vos commentaires ! Je suis désolé, je n'ai pas eu trop le temps de me replonger dans le code ces dernières seamines...

JDMCREATOR et MAKEINDESIGN -> le problème est régle, cf l'historique des modifications

LEFAUVE42 -> merci beaucoup pour ton commentaire très instructif !!! Je n'ai réglé que le problème urgent (preload, merci JQuery). Je me pencherai sur l'optimisation du code un peu plus tard.
Pour répondre à certaines de tes questions / commentaires : le $(".block-me").hide(); servait surtout à cacher les images dès l'affichage, pour ne pas qu'elles s'affichent en cas de temps mort durant l'exécution du script. Maintenant, avec le preload, il est incontournable je pense.
Pourquoi 2 float:left ? Parce que les navigateurs ne supportent pas tous le même code...
Pour le reste, tu as tout à fait raison, je m'y pencherai très bientôt...

Merci encore !

Commentaire de genepink le 17/08/2010 21:46:36

PS et désolé pour les fautes d'orthographes :S :D

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

effet de fondu [ par seb019 ] Bonjour,Voila sur un site j'ai vu un truc qui me plait, je pense que c'est du javascript mais je suis pas sur :lorsqu'on clic sur un lien la page s'ou effet ouverture de page réactualisé [ par jlagabrielle ] Bonjour !J'ai mis le script suivant pour ouvrir mes pages avec un effet mais l'effet n'a lieu que lors de la première ouverture de la page, quand je r Effet de texte [ par romain2boss ] Salut,je suis pas un fan de javascript, et je cherche de puis un bon bout de temps un script de défilement de texte qui fasse un peu comme l'intro de effet livre [ par guyman ] Exist il un script pour faire un genre d effet d'un livre comme quand on change de page ou comme un cartable de photo Effet panoramique [ par isu_san ] Bonjour tout le monde, je suis tout nouveau dans l'obscur monde de la création de site et je suis à la recherche d'un script qui me permettrait de me effet de survol sur une colonne [ par matt438 ] salutj'ai pb de création javscript/cssje voudrais créer un effet de survol sur une colonne d'un tableau. je n'ai réussi qu'à le faire en appelant l'id Effet d'image survolée [ par JoJo738 ] effet en image [ par astuces_jeux ] salut les mecs,Je cherche comment on fait que qand on met le curseur sur une image c'est une autre image qui apparetcomment on fait ???merci de m'aide Rafraichissement d'une iframe [ par Ordinastie ] Bonjour.Voici mon probleme. J'ai un formulaire d'upload de fichiers PDF et je souhaite faire en sorte qu'a la s&#233;lection du fichier, celui-ci s'af


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,108 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales