javascript - 当悬停在覆盖第一个的另一个元素上时,停止触发悬停的 'out' 事件

标签 javascript jquery html css hover

我有一个 video 元素。当用户将鼠标悬停在允许他们暂停/播放和静音/取消静音的视频上时,我希望出现一些控制按钮。这是我的 html、CSS 和 jQuery:

HTML

<video autoplay muted>
    <source src="<?=get_template_directory_uri()?>/video/bfvideo.mp4" type="video/mp4">
    <img src="<?php the_field('hero_image'); ?>" class="hero-text img-res" alt="<?php the_field('hero_image_alt_text'); ?>"/>
</video>
<div class="videoMute videoButton">M</div>
<div class="videoPause videoButton">P</div>

js

heroVideo.hover(        
        function() {
            // In
            console.log('In');
            $('.videoButton').fadeIn(100);
            //heroVideo.prop('muted','');
        },
        function () {
            // Out  
            console.log('Out');
            $('.videoButton').fadeOut(100);
            //heroVideo.prop('muted','true');
        }
    );

CSS

.videoButton {
    background: #ccff00;
    display: inline-block;
    height: 50px;
    width: 50px;
    position: absolute;
    z-index:9999;
    bottom:50px;
    text-align:center;
    cursor:pointer;
    display:none;
}

.videoMute {
    left:50px;  
}

.videpPause {
    left:250px; 
}

当我将鼠标悬停在视频上和悬停在视频外时,按钮会根据需要出现和消失,但是当我将鼠标悬停在按钮上时,从技术上讲,我的鼠标悬停在视频之外,因为我的鼠标悬停在按钮上(尽管我我仍然在屏幕上的视频区域)。因此,当我将鼠标悬停在按钮上时,按钮会消失。

有什么办法可以避免这种情况吗?我希望无论我的光标是否实际上在该元素上,只要我在视频区域中,按钮就会出现。

最佳答案

如果您将视频和按钮包装在同一个容器 div 中并在容器上使用悬停事件,它将更容易地解决您的问题。

类似于:

<div class="video-container">
   <!-- your video here -->
   <!-- your buttons here -->
</div>

然后将悬停事件处理程序添加到视频容器。

关于javascript - 当悬停在覆盖第一个的另一个元素上时,停止触发悬停的 'out' 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39574454/

相关文章:

javascript - 加载指令时调用 init 函数

jquery - 使用触发器()在最近的 div 上强制单击

javascript - Jquery指定动态表头特定行上的结果循环

javascript - css 选择器问题,如何在子 ul 聚焦时更改父 li 的字体颜色

caching - HTML 5 缓存 list 对比。 Etags、Expires 或缓存控制 header

html - 不工作纯色图标,它仅适用于 Photoshop

c# - 将响应重定向到下载文件

javascript - 如何获取动态创建的 Id 的当前值?

html - 不希望包含标记的样式表与当前页面的样式表混合

javascript - 将数据从.gsp发送到 Controller