Maison  >  Article  >  interface Web  >  Css utilise l'expression js pour réaliser l'échange d'effets_Experience

Css utilise l'expression js pour réaliser l'échange d'effets_Experience

WBOY
WBOYoriginal
2016-05-16 12:08:491465parcourir

IE5 et les versions ultérieures prennent en charge l'utilisation d'expressions en CSS pour associer des propriétés CSS à des expressions Javascript. Les propriétés CSS peuvent ici être des propriétés inhérentes à l'élément ou des propriétés personnalisées. C'est-à-dire que l'attribut CSS peut être suivi d'une expression Javascript et que la valeur de l'attribut CSS est égale au résultat du calcul de l'expression Javascript. Vous pouvez référencer directement les propriétés et les méthodes de l'élément lui-même dans l'expression ou utiliser d'autres objets du navigateur. L'expression est comme si elle se trouvait dans une fonction membre de cet élément.

Attribuer des valeurs aux propriétés inhérentes des éléments

Vous pouvez par exemple positionner un élément en fonction de la taille du navigateur.

#myDiv {
position : absolue ;
largeur : 100px ;
hauteur :
gauche : expression(document.body.offsetWidth - 110 + "px");
top: expression(document.body.offsetHeight - 110 + "px");
background: red;
}

Attribuez une valeur à l'attribut personnalisé de l'élément

Par exemple, supprimez la zone de lien en pointillé sur la page. L'approche habituelle est :

link1
link2
link3

Cela peut ne pas être apparent à premier coup d'oeil Cela montre les avantages d'utiliser l'expression, mais s'il y a des dizaines voire des centaines de liens sur votre page, utiliserez-vous toujours Ctrl+C et Ctrl+V mécaniquement. De plus, en comparant les deux, lequel produit le plus de redondance ? Et pourquoi pas plus de codes ?

La façon d'utiliser l'expression est la suivante :

a {star : expression(onfocus=this.blur)}
link1
link2
link3


Explication : L'étoile à l'intérieur est un attribut défini arbitrairement par vous. Vous pouvez le définir comme vous le souhaitez, puis l'instruction contenue dans expression() est le script JS. N'oubliez pas qu'il y a un guillemet entre l'attribut personnalisé et l'expression. Parce que l'essence est toujours CSS, c'est. placé dans la balise de style, et Pas dans le script. OK, il est donc facile d’éliminer la zone en pointillé du lien dans la page en une seule phrase. Mais ne soyez pas complaisant. Si l’effet spécial déclenché est un changement d’attribut CSS, le résultat sera différent de votre intention initiale. Par exemple, si vous souhaitez changer la couleur de la zone de texte sur la page lorsque la souris entre et sort, vous pouvez naturellement penser qu'elle doit être écrite comme
{star : expression(onmouseover=this.style.backgroundColor="#FF0000";
onmouseout=this.style.backgroundColor="#FFFFFF")}


Mais le résultat est une erreur de script. La bonne façon de l'écrire est d'écrire. la définition du style CSS dans la fonction, comme suit Affichage :

Remarque Ce n'est pas très nécessaire Il n'est généralement pas recommandé d'utiliser l'expression car l'expression nécessite des ressources de navigateur plus élevées.

Exemple : Utiliser une expression en CSS pour implémenter le contrôle par lots d'objets d'interface

Description du problème : Nous savons, grâce à l'utilisation des styles CSS, que nous pouvons définir l'attribut de classe d'un lot d'objets pour spécifier le même style. Unifier l'interface. Mais comment unifier les événements d'objets d'un même type ? Par exemple : il existe d'innombrables interfaces Css utilise l'expression js pour réaliser l'échange d'effets_Experience Comment se rendre compte que lorsque la souris passe cette image, le src de l'image devient **_over. jpg ?


Solution : Utiliser la méthode d'expression de css
Pour une implémentation spécifique, veuillez regarder la méthode d'écriture de .css :

/*Remplacer l'image CSS*. /
#imgScript { /*Ici, utilisez l'ID de l'objet comme style générique, vous pouvez également définir une fonction CSS*/
star:expression(
onmouseover = function()
{
/*Remplacer l'image*/
if(this.hover != null) {
this.name = this.src
this.src = this.src.replace('.jpg', '_over; .jpg');
this.HasChg = 1;
}
},
onmouseout = function()
{
/*Restaurer l'image originale*/
if (this.HasChg != null){
this.src = this nom;
this.HasChg = null
}
)

}/* fin imgScript*/

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn