А в чем проблема? Нужно просто две картинки с разным з-индексом. На верхней основная часть а на той, что внизу, то что нужно менять. В верхней картинке нужно сделать вырез (прозрачность) и через нее будет видно нижнюю. Еще можно сделать 3 картинки. Работает так:
1. Верхняя с прозрачностью.
2. С текущим цветом. 100% непрозрачность слоя
3. С цветом на который переключаемся. 0% непрозрачность слоя
И с определенной скоростью прозрачность одного слоя уменьшается, а второго увеличивается. Вроде бы красиво