У меня проблема с анимацией CSS3.
.child {
opacity: 0;
display: none;
-webkit-transition: opacity 0.5s ease-in-out;
-moz-transition: opacity 0.5s ease-in-out;
transition: opacity 0.5s ease-in-out;
}
.parent:hover .child {
opacity: 0.9;
display: block;
}
Этот код работает, только если я удалю изменение display
.
Я хочу изменить отображение сразу после наведения, но прозрачность следует изменить с помощью перехода.
Ответы:
Основываясь на ответе Майклса, это фактический код CSS для использования
источник
Вы можете делать с анимацией CSS:
источник
Если есть возможность - используйте
visibility
вместоdisplay
Например:
источник
Этот обходной путь работает:
определить «ключевой кадр»:
Используйте этот «ключевой кадр» при «наведении»:
источник
Я использовал это, чтобы добиться этого. Они исчезают при наведении, но не занимают места, когда спрятаны, идеально!
источник
Немного изменил, но результат красивый.
Спасибо всем.
источник
visibility: hidden;
в .child /visibility:visible;
при наведении курсора, и это должно решить проблему программы чтения с экранаЕсть еще один хороший способ сделать это с помощью событий-указателей:
К сожалению, это не поддерживается в IE10 и ниже.
источник
У меня такая же проблема. Я пробовал использовать анимацию вместо переходов - как это было предложено @MichaelMullany и @Chris - но это работало только для браузеров webkit, даже если я скопировал с префиксами «-moz» и «-o».
Я смог обойти проблему, используя
visibility
вместоdisplay
. Это работает для меня, потому что мой дочерний элементposition: absolute
не влияет на поток документов. Это может сработать и для других.Вот как будет выглядеть исходный код с моим решением:
источник
Если вы запускаете изменение с помощью JS, скажем, при нажатии, есть хороший обходной путь.
Вы видите, что проблема возникает из-за того, что анимация игнорируется при отображении: ни один элемент, но браузер не применяет все изменения сразу, и элемент никогда не отображается: блок без анимации в то же время.
Уловка состоит в том, чтобы попросить браузер отобразить кадр после изменения видимости, но до запуска анимации.
Вот пример JQuery:
источник
Для абсолютных или фиксированных элементов вы также можете использовать z-index:
Остальные элементы теперь должны иметь z-index от -100 до 100.
источник
type=password
полях. Его не видно.Я знаю, это не совсем решение вашего вопроса, потому что вы просите
Мой подход решает более общий вопрос, но, возможно, это была фоновая проблема, которую следует решить, используя
display
в сочетании сopacity
.Моим желанием было убрать элемент с дороги, когда он не виден. Это решение делает именно это: оно перемещает элемент за пределы, и это можно использовать для перехода:
Этот код не содержит никаких префиксов браузера или хаков обратной совместимости. Он просто иллюстрирует концепцию того, как элемент удаляется, поскольку он больше не нужен.
Интересная часть - это два разных определения перехода. Когда указатель мыши наведен на
.parent
элемент, его.child
нужно сразу поставить на место, а затем его прозрачность изменится:Когда нет зависания или указатель мыши был перемещен с элемента, нужно дождаться завершения изменения непрозрачности, прежде чем элемент можно будет переместить за пределы экрана:
Перемещение объекта будет жизнеспособной альтернативой в случае, если настройка
display:none
не нарушит макет.Надеюсь, я попал в точку в этом вопросе, хотя и не ответил на него.
источник
Одна вещь, которую я сделал, - это установила маржу начального состояния примерно как «margin-left: -9999px», чтобы она не отображалась на экране, а затем сбросила «margin-left: 0» при наведении курсора. В этом случае оставьте "display: block". Помогло мне :)
Изменить: сохранить состояние и не возвращаться к предыдущему состоянию наведения? Хорошо, нам нужен JS:
источник
Чтобы иметь анимацию в обоих направлениях onHoverIn / Out, я сделал это решение. Надеюсь, это кому-то поможет
источник
КАК ВОССТАНОВИТЬ НЕПРОИЗВОДИТЕЛЬНОСТЬ С помощью CSS:
это мой код:
код CSS
или проверьте этот демонстрационный файл
источник
display
недвижимость просто вывезли.display:
не подлежит переходу. Вам, вероятно, потребуется использовать jQuery, чтобы делать то, что вы хотите.источник