begin process at 2012 05 29 11:48:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

IE8 > drag qui agrandit la zone affichable pourtant en overflow hidden


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

IE8 > drag qui agrandit la zone affichable pourtant en overflow hidden

dimanche 4 octobre 2009 à 12:21:11 | IE8 > drag qui agrandit la zone affichable pourtant en overflow hidden

neiimad

Bonjour.

Ma zone affichable <body> s'agrandit sous IE8 lorsque je tente de déplacer mon élément hors de celle ci, malgré l'overflow hidden. Je n'ai pourtant pas ce souci sous FF, Opera, IE6, IE7....

Est-ce que quelqu'un pourrait m'aiguiller sur ce point ? (je flanche après des heures de recherche...)


Ci joint, un code exemple simplifié, pour voir ce que ca donne :


Code HTML :
<!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<head>
	<meta http-equiv="content-type" content="text/html; charset=windows-1252" />
	<!--<meta http-equiv="x-ua-compatible" content="ie=emulateie7" />-->

	<style type="text/css">
		html, body { margin: 0; padding: 0; height: 100%; }
		html { overflow: hidden; position: absolute; z-index: 0; width: 1000px; max-width: 1000px; border: 1px solid blue; }
		body { overflow: hidden; position: relative; z-index: 1; width: 900px; max-width: 900px; border: 1px solid green; }
		#bloc { position: absolute; z-index: 2; height: 500px; width: 500px; background: red; }
		#testbug { font-family: "trebuchet ms"; background-color: rgb(255, 255, 255); color: #444444; text-decoration: none; word-spacing: normal; text-align: left; letter-spacing: 0pt; line-height: 1.2em; font-size: 5em; }
	</style>

	<script type="text/javascript">
		function addevent(obj, event, fct) {
			if (obj.attachevent)  { obj.attachevent("on" + event, fct);  }
			else { obj.addeventlistener(event, fct, true); }
		}

		var curx = 0;
		var cury = 0;

		function getpos (e) {
			curx = e.clientx;
			cury = e.clienty;
			if (dragging) { return false; }
		}

		addevent(document, 'mousemove', getpos);

		var elt = '';
		var dragging = false;
		var draginterval = '';
		var decalx = 0;
		var decaly = 0;
		var nextposx = 0;
		var nextposy = 0;
		var ondrag = '';

		function dragelt (elt) {
			if (elt) {
				if (!(elt.style.top)) { elt.style.top = 0 +'px'; }
				if (!(elt.style.left)) { elt.style.left = 0 +'px'; }
				if (!dragging) {
					dragging = true;
					decalx = curx - parseint(elt.style.left);
					decaly = cury - parseint(elt.style.top);
					ondrag = function() {
						nextposx = curx - decalx;
						nextposy = cury - decaly;
						if (nextposy <= 0) { nextposy = 0; }
						elt.style.left = nextposx + 'px';
						elt.style.top = nextposy + 'px';
						elt.focus();
					};
					draginterval = setinterval(ondrag, 10);
				}
			}
			else {
				dragging = false;
				clearinterval(draginterval);
			}
		}
	</script>

	<title>area 404</title>
</head>

<body id="top">

	<div id="testbug">testbug</div>

	<div id="bloc" onmousedown="dragelt(this); this.style.cursor = 'move';" onmouseup="dragelt(); this.style.cursor= 'auto';">yop</div>

</body>
</html>
dimanche 4 octobre 2009 à 14:35:51 | Re : IE8 > drag qui agrandit la zone affichable pourtant en overflow hidden

Bul3

Membre Club

