【问题标题】:How can I enlarge a div upon hovering over it?如何在将鼠标悬停在 div 上时放大它?
【发布时间】:2016-03-14 22:31:41
【问题描述】:

我有一个包含图像的水平行,并且我正在尝试实现与 netflix 在图像悬停时使用的相同缩放效果,如下视频所示:

https://s3.amazonaws.com/whatever12345/net.mov

我观察到,在悬停时,当图像被缩放时,它会在 x 轴上将其兄弟姐妹推一段距离,但是当悬停结束时,它们都会返回到原点位置。我还观察到,缩放后的图像只是与其容器以及顶部和底部的元素重叠,而不是干扰边距和填充。如何重新创建此操作?

这是我尝试使用的 css 和 jQuery,但这不是我想要实现的:

.cover-item {
  position: relative;
  display: inline-block;
  width: 136px;
  height: 178px;
  vertical-align: bottom;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  cursor: pointer;

  -webkit-transition: 400ms;
  transition: 400ms;
}

.cover-item-open {
  transform: scale(1.1);
  z-index: 2;
}

 $('.image-container a').hover(function() {
   $(this).find('.cover-item').toggleClass('cover-item-open');
 });

我创建了这个JSFiddle 来显示我的完整代码

【问题讨论】:

  • 对父容器应用相同的悬停动画缩放,并根据需要调整父容器的缩放量。您可以在孩子的处理程序中设置父动画。
  • 这并没有为我提供我想要的效果。我在视频链接后的问题中解释了所需的效果。你能帮我实现吗? @Korgrue
  • 在演示 mov.他们将父 div 设置为高于子级的最大缩放高度。父 div 也设置为溢出:可见,因此当它们展开时它不会切断子元素的侧面。试一试。
  • 当我将父 div 设置为溢出:可见时,它解决了其他元素重叠的问题,消除了行的单个水平滚动并使整个页面水平滚动@Korgrue
  • 看起来下面为您提供了一个可行的解决方案。干杯

标签: jquery html css scaling


【解决方案1】:

你应该可以使用 :hover 来做到这一点

.my_div:hover {
    transform: scale(...);
}

编辑:进一步观察,这应该会更好

$(document).ready(function () {
    $(document).on("mouseenter", ".scalable", function () {
        $(this).animate({ width: "100px" });
    });
    $(document).on("mouseout", ".scalable", function () {
        $(this).animate({ width: "50px" });
    });
});

和 HTML:

<img class="scalable" src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/Earth_Western_Hemisphere_transparent_background.png/600px-Earth_Western_Hemisphere_transparent_background.png" alt="earth">
<img class="scalable" src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/Earth_Western_Hemisphere_transparent_background.png/600px-Earth_Western_Hemisphere_transparent_background.png" alt="earth">

同样的基本理念也适用于 div,只是图像更易于查看。

【讨论】:

  • 这并没有为我提供我想要的效果。我在视频链接后的问题中解释了所需的效果。你能帮我实现吗?
  • 我已经更新了我的答案,我认为它更符合您最初的要求。您应该能够在动画中扩展 css 来做更漂亮的事情
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多