javascript - 使用Javascript通过鼠标事件显示不同的内容

标签 javascript

我试图在鼠标进入一个框时显示一个元素的内容,然后在鼠标离开时隐藏它,并在鼠标进入/离开一个单独的框时执行相同的操作(但内容不同)。我可以使用它,但我确信有一种更干净的方法可以做到这一点,任何帮助都会很棒。

<body>
<div class="boxes">
    <div class="box1">
        &nbsp;
    </div>
    <div class="box2">
        &nbsp;
    </div>
</div>    
<div class="content">
    <h2>Welcome</h2>
    <div class="text1">
        <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsam animi adipisci vitae repudiandae, iure modi ut facilis eligendi quia consectetur, saepe veniam voluptates debitis consequatur placeat! Quam laudantium velit dolor.</p>
    </div>
    <div class="text2">
        <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsam animi adipisci vitae repudiandae, iure modi ut facilis eligendi quia consectetur, saepe veniam voluptates debitis consequatur placeat! Quam laudantium velit dolor.</p>
    </div>
</div>

这是 JavaScript

var txt1 = document.querySelector('.text1');
var box1 = document.querySelector('.box1');
var txt2 = document.querySelector('.text2');
var box2 = document.querySelector('.box2');

box1.addEventListener('mouseenter', showTxt);
box1.addEventListener('mouseleave', hideTxt);
box2.addEventListener('mouseenter', showTxt2);
box2.addEventListener('mouseleave', hideTxt2);

function showTxt() {
    txt1.style.display = 'block';
};

function hideTxt() {
    txt1.style.display = 'none';
};

function showTxt2() {
    txt2.style.display = 'block';
};

function hideTxt2() {
    txt2.style.display = 'none';
};

最佳答案

像这样怎么样?

function registerHandlers(el1, el2) {
    el1.addEventListener('mouseenter', function() {
        el2.style.display = 'block';
    });
    el1.addEventListener('mouseleave', function() {
        el2.style.display = 'none';
    });
}

registerHandlers(document.querySelector('.text1'), document.querySelector('.box1'));
registerHandlers(document.querySelector('.text2'), document.querySelector('.box2'));

此外,如果您的 html 结构不同并且元素彼此相邻或后代,您可以在没有 js 的情况下仅使用 css 和 :hover 选择器来完成此操作。

关于javascript - 使用Javascript通过鼠标事件显示不同的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48817139/

相关文章:

javascript - 你如何在 Javascript 中获取音频的分贝级别

javascript - Ajax 请求在 gatsby js 生产构建后不起作用

javascript - 想要通过 JavaScript(无 jQuery)使空 <div> 元素可点击

重复值的 Javascript findIndex

javascript - i18next 单一翻译字符串回退/默认(Vue JS)

javascript - “Mongo错误: unknown operator: $id in loopback updateall

Javascript:根据其内容选择选项

javascript - Linq.js : Group By two properties (fields)

javascript - Firebase - 如何在不使用 AngularFire 的情况下获取对象列表

javascript - 如何使用 enzyme 模拟 div 上的鼠标悬停事件以测试 react 应用程序?