Ну, я сам на форуме новенький, но опыт некоторый при моем возрасте в 13 лет имеется. Хотя может и нет)
Есть несколько вариантов, но стоит понять, что PHP - вообще не вариант. Это серверный язык программирования и здесь, конечно, может какой-нибудь гуру что-то и может, но делать такое на PHP - откровенный онанизм.
Конечно, лучший вариант тут Флэш, но если так уже не хочется...
Тут все сводится к двум вариантом.
1. Использование функций JavaScript и JQuery. Там вроде можно что-то такое сделать, особенно в JQuery. Но это опять онанизм.
Хотя более оправданный.
2. Использование CSS. Есть там такая вещ как hover.
Привожу пример. Хотим делать собаку-злюку.
Делаем статичную собаку. Делаем гифку с злой собакой.
В CSS при наведении ставим эту гифку, и собака злится при наведении.
Но тут опять проблема - невозможно организовать воздействие одних предметов на другие.
Соответственно ближе всего к цели подходит вариант 1.
Но лучше всего - не онанируйте и учие флэш)