7
votes

Survolez uniquement une partie non transparente de l'image

Y a-t-il un moyen de ne faire qu'une partie non transparente d'une image pour déclencher la souris-over événement?

Si la souris se déplace vers la zone transparente, la souris-Out doit être déclenchée et le script devrait écouter n'importe quel événement de souris sur une couche sous l'image.

est-ce possible? Merci pour toute entrée.

EDIT: Je cherche à le faire sans utiliser Flash.


0 commentaires

6 Réponses :


0
votes

Autant que je sache, pas possible jusqu'à présent pour détecter la partie transparente d'une image.


0 commentaires

0
votes

Vous pouvez faire un enfant divisé avec une hauteur fixe à la taille approximative de la zone transparente, positionnée absolument sur celle-ci avec fond vierge et bordure, puis ajoutez vos scripts à aciter ce divisé ou de contenu dans la DIV.


0 commentaires


-1
votes

c'est possible, si vous utilisez flash .

Peu de conseils ici

  • Chargez l'image de mauvaise qualité à l'aide de Flash, écrivez cliquez sur les gestionnaires d'événements à l'intérieur de Flash, (et transmettez-le à JavaScript lorsque vous avez cliqué sur)
  • Chargez l'objet Flash avec un drapeau transparent
  • Définissez l'objet ou incorporer une étiquette à très grand zindex comme 9999 ou quelque chose pour le faire sur le dessus

5 commentaires

Pourquoi Cliquez sur Événements? Comment pouvez-vous, en flash, déterminez quelles parties de l'image sont transparentes pour que vous sachiez où mettre des événements?


@David, en flash si vous joignez Cliquez sur l'événement sur l'image, cela ne peut être effectué que sur Non transparent. Je n'ai tout simplement pas d'exemple à montrer maintenant, mais j'ai sûrement déjà vu les autres auparavant.


Comment trouver des événements clic pour aider à détecter lorsque la souris se déplace sur les zones non transparentes?


@David, vous savez, Flash peut écrire des codes à l'intérieur de chaque objet comme des images, et les images peuvent être PNG ou GIF, flash Comprendre la transparence des images et mettre un clic d'événement à l'intérieur des images ne peut que connecter la partie visible. Eh bien, je comprends qu'il est difficile de donner un sens sans voir un exemple.


On dirait que OP vient de mentionner qu'il ne veut pas utiliser Flash, alors je vais faire quand il y aura une chance.



7
votes

Vous pouvez utiliser une image avec l'ancienne mode et balises. Une balise de zone peut déclencher des événements de souris JavaScript (un exemple d'utilisation est ce plugin JQuery: jQuery maphilight ) .
Cependant, il n'y a pas de bon moyen de créer la carte de manière dynamique - vous devrez le faire manuellement ou appeler un service côté serveur pour la mapper.


3 commentaires

Merci. Cela me montre un chemin pour continuer. Laissez-moi attendre et voyez si je pouvais obtenir plus de réponse.


Ceci est probablement votre meilleur pari. Les bonnes idées décroissantes comprennent a) la superposition de divs transparents sur la partie non transparente de l'image et l'ajout de l'événement de clic à ces divs; et b) utiliser Flash, mais cela devrait être un dernier recours.


Comme vous l'avez dit, j'ai fini par utiliser les cartes d'image classiques. Impossible de trouver une autre bonne méthode pour le gérer sans flash. Le site Web de mon client sera derrière une connexion relativement plus lente, il a donc dû écraser tous les kilobytes du code. Merci!



3
votes

ImageMapster cherche être un bon moyen facile d'obtenir Cartes de la zone d'image Navigateur croisé de travail (IE6 +, nécessite JQuery).

Une autre option serait d'utiliser RAPPAEL.JS qui crée Vecteur SVG Images traduites pour travailler dans tout de IE6 vers le haut (tout sauf le navigateur de stock dans de vieux téléphones Android, je crois). Ils peuvent être contrôlés à l'aide de JavaScript de toutes sortes de façons et peuvent avoir tous les événements standard par exemple. Mouseover, cliquez sur, etc.

Raphaël fonctionne mieux ici que l'option Flash en ce qu'elle ne s'appuie pas sur Flash. C'est moins simple que l'option Carte régionale et a une courbe d'apprentissage escarpée, mais, pour des cas complexes et des formes changeantes de manière dynamique, il apporte l'avantage supplémentaire d'une large gamme de façons de contrôler les images vectorielles que vous créez.


0 commentaires