Afficher un message
Vieux 17/08/2007, 23h35   #11
ASM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Désactiver une page Html

En réponse à Laurent vilday qui écrivit, en date du : 17/08/07 21:02,
le message suivant :
> Delf a écrit :
>
>> Autre question : pensez-vous qu'il soit judicieux de désactiver aussi
>> les liens ?

>
> Dans ce cas autant mettre un gros div qui intercepte les clicks par
> dessus tout le monde plutot que de s'embêter avec chaque élément. Parce
> que après les liens, ca va être les éléments avec un event mouseover,
> click ou autre qu'il va falloir tracker. Trop fatiguant imo.
>
> function divAntiClick()
> {
> var
> div = document.createElement('div'),
> dS = div.style,
> dB = document.body;
> // interdit les clicks
> div.onclick = function() { return false; };


Oui, pas bête ... mais ... et comment revient-on à la "normale" ?

> dS.opacity = 0.25;
> // opacité pour IE
> /*@cc_on dS.filter = 'alpha(opacity=25)'; @*/
> dS.backgroundColor = 'black';
> dS.position = 'absolute';
> dS.top = '0px';
> dS.left = '0px';
> dS.width = '100%';
> dS.zIndex = 1e6;


Pourquoi un z-index ?
(dans la mesure où on insère ce div qu'en fin de body, en fin du flux)

> // enregistre l'état d'overflow avant modif
> dB.oldOverflow = dB.style.overflow;
> // supprime l'overflow pour empêcher le user
> // de servir des scrollbars. Ne pas oublier
> // lors de la réactivation de replacer l'overflow
> // à sa valeur initiale stockée dans oldOverflow
> dB.style.overflow = 'hidden';


dB.style.overflow = dB.style.overflow==''? 'hidden' : '';

> // détermine la hauteur du div, cf fonction suivante


et pourquoi ?
dS.height = '100%';
ne suffit-il pas ?
Tiens ? ça n'a lair de fonctionner qu'avec FF !

> dS.height = getViewportHeight() + 'px';


ça ne mesure finalement que le l'aire de vue ... pas le document.

> // ajoute enfin le div
> dB.appendChild(div);
> }
>
> /**
> * Returns the current height of the viewport.
> * @return {Int} The height of the viewable area
> * of the page (excludes scrollbars).
> */
> function getViewportHeight()


finalement, c'est ce getViewportHeight qui ne fonctionne pas chez moi
(avec mon test)
Safari 2.02
Opera 9.0
à moins que ce ne soit le body overflow qui n'y fasse pas grand' chose ?
(la molette continue de scroller, et de ttes façons le dS ne remplit que
le 1er écran alors que le bouton actionnant le divAntiClick est au 3ième
écran).

> {
> var
> IE = /*@cc_on !@*/false,
> height = -1;
>
> // IE, Gecko
> if ( ( document.compatMode || IE ) && !window.opera )
> {
> // Standards mode
> if ( document.compatMode === 'CSS1Compat' )
> {
> height = document.documentElement.clientHeight;
> }
> // Quirks
> else { height = document.body.clientHeight; }
> }
> // Safari, Opera
> else { height = self.innerHeight; }
>
> return height;
> }
>

  Réponse avec citation
 
Page generated in 0,06038 seconds with 9 queries