html - 具有长时间问题的 CSS 过渡宽度/位置

标签 html css google-chrome transition

假设我们想要宽度/位置的过渡

当使用较长的持续时间时,会出现不良行为,因为计时功能将从零开始以执行其余操作

    #test {
      border: solid 1px;
      width: 100px;
      height: 50px;
      transition: width 10s linear;
    }
    #test:hover {
      width: 1000px;
      transition: width 10s linear;
    }
<div id="test"></div>

当在过渡期间将 div 重新悬停在任何地方时说在中间它会在 10s 上进行过渡但是对于 500px 不是原始设置,更糟糕的是它会最后 10 像素需要 10 秒。

是否有解决方法或者我应该使用 jQuery animate 函数?

最佳答案

如果您不介意编写动画脚本,这里有一个解决方案。 本质上,您必须知道剩余的时间来覆盖剩余的宽度。

当然,您可以将此函数用于任何元素,也可以传入所需的宽度,但这不在本范围内。

$("#test").on("mouseover", function(){
  var $el = $(this);  
  var time = 10000 - $el.width()*10; // This is the actual remaining animation time

  $el.stop().animate({"width": "1000px"}, time, "linear");
});

$("#test").on("mouseout", function(){
  var $el = $(this);
  var time = $el.width()*10; // This is the actual remaining animation time
  
  $el.stop().animate({"width": "100px"}, time, "linear");
});
#test {
  border: solid 1px;
  width: 100px;
  height: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="test"></div>

关于html - 具有长时间问题的 CSS 过渡宽度/位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30785369/

相关文章:

html - 悬停到背景图像时的半透明菜单项

html - Flex/Grid 布局不适用于按钮或字段集元素

值为空时 Chrome 中的 HTML 输入光标位置问题

javascript - window.getComputedStyle() : How to Discard properties with default values?

javascript - 通过 ajax 调用的大文件下载在 Chrome 浏览器中给出 "Network Error"

javascript - 使多个 iframe 像普通窗口一样拖动、调整大小和最小化

html - 如何使用 css 将复选框的位置设置为 td 和输入类型文本的中间?

html - 垂直导航菜单不会悬停

javascript - 为什么这个 JavaScript 广告只有在 &lt;iframe&gt; 中加载时才会被裁剪?

CSS:将鼠标悬停在内容上时更改背景