Bonjour,
pas été très loin... mais :
decalx = curx - parseInt(elt.style.left);
decaly = cury - parseInt(elt.style.top);
or l'élément n'a pas de style=
( ça plante à ce niveau d'ailleurs ! )
soit utiliser ce qu'il y a dans le class
si class il y a, ou voir du coté de .offset???
ou .client???
sans préjuger du reste
Cordialement [mon Site] [M'écrire] Bul
dimanche 4 octobre 2009 à 17:57:34 | Re : IE8 > drag qui agrandit la zone affichable pourtant en overflow hidden

neiimad


Excuse moi, mais dans le JS fourni, il y a bien application du style à l'élément, je cite :


Code :
				if (!(elt.style.top)) { elt.style.top = 0 +'px'; }
				if (!(elt.style.left)) { elt.style.left = 0 +'px'; }


Cela dit, je vais voir du coté de offset ou .client
dimanche 4 octobre 2009 à 18:05:47 | Re : IE8 > drag qui agrandit la zone affichable pourtant en overflow hidden

neiimad

Aucun changement avec client ou offset...
dimanche 4 octobre 2009 à 18:23:29 | Re : IE8 > drag qui agrandit la zone affichable pourtant en overflow hidden

Bul3

Membre Club

je ne sais pas si vous avez remarqué,
mais le colorateur syntaxique ( un bug )
transforme tout en minuscules

pas simple de reprendre pour tester !
que corriger qui n'est pas une erreur ?

vous pouvez nous remettre en "brut" ?

j'ai testé en corrigeant la 1ère fois,
et je tombais sur une erreur à ce niveau
peut-être était-ce du à mes corrections ?

dimanche 4 octobre 2009 à 19:27:45 | Re : IE8 > drag qui agrandit la zone affichable pourtant en overflow hidden

neiimad

Ah, en effet je n'avais pas remarqué que le colorateur syntaxique du site générait un code erroné.

J'ai mis l'URL en ligne sinon, ici : http://area404.free.fr/test/index.html

Mais comme demandé, en brut (si ca passe) :







<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<!--<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />-->

<style type="text/css">
html, body { margin: 0; padding: 0; height: 100%; }
html { overflow: hidden; position: absolute; z-index: 0; width: 1000px; max-width: 1000px; border: 1px solid blue; }
body { overflow: hidden; position: relative; z-index: 1; width: 900px; max-width: 900px; border: 1px solid green; }
#bloc { position: absolute; z-index: 2; height: 500px; width: 500px; background: red; }
#testBug { font-family: "Trebuchet MS"; background-color: rgb(255, 255, 255); color: #444444; text-decoration: none; word-spacing: normal; text-align: left; letter-spacing: 0pt; line-height: 1.2em; font-size: 5em; }
</style>

<script type="text/javascript">
function addEvent(obj, event, fct) {
if (obj.attachEvent) { obj.attachEvent("on" + event, fct); }
else { obj.addEventListener(event, fct, true); }
}

var curX = 0;
var curY = 0;

function getPos (e) {
curX = e.clientX;
curY = e.clientY;
if (dragging) { return false; }
}

addEvent(document, 'mousemove', getPos);

var elt = '';
var dragging = false;
var dragInterval = '';
var decalX = 0;
var decalY = 0;
var nextPosX = 0;
var nextPosY = 0;
var onDrag = '';

function dragElt (elt) {
if (elt) {
if (!dragging) {
dragging = true;
decalX = curX - parseInt(elt.offsetLeft);
decalY = curY - parseInt(elt.offsetTop);
onDrag = function() {
nextPosX = curX - decalX;
nextPosY = curY - decalY;
if (nextPosY <= 0) { nextPosY = 0; }
elt.style.left = nextPosX + 'px';
elt.style.top = nextPosY + 'px';
elt.focus();
};
dragInterval = setInterval(onDrag, 10);
}
}
else {
dragging = false;
clearInterval(dragInterval);
}
}
</script>

<title>Area 404</title>
</head>

<body id="top">

<div id="testBug">testBug</div>

<div id="bloc" onmousedown="dragElt(this); this.style.cursor = 'move';" onmouseup="dragElt(); this.style.cursor= 'auto';">yop</div>

</body>
</html>



lundi 5 octobre 2009 à 00:01:36 | Re : IE8 > drag qui agrandit la zone affichable pourtant en overflow hidden

neiimad

En fait, c'est le focus sur lélément qui génère ce "bug" sur IE8...........

J'avais mis ce focus pour éviter à FF de sélectionner le texte de mon objet dragué ou du contenu en arrière plan, et je me retrouve en face de ce problème à nouveau...... Si quelqu'un sait comment faire en sorte que FF ne selectionne pas un texte lors d'un drag, ej suis preneur !!
lundi 5 octobre 2009 à 09:26:11 | Re : IE8 > drag qui agrandit la zone affichable pourtant en overflow hidden

Bul3

Membre Club
je viens de tester avec IE8....
pas de soucis à priroi ????
>>faire en sorte que FF ne selectionne
>>pas un texte lors d'un drag,
ajouter return false;
lundi 5 octobre 2009 à 09:46:05 | Re : IE8 > drag qui agrandit la zone affichable pourtant en overflow hidden

neiimad

En fait, j'as déjà mis un return false, qui ne fonctionne que sur IE, pas sur FF ;)

lundi 5 octobre 2009 à 10:03:05 | Re : IE8 > drag qui agrandit la zone affichable pourtant en overflow hidden

Bul3

Membre Club
décidément !?!
pour IE unselectable="on"
et pour Fx return false; dans le onmousedown
j'utilise ça comme ça (?)
<div ...
unselectable="on"
onmousedown="trait(this); return false;">
et tout baigne

1 2

Cette discussion est classée dans : style, var, elt, overflow, if


Répondre à ce message

Sujets en rapport avec ce message

2 menuS deroulants java dans une page [ par DEVLYNE ] Bonjour!Sachez que je suis uns très grande débutante mais j'ai un petit souci.J'utilise un logiciel gratuit: Coffee Cup DHTML menu pour faire mes menu Variables PHP dans JS [ par Dyx50 ] Bonjour,Alors voila depuis 2 jours je me casse la tête à propos de ma question. J'explique mon problème :J'ai un espace membre ou le membre peut ajout Page de chargement après un formulaire [ par cubitus79 ] Bonjour, J'ai actuellement des problème pour mettre en place une animation de chargement a la suite de mon formulaire. J'explique mieux: j'ai un for Pb avec IE [ par Thiman ] j'ai mis ce script d'info-bulle, trouver sur internet. Il fonctionne parfaitement sur Firefox et Opéra mais problème avec IE. Pourriez-vous me venir e parser un xml [ par zeitoun69 ] Bonjour je dois parser un fichier xml et former un tableau a partir des données extraite j'ai réussi a former le tableau mais les données sont celles repetition code [ par chguignard ] bonjour, j'ai une page avec un menu. j'aimerai sortir le CSS de la page html ainsi que le detail du menu (les ul et li). comment puis je faire pour q changer le sens d'un texte qui défile [ par anthony428 ] Bonjour à tous, je viens de plonger les mains dans un site dont je suis chargé de faire la refonte et je souhaiterais changer le sens du texte qui d Deux javascripts identique dans une même page [ par guerrilleur ] Voila je voudrai avoir de fois le même javascript sur ma page. voici mon code actuel: [code=html] --> /*************** JS : Firefox oui, autres navigateurs non... [ par tets88 ] Bonjour, Je me suis amusé à faire un calendrier. Sous Firefox il fonctionne no problemo amigo. Dès que j'essaye de l'ouvrir avec un autre navigateur


Nos sponsors


Sondage...

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 : 0,780 sec (4)

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