Я борюсь с этим уже несколько дней и все же разрешаю это. Я читал много документации и искал в самых темных углах. Есть несколько обсуждений ссылок stackoverflow, которые фактически обсуждают эту проблему, например: Greyscale Background Css Images
Короче: я пытаюсь иметь цветную версию и серая версия боковых панелей, перьев, текста и Eagle посередине. Когда вы mouseenter
на любую из боковых панелей, должна быть цветная версия этих вещей. Когда вы mouseleave
все становится серым. Теперь, после нескольких дней борьбы с этим, мне удалось получить два разных результата.
Версия 1. Я использовал два <div>'s
для каждого изображения. Например: http://fiddle.jshell.net/zPGwY/
Версия 2. Я использовал один <div>
для каждого изображения. Но не может получить тот же эффект fadeIn и fadeOut, что и версия 1. Переход немного более заметен. Кажется, что орел исчезает на мгновение, а затем цветной орел исчезает. Заметьте, что мой jQuery, вероятно, дерьмовый для этой версии, поэтому просьба идти вперед и менять его. http://fiddle.jshell.net/gB6Sx/5/
Я хочу использовать вторую версию HTML и CSS и получить переходы, как в версии 1 (более гладкой). Поэтому, когда вы mouseenter
любую боковую панель, орел, перья (из одной боковой панели), текст (этой боковой панели), и эта боковая панель сама по себе становится цветной. Когда вы mouseleave
все становится серым.
Очень благодарен, если кто-нибудь сможет мне помочь.
В версии 1 вы используете только изменение между классами. В версии 2 происходит радикальное изменение анимации css.
Вы должны использовать переходы, которые работают с псевдоклассами и изменениями классов, но вам нужно использовать "переход" в вашем css.
Переходы: https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Using_CSS_transitions
Здесь моя версия 3: http://fiddle.jshell.net/sPUR2/
EDITED: О, боже мой! Я думаю, что определенно я понял вашу проблему
первый шаг: пожалуйста, измените CSS на переходы.
второй шаг: с этим HTML: <section id="epic_home"> <div id="home_top">... <div id="home_right">... <div id="home_left">... </section>
не делайте этого: $("#epic_home").on(...);
сделайте следующее: $("#home_top").on(...); $("#home_right").on(...); $("#home_left").on(...);
$("#home_top").on(...); $("#home_right").on(...); $("#home_left").on(...);
Делегируйте события на каждую боковую панель, а не в основной контейнер. Ваша версия1 работает, потому что #home_top, #home_left, #home_right имеют "position: absolute;" свойство и ваш раздел #epic_home занимают высоту 0 пикселей.
По моему мнению, этот макет требует нескольких изменений, но вы можете начать с вышеупомянутого.