11497 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

J'utilise un petit script pour afficher une image au survol d'un lien, le script contient 2 function différentes car certains liens placé sur les côtés font sortir les images de l'écran.
Donc la deuxième fonction à des Offset différant de la première.

Tout fonctionne très bien, les deux fonctions affiches les images au survol, mais elle on le même Offset.

Comment faire ?

Voici le script :

this.screenshotPreview = function(){	
	/* CONFIG */
		
		xOffset = 10;
		yOffset = 50;
		
		// these 2 variable determine popup's distance from the cursor
		// you might want to adjust to get the right result
		
	/* END CONFIG */
	$("a.screenshot").hover(function(e){
		this.t = this.title;
		this.title = "";	
		var c = (this.t != "") ? "<br/>" + this.t : "";
		$("body").append("<p id='screenshot'><img src='"+ this.rel +"' alt='url preview' />"+ c +"</p>");								 
		$("#screenshot")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px")
			.fadeIn("fast");						
    },
	function(){
		this.title = this.t;	
		$("#screenshot").remove();
    });	
	$("a.screenshot").mousemove(function(e){
		$("#screenshot")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px");
	});			
};

this.imagePreview = function(){ 
        /* CONFIG */
                
               xOffset = 100;
		       yOffset = 200;
                
                // these 2 variable determine popup's distance from the cursor
                // you might want to adjust to get the right result
                
        /* END CONFIG */
        $("a.preview").hover(function(e){
                this.t = this.title;
                this.title = "";        
                var c = (this.t != "") ? "<br/>" + this.t : "";
                $("body").append("<p id='preview'><img src='"+ this.rel +"' alt='url preview' />"+ c +"</p>");	                                               
                $("#preview")
                        .css("top",(e.pageY - xOffset) + "px")
			            .css("left",(e.pageX + yOffset) + "px")
                        .fadeIn("fast");                                                
    },
        function(){
                this.title = this.t;    
                $("#preview").remove();
    }); 
        $("a.preview").mousemove(function(e){
                $("#preview")
                       .css("top",(e.pageY - xOffset) + "px")
			           .css("left",(e.pageX + yOffset) + "px");
        });                     
};

$(document).ready(function(){
	screenshotPreview();
	imagePreview();
});



Merci d'avance pour votre aide.
Modifié par hybrid59 (04 Mar 2013 - 15:08)
Salut, utilise 'var' pour déclarer des variables. Si les variable ne sont pas déclarer avec var elles sont globales, d'où le problème.
var xOffset = 10;
var yOffset = 50;
//....