Je me suis créer un petit outil pour illustrer les avantages de polarisation des verres. Fondamentalement, un utilisateur de glisser les verres (un Raphael.js chemin d'accès) sur une scène éblouissante (le fond de CSS de la DIV conteneur) et de "voir à travers" les lentilles. Voici le code js:
var rsr = Raphael("playmask", 720,540);
// Lens path
var path_f = rsr.path("M0,73.293c0.024-39.605,17.289-53.697,35.302-61.34C53.315,4.312,99.052-0.012,119.011,0 c38.56,0.021,43.239,11.164,43.229,29.9c-0.002,3.45-0.76,28.632-16.349,58.949c-10.332,20.092-28.434,60.424-76.452,60.396 C29.821,149.223-0.022,112.898,0,73.293 M200.594,29.922c0.011-18.734,4.699-29.871,43.262-29.851 c19.96,0.013,65.691,4.39,83.695,12.052c18.005,7.662,35.254,21.772,35.231,61.379c-0.023,39.606-29.909,75.896-69.526,75.872 c-48.02-0.027-66.076-40.377-76.384-60.484C201.32,58.557,200.594,33.373,200.594,29.922");
path_f.attr({"stroke-width":2, fill:'url(img/polarized.jpg)'} );
var move = function(dx,dy){
this.translate( dx-this.ox, dy-this.oy );
this.ox = dx;
this.oy = dy;
},
start = function(){
this.ox = 0;
this.oy = 0;
},
end = function(){
};
path_f.drag(move,start,end);
L' #playmask
div a cette CSS (juste le "non-polarisée" image d'arrière-plan et la taille):
#playmask{
height:540px;
width:720px;
background: url(img/unpolarized.jpg);
}
Ce que je suis coincé avec est:
- Chrome/Firefox, comme toujours, jouer nice: les lentilles en forme de montre, et le remplissage de l'image semble "fixe" tout en faisant glisser les objectifs (voir la première photo);
- Les versions IE 7,8,9 travail, mais (surprise!) ils ne se comportent pas de la même manière: le fond de l'image est "collé" à la forme de la lentille (voir le deuxième joint pic).
Ce que je pose la question ici est: puis-je faire IE9/8/7 comporter de la même manière, c'est, en conservant le fond de l'image fixe tout en faisant glisser les lentilles? Si oui, comment?
Firefox capture d'écran:
IE9 capture d'écran:
Modifier à l'Aide de Modernizr pour détecter les fonctionnalités du navigateur, j'ai remarqué que cet étrange comportement semblent être liées à la "non-smil" d'IE.
J'ai découvert un comportement bizarre de IE9... le fond ne pas "coller", mais si je fais glisser le masque autour, sélectionnez le texte et appuyez sur le bouton droit de la souris, il rafraîchit la "polarisée" arrière-plan à la position correcte!!
Edit 2 (21 Mai 2012) Pas de solution pour le moment :( mais pour être plus précis, elle n'est pas liée de quelque façon à la "non-smil" caractéristique; et, la bonne façon de reproduire le bug sur IE9 est de glisser le verre autour de, sélectionnez du texte dans le reste de la page, et rouler sur l'icône de raccourci qui s'affiche (le bleu avec une flèche). Les lunettes de bg comme par magie "rafraîchit" à la bonne position.
Important Edit 3 (28 Août 2012)
Vous pouvez trouver tout cela emballé dans ce jsfiddle ( http://jsfiddle.net/q4rXm/17/ )