Изменить цвет фона на видео при наведении курсора мыши

Я новичок в фоновом видео.

Мой вопрос: могу ли я просто изменить цвет фона с каждой стороны (справа или слева) на видео с YouTube, когда я наводю курсор на каждую из сторон?

Так что практически, когда я наведен на левую сторону ... оранжевый фон будет заменен специальным видео на YouTube, а когда я наведу курсор на правую сторону (красный фон), он будет воспроизводить видео (отличное от левой стороны) в качестве фона.

Я много часов искал в Интернете, но не могу найти подходящего решения.

вот мой код:

.split {
    height: 100%;
    width: 50%;
    position: fixed;
    z-index: 1;
    top: 0;
    overflow-x: hidden;
    padding-top: 20px;
}

.left {
    left: 0;
    background-color: #E9D94C;
}

.right {
    right: 0;
    background-color: #EA2029;
}

.centered {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

.centered img {
    width: 100px;
    border-radius: 50%;
}
<div class = "container col-md-10">
  <div class = "top-intro" style = "position: relative;padding:20px;height:auto;margin:0 auto;font-family: arial;font-size: 12px;z-index: 99999;font-size: 15px;color: #000;text-align: center;border-radius: 10px;top:25px;background:rgba(255,255,255,0.5);">
    Lorem ipsum sit amet dolor
  </div>
</div>
<div class = "container-fluid">
  <div class = "split left">
    <div class = "centered">
      <img src = "https://www.w3schools.com/howto/img_avatar.png" alt = "Avatar woman">
      <h2>Jane Flex</h2>
      <p>Some text.</p>
    </div>
  </div>

  <div class = "split right">
    <div class = "centered">
      <img src = "https://www.w3schools.com/howto/img_avatar2.png" alt = "Avatar man">
      <h2>John Doe</h2>
      <p>Some text here too.</p>
    </div>
  </div>
</div>

вот мой полный код: http://jsfiddle.net/xkobLdv9/4/

Или мне для этого нужен какой-то javascript? Буду очень признателен, если у кого-то есть решение, потому что я не понимаю в javascript.

Спасибо, парни,

Да, это возможно, но для этого вам понадобится javascript (или даже лучше: JQuery)

Tim Gerhard 27.03.2018 08:36

к сожалению, я не понимаю их обоих :( Вы можете мне помочь, сэр @TimGerhard?

icaks 27.03.2018 08:37

Я отправил ответ, используя только css

Tim Gerhard 27.03.2018 08:42

@weBBer Я не понимаю кодировку jquery, сэр, но если вы можете добавить / изменить код jquery в моем предыдущем jsfiddle, это будет очень полезно. С уважением,

icaks 27.03.2018 08:48

Привет, @icaks, я заметил, что у вашего вопроса все еще нет отмеченного решения. Это потому, что вы просто забыли или ваш вопрос все еще без ответа? Я был бы рад помочь вам в дальнейшем в вашем случае, в противном случае отметьте этот вопрос как решенный, поскольку он помогает другим пользователям лучше взаимодействовать с stackoverflow.

Tim Gerhard 03.04.2018 07:54
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
5
1 143
3

Ответы 3

Я сделал вам небольшой пример: надеюсь, это поможет: https://jsfiddle.net/pkbxupxc/4/

(Как-то видео не воспроизводится в stackoverflow (но работает на jsfiddle).

По сути, все, что я сделал, это поместил iframe внутри div, дав ему 100% ширину и высоту, а затем установил display: block при наведении и display: none по умолчанию.

.hoverMe {
  background: coral;
  height: 400px;
  width: 100%;
  position: relative;
}

.hoverMe iframe {
  padding: 0;
}

.hidden {
  display: none;
}

.hoverMe:hover iframe.hidden {
  display: block;
}

.foreground {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba (255, 255, 255, 0.7);
}
<div class = "hoverMe">
  <iframe class = "hidden" width = "100%" height = "100%" src = "https://www.youtube.com/embed/avmjunRX_xo" frameborder = "0" allow = "autoplay; encrypted-media" allowfullscreen></iframe>
  <div class = "foreground">
    <h1>
      Hello World
    </h1>
  </div>
</div>

спасибо, сэр ... но у меня вопрос, allow = "autoplay" предполагается, что видео будет автоматически воспроизводиться при наведении указателя мыши? но почему ваш пример видео не выполняет автовоспроизведение?

icaks 27.03.2018 08:46

На самом деле я не знаю. Я только что нажал поделиться на YouTube, и это встроенный iframe по умолчанию, который они вам предоставляют

Tim Gerhard 27.03.2018 08:46

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

icaks 27.03.2018 08:49

Пожалуйста. Вы также можете использовать тег html <video>. Взгляните сюда w3schools.com/html/html5_video.asp

Tim Gerhard 27.03.2018 08:50

Я тоже хотел попробовать это на себе, поэтому создал именно то, что вам нужно, с помощью JQuery. Вот ссылка на него JSFIddle. Просто наведите указатель мыши на лицо персонажа.

<div class = "container col-md-10">
  <div class = "top-intro" style = "position: relative;padding:20px;height:auto;margin:0 auto;font-family: arial;font-size: 12px;z-index: 99999;font-size: 15px;color: #000;text-align: center;border-radius: 10px;top:25px;background:rgba(255,255,255,0.5);">
    Lorem ipsum sit amet dolor
  </div>
</div>
<div class = "container-fluid">
  <div class = "split left">
    <div class = "centered">
        <iframe width = "640" height = "360" src = "https://www.youtube.com/embed/N7ZmPYaXoic" frameborder = "0" allow = "autoplay; encrypted-media" allowfullscreen></iframe>
      <img src = "https://www.w3schools.com/howto/img_avatar.png" alt = "Avatar woman">
      <h2>Jane Flex</h2>
      <p>Some text.</p>
    </div>
  </div>

  <div class = "split right">
    <div class = "centered">
         <iframe width = "640" height = "360" src = "https://www.youtube.com/embed/cKhVupvyhKk" frameborder = "0" allow = "autoplay; encrypted-media" allowfullscreen></iframe>
      <img src = "https://www.w3schools.com/howto/img_avatar2.png" alt = "Avatar man">
      <h2>John Doe</h2>
      <p>Some text here too.</p>
    </div>
  </div>
</div>

<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<style>
.split {
    height: 100%;
    width: 50%;
    position: fixed;
    z-index: 1;
    top: 0;
    overflow-x: hidden;
    padding-top: 20px;
}

.left {
    left: 0;
    background-color: #E9D94C;
}

.right {
    right: 0;
    background-color: #EA2029;
}

.centered {
    position: absolute;
    top: 50%;
    left: 0;
    text-align: center;
    right: 0;
}

.centered img {
    width: 100px;
    border-radius: 50%;
}

.centered iframe {
     display: none;
    /* position: absolute; */
    width: 100%;
    /* left: 0; */
    /* right: 0; */
    height: auto;
}
</style>
<script>
$('.split').on('mouseover', function() {
 $(this).find('img').hide();
    $(this).find('iframe').show();
});

$('.split').on('mouseout', function() {
    $(this).find('iframe').hide();
    $(this).find('img').show();
});
</script>

Это сработает для вас:

Приведенный ниже фрагмент видео не воспроизводится в Переполнение стека, но хорошо работает на скрипке и других страницах:

.split {
  height: 100%;
  width: 50%;
  position: fixed;
  z-index: 1;
  top: 0;
  overflow-x: hidden;
  padding-top: 20px;
}

.left_video,
.right_video {
  height: 100%;
  width: 50%;
  position: fixed;
  z-index: 0;
  top: 0;
  left: 0;
  /* overflow-x: hidden; */
  padding: 0px;
  display: none;
  pointer-events:none;
}

.right_video {
  left: auto;
  right: 0px;
}

.left {
  left: 0;
  background-color: #E9D94C;
}

.right {
  right: 0;
  background-color: #EA2029;
}

.centered {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}

.centered img {
  width: 100px;
  border-radius: 50%;
}

.split:hover+.left_video,
.split:hover+.right_video {
  display: inline-block;
}

.split:hover {
  background-color: transparent;
}
<div class = "container col-md-10">
  <div class = "top-intro" style = "position: relative;padding:20px;height:auto;margin:0 auto;font-family: arial;font-size: 12px;z-index: 99999;font-size: 15px;color: #000;text-align: center;border-radius: 10px;top:25px;background:rgba(255,255,255,0.5);">
    Lorem ipsum sit amet dolor
  </div>
</div>
<div class = "container-fluid">
  <div class = "split left">
    <div class = "centered">
      <img src = "https://www.w3schools.com/howto/img_avatar.png" alt = "Avatar woman">
      <h2>Jane Flex</h2>
      <p>Some text.</p>
    </div>
  </div>
  <iframe class = "left_video" src = "https://www.youtube.com/embed/J5OSRpRyl6g?autoplay=1" frameborder = "0" allow = "autoplay; encrypted-media" allowfullscreen></iframe>
  <div class = "split right">
    <div class = "centered">
      <img src = "https://www.w3schools.com/howto/img_avatar2.png" alt = "Avatar man">
      <h2>John Doe</h2>
      <p>Some text here too.</p>
    </div>
  </div>
  <iframe class = "right_video" src = "https://www.youtube.com/embed/NuIAYHVeFYs?autoplay=1" frameborder = "0" allow = "autoplay; encrypted-media" allowfullscreen></iframe>
</div>

A working Fiddle with playing video : fiddle

Для автовоспроизведения iframe видео я использовал: ?autoplay=1 в последнем URL-адресе YouTube.

например: https://www.youtube.com/embed/J5OSRpRyl6g?autoplay=1

Надеюсь, это было полезно для вас.

вау, сэр ... вы сделали мой день, большое спасибо, сэр! Надеюсь, ты не расстроишься, если я спрошу тебя в будущем. хорошего дня сэр :)

icaks 27.03.2018 09:41

@icaks рад, что смог вам помочь :), и, кстати, не нужно никому звонить в сэр .. Все студенты .. :)

Jithin Raj P R 27.03.2018 11:36

@icaks, если мой код сработал для вас, или любой другой ответ, отметьте его как ответ.

Jithin Raj P R 28.03.2018 07:03

Другие вопросы по теме