Afficher un message
Vieux 18/08/2007, 03h36   #13
Laurent vilday
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Désactiver une page Html

ASM a écrit :
> 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.
>>
>> 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" ?


Bahh bahh, stéphane, voyons

var gestionnaire = function()
{
var active = null;
return {
show:function()
{
active = document.createElement('div');
....
document.body.appendChild(active);
},
hide:function{}
{
document.body.removeChild(active);
active = null;
}
};
}();

>> 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)


Tout simplement parce bien qu'il soit ajouté en fin de body, rien
n'indique que d'autres éléments en absolute avec un z-index n'existent
déjà sur la page. Alors dans le doute ....

>> // 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' : '';


Ben non malheureusement. Quid des 'auto', 'visible' et autre 'scroll' de
la propriété ?

>> // 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 !


Parce que je suis idiot et que j'ai rien testé. C'est l'idée que j'ai
suivi, j'avais un bout de code qui me semblait approprié et qui trainait
- inutilisé, peut être à raison - dans son coin, alors hop puisque
ça semblait collé et que j'avais pris le temps de commencer le post...
Mea culpa, j'aurais du tester.

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

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


Vi, d'ou "l'astuce" (hurmm de changer le body.style.overflow

>> // 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


Après test, ca passe pour IE7, FX2, Opera 9.22 et Safari (win) 3.0.2
beta. Je sais que tu le fais exprès rien que pour m'embêter

> à 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).


Satanée molette. Pourtant depuis le temps je devrais le savoir qu'il
faut tester... Bon tant pis, pas trop le temps pour plus. Pour l'OP,
peut être oublier l'idée du gros <div>

--
laurent
  Réponse avec citation
 
Page generated in 0,06495 seconds with 9 queries