11484 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
C'est la première fois que je viens sur ce forum, je cherche une réponse qui concerne un effet en javascript, je crois. J'ai des notions simples en javascript et je recherche le code précis pour refaire le même effet...que j'ai juste a copier/coller...
le site c'est www.canva.com
Alors, une fois sur le site, sur la page d’accueil et d'inscription, lorsque vous baladez la souris sur l'écran, le fond flou se défloute. Voilà j'ai tout dis :
Selon vous, quel code dois-je précisément utiliser pour refaire cet effet??
Merci merci merci, pour votre réponse !
Salut je suis débutant aussi, Je ne pourrais pas te dire le code exact mais en examinant le code je vois qu'ils utilisent un js-blurEffect- donc je suppose que ça permet de rendre flou une image et ensuite doivent préciser d'annuler cet effet au passage du curseur .Je te conseil de faire des recherches sur google sur JS blur effect si tu ne trouve pas ta réponse ici , je laisse les pros te dire ce qu'ils en pensent ça m’intéresse aussi.
Bonjour Marengo, Aeros,

je suis curieux comme vous et j'ai cherché un peu..
et j'ai pondu ce petit script qui fait quelque chose qui s'approche de l'effet que vous recherchez :

Je connais mieux jquery que le javascript pure c'est pour cela que je l'utilise quand à canvas il assez facile à appréhender sur le site de mdn (mozilla developper network).

Pour le reste c'est un peu d'expérience de dev...

bonne soirée


<html>
    <header>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
        <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>

        <style>
            #curseur {
                position: absolute;
                border: solid 1px black;
                width: 50px;
                height: 50px;
                
            }
            body {
                margin: 0;
            }
        </style>
    </header>
    <body>
        
        <canvas id="canvas" width="640" height="480"></canvas>
        
        <div id="curseur"><canvas id='cursor-canvas' width="50" height="50"></canvas></div>
        
        <script>
            $(document).ready( function () {
                
                var canvas = document.getElementById('canvas');
                var ctx = canvas.getContext('2d');
                
                var cursorCanvas= document.getElementById('cursor-canvas');
                var ctx_cc = cursorCanvas.getContext('2d');
                
                //Une fois la page bien ready
                //l'image de fond est chargée dans un objet Image
                var img1 = new Image();
                img1.src = 'images/Jules_dessine.jpg';

                img1.onload = function(){
                    //L'image dessinée dans le canvas du fond
                    ctx.drawImage(img1, 0, 0, 640, 480);
                };
                
                //Le filtre qui floute l'image du fond est appliquée sur le 
                //canvas du fond
                ctx.filter = 'blur(5px)';

                //Lorsque le curseur se promène sur l'image
                //l'image suit le curseur
                $("#canvas").on("mousemove", function (event) {
                    var x=event.pageX;
                    var y=event.pageY;
                    $("#curseur").css("left",event.pageX);
                    $("#curseur").css("top",event.pageY);
                    
           //L'astuce pour afficher l'image en clair
           //est dans cette seule ligne:
           //img1 c'est l'image sans aucun effet de flou (le flou est appliqué au canvas)
           //Les 4 premiers paramètres de cette fonction précise la portion de l'image
           //que l'on veut afficher en l'occurrence on veut afficher ce qui ce trouve au
           //niveau du curseur : x et y sont les coordonnées du curseur, 50x50 c'est la taille
           // de la zone que l'on veut afficher!
           //Les 4 derniers paramètres sont l'emplacement et la taille de l'image dans
           //le canvas lui même ...
                    ctx_cc.drawImage(img1, x, y, 50, 50, 0, 0, 50, 50);

                });

            });
        </script>            
    </body>
        
</html>