2016-08-10 2 views
0

Я пытаюсь вывести текст и .svg другому цвету при наведении.Переход SVG при наведении не работает в Safari 9.1.2 (11601.7.7)

a{ 
 
    color: #ff0000; 
 
    display: inline-block; 
 
    margin: 0 0 0 1em; 
 
    text-decoration: none; 
 
    text-transform: lowercase; 
 
    transition: color 1s linear; 
 
} 
 
a:hover{ 
 
    color: #000; 
 
} 
 
svg{ 
 
    vertical-align: middle; 
 
    width: 2em; 
 
} 
 
path{ 
 
    transition: fill 1s linear; 
 
    fill: #ff0000; 
 
} 
 
a:hover path{ 
 
    fill: #000; 
 
}
<a href="http://example.com" class="tweet-this"> 
 
    <i class="icon icon-twitter"> 
 
     <svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><title>twitter</title><path d="M24.679 10.658c-.651.281-1.35.471-2.083.556.749-.437 1.324-1.13 1.595-1.955-.701.405-1.477.699-2.303.858-.662-.687-1.604-1.116-2.647-1.116-2.003 0-3.627 1.582-3.627 3.535 0 .277.032.546.094.805-3.014-.147-5.687-1.554-7.476-3.693-.312.522-.491 1.129-.491 1.777 0 1.226.64 2.308 1.614 2.942-.594-.018-1.154-.177-1.643-.442v.045c0 1.712 1.25 3.141 2.909 3.466-.304.081-.625.124-.956.124-.234 0-.461-.022-.682-.063.462 1.404 1.801 2.426 3.388 2.455-1.241.948-2.805 1.513-4.505 1.513-.292 0-.581-.017-.865-.049 1.605 1.003 3.512 1.588 5.56 1.588 6.671 0 10.32-5.385 10.32-10.056l-.01-.457c.709-.498 1.323-1.121 1.81-1.829" fill="#fff"></path></svg> 
 
    </i> 
 
    Tweet this 
 
</a>

Переход на .SVG не срабатывает в Safari, но это делает в Chrome и Firefox.

This answer заявляет, что вам нужен начальный и конечный цвет, который у меня есть.

Как я могу сделать переходную работу в Safari?

+0

Я видел свидетельства от кого-то в той же версии Safari, что переход работает правильно на их машине. Maddening. – Florian

ответ

1

Я указал на article on rrott.com titled "Bug with CSS transition animation for SVG in Safari."

Сочные биты:

Я обнаружил, что переход перестает работать для всех посещенных ссылок , и это может быть причиной, почему я не был в состоянии воспроизвести выдайте на одной машине, пока она не сработала.

и

К сожалению, изменения: посетили псевда в CSS, а также с помощью Xmlns: XLink внутри SVG не делают переход работать снова и нет взломов там.

В статье также перечисляет ряд возможных решений:

Я вижу несколько решений там, но, к сожалению, ни один из них не достаточно хорошо:

  1. добавить некоторые случайные данные к ссылке (что-то вроде/# timestamp, которая выглядит уродливая, но ссылка всегда будет «не предназначена» для пользователей).

  2. Не используйте анимацию и встроенный SVG в ссылках.

  3. Поместите ссылку над изображением SVG, используя положение и индекс z, чтобы изображение было 'clickjacked'. Он работает, но требует дополнительного кода js для обработки события наведения изображения , чтобы не потерять анимацию зависания, например. добавьте код JQuery , который будет обрабатывать щелчки по логотипу и изменить window.location.

  4. Динамический переход SVG за пределы ссылки в случае Safari.

  5. Оставьте это как есть, если у вас мало пользователей Safari.

Я пойду с номером 5 на данный момент.

Смежные вопросы