la taille de l'arrière-plan avec la position d'arrière-plan ne modifie pas la position?

J'ai un sprite de 62 images de 91 * 91px, ce qui rend le truc 91 * 5642 px. Ils sont affichés dans une sorte de grille dynamique qui augmente et diminue en fonction de l'utilisateur/le mouvement du pointeur. Parfois, un élément (std 91 * 91 px), un zoom pour faire 120 * 120 px. Évidemment, je voulez le fond de croître avec de sorte que l'ensemble de l'91 * 91 px image est affichée dans la totalité des 120 * 120 élément.

Entrer background-size: 100% auto faire de la largeur toujours parfait. Le problème maintenant est que background-position attend de ses valeurs pour être mis à jour! Tous les 62 éléments inline style=background-position etc. Je ne peux pas mettre à jour le fond de la position de la ligne. Je veux que le fond à la première position, puis la redimensionner (zoom), pas de redimensionner et positionner ensuite (zoom à la mauvaise position).

Je ne suis pas sûr que je fais tout sens. Pour clarifier un peu:

  • Tous les éléments ont un style de width: 91px; height: 91px; background-size: 100% auto;.
  • La deuxième image aurait une ligne de style de background-position: 0 -91px.
  • Lorsque vous passez le curseur de l'élément tel qu'il devient un style width: 120px; height: 120px; et puis il montre la majeure partie de la 2ème image et une partie de la 1ère, parce que le positionnement se passe après le redimensionnement =(
  • Si je change le background-position (après zoom/pointage) à 0 -120pxil s'aligne correctement. (Mais évidemment, c'est mal quand pas de zoom/planant.)

Une solution très simple serait d'utiliser réelle zoom: 1.3 ou transform: scale(1.3)mais c'est très TRÈS lent avec des transitions.

Je dois être en manque de quelque chose. CSS a de plus intelligent que cela. Un sprite avec background-size... ce n'est pas impossible est-il!?

Comment le sprite de l'air est à moi, afin que je puisse rendre un 120 * 120 grille au lieu de 91 * 91, si ce serait plus simple...

EDIT: Avec l'exemple de violon: http://jsfiddle.net/rudiedirkx/g4RQx/

Smart réponse 1: background-position: 0 calc(100% /61 * 2) (61 parce 62 images, 2 puisque la 3e image)

source d'informationauteur Rudie