JavaScript - onmouseover 修改前一个元素的 css 高度

标签 javascript css image html height

我有两个 div,我想控制它们的相对高度。这些 div 的要点是,当用户将鼠标悬停在其中一个上时,它会垂直扩展而另一个会垂直收缩(通过 CSS 过渡平滑)。基本标记:

<div class="product">
    <h2>Product Name</h2>

    <div class="preview" style="background:url('/images/preview.png'); "></div>
    <div class="detail" style="background:url('/images/design.png'); "></div>

    <div class="product_info">
        <span class="quantity">7 Available</span>
        <span class="price">$19</span>
    </div>
</div>

这是使用从数据库中提取的独特图像和其他数据多次生成的,因此这些图像只是占位符,但这不是问题所在。

这是精简的 CSS:

div.product {
    margin: 4px;
    padding: 4px;
    display: inline-block;
    width: 221px;
    height: 319px;
    box-shadow: 0 0 5px #ccc;
    -moz-box-shadow: 0 0 5px #ccc;
    -webkit-box-shadow: 0 0 5px #ccc;
}

div.product div.preview, div.product div.detail {
    height: 127px;
    width: 205px;
    margin: auto;
    margin-bottom: 2px;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px;
    box-shadow: 0 0 5px #ccc;
    -moz-box-shadow: 0 0 5px #ccc;
    -webkit-box-shadow: 0 0 5px #ccc;
    -moz-transition: 0.25s linear;
    -o-transition: 0.25s linear;
    -webkit-transition: 0.25s linear;
}

div.product div.detail:hover, div.product div.preview:hover {
    height: 254px;
}

div.product h2 {
    width: 100%;
    text-align: center;
    margin-bottom: 4px;
}

div.product span.price {
    color: #B32B2B;
    font-weight: bold;
    font-size: 14px;
    text-align: right;
    float: right;
}

div.product span.quantity {
    text-align: left;
    float: left;
}

现在的想法是,当您将鼠标悬停在任一图片上时,它会扩展以填充另一张图片的空间,而另一张图片会相应地缩小。这不能用这个标记在 CSS 中完成,并且不能用我尝试过的任何东西。

我需要在每个 div 上为 onmouseover 和 previousSibling 使用 JavaScript 来修改 CSS 高度。问题是,事情就是不想为我工作。谁有解决办法?

最佳答案

首先,出于可访问性的原因,您可能希望使用 onFocus 和 onBlur,以考虑到有人可能没有使用鼠标这一事实。

我不知道您使用的是什么 JS,但我会建议您使用 JQuery。关于 focus 的文档在这里。

关于JavaScript - onmouseover 修改前一个元素的 css 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3946909/

相关文章:

html - 在图像上垂直和水平居中文本

html - 无法识别导致表单字段中出现额外空间的原因

html - float 元素忽略较大的元素

javascript - react native 绝对定位不起作用

javascript - 知道 DOM 对象是否已死

html - Safari 中的 Base64 图像标签未显示

c++ - C++快速输出图片的方法

android - 将旋转的 drawable 设置为 TextView 的 drawableLeft

javascript - 由复选框生成的进度条显示在不同页面中

javascript - 我如何在 jquery 中加载页面后发送数据