1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
var domain = 'localhost/www';
var domain2 = getDomain(document.location.href);
var cible = '/try.php';//'/advanced_ajax_result.php';
var slidearrow = 0; //le curseur sélectionner
var width = 180;//largeur du la barre
var mininitpos = getOffsetPosition('min', "Left"); //position initiale du curseur min
var maxinitpos = getOffsetPosition('max', "Left");//position initiale du curseur max
var arrow_deplacee_difx = 0;
var maxprice = 4.00;
window.onload = function()
{
if(LireCookie('javas')==null) // JAVASCRIPT DETECTION
{EcrireCookie('javas','ok');}
$('min').observe('mousedown', function (event){commencer_deplacement(event,$('min'))});
$('min').observe('mouseup', arreter_deplacement);
$('max').observe('mousedown', function (event){commencer_deplacement(event,$('max'))});
$('max').observe('mouseup', arreter_deplacement);
document.observe('mousemove', function(event){deplacer_arrow(event)});
document.observe('click',function(event){if (slidearrow!= 0 )arreter_deplacement;});
}
/*
Récupère la position réelle d'un objet dans la page (en tenant compte de tous ses parents)
IN : Obj => id de l'element ; Prop => Offset voulu (Top,Left,Bottom,Right)
OUT : Numérique => position réelle d'un objet sur la page.
*/
function getOffsetPosition(id, side){
element = document.getElementById(id);
newNode = document.createElement("div");
newNode.innerHTML = "<div style=\"height: 12px;\"></div>";
element.insertBefore(newNode, element.firstChild);
iVal = 0;
oObj = element;
var sType = "oObj.offset"+side;
while (oObj && oObj.tagName != "html") {
iVal += eval(sType);
oObj = oObj.offsetParent;
}
element.removeChild(newNode);
return iVal;
}
/**
* fonction appellé quand on clique sur l'un des 2 curseurs
**/
function commencer_deplacement(ev,arrow) {
slidearrow = arrow; //la variable pointe désormais sur la fleche à déplacer
old_mouseCoords=mouseCoords(ev); //On récupère la position de la souris
old_windowCoords=getPosition(arrow); //Et la position de notre fleche
arrow_deplacee_difx=old_mouseCoords.x-old_windowCoords.x;
}
/**
* detache le curseur actuel en affectant la var slidearrow
**/
function arreter_deplacement() {
slidearrow = 0; //La variable vaut 0
}
/**
* Renvoie l'abscisse de la souris
**/
function mouseCoords(ev)
{
if(ev.pageX)
{
return {x:ev.pageX};
}
return
{
x:ev.clientX + document.body.scrollLeft - document.body.clientLeft
};
}
function getPosition(e)
{
var left = 0;
while (e.offsetParent)
{
left += e.offsetLeft;
e = e.offsetParent;
}
left += e.offsetLeft;
return {x:left};
}
/**
*retourne la valeur numérique d'un champ contenant un nombre et une unité
* example 125px retourne 125
* @access public
* @return void
**/
function getleftstyleValue(champ,unite){
return champ.substr(0,champ.length-unite.length);
}
/**
* fonction qui deplace le curseur attaché, gère la largeur de la barre ainsi
* que la collision (comme j'ai pu)...
**/
function deplacer_arrow(ev)
{
if(slidearrow!=0)
{
if (slidearrow==$('min')) // si on bouge la fleche du minimum
{
var souris=mouseCoords(ev);
if (souris.x>=mininitpos && souris.x<=(mininitpos+width)) {
var nouvelle_position = souris.x-arrow_deplacee_difx-mininitpos;
slidearrow.style.left=(nouvelle_position)+'px';
if (getleftstyleValue($('max').style.left,'px')>nouvelle_position) {
document.search_tools.prixmin.value = Math.abs((nouvelle_position*maxprice)/(width));
}
else
{
document.search_tools.prixmax.value = Math.abs((nouvelle_position*maxprice)/(width));
}
}
}
else if (slidearrow==$('max')) // si on bouge la fleche du maximum
{
var souris=mouseCoords(ev);
if (souris.x>=maxinitpos && souris.x<=(maxinitpos+width)) {
var nouvelle_position = souris.x-arrow_deplacee_difx-maxinitpos;
slidearrow.style.left=(nouvelle_position)+'px';
if (getleftstyleValue($('min').style.left,'px')>nouvelle_position) // si on est au dessous de l'autre curseur
{
//on modifie le champ prix minimum
document.search_tools.prixmin.value = Math.abs((nouvelle_position*maxprice)/(width));
}
else // si on est au dessus c'est le champ prix max que l'on modifie
{
document.search_tools.prixmax.value = Math.abs((nouvelle_position*maxprice)/(width));
}
}
}
}
} |
Partager