javascript - CSS 过渡速度根据鼠标位置变化

标签 javascript css

我有一个 div 元素,其宽度由定义区域内的用户鼠标位置决定。进入该区域后,过渡应该是平滑的,直到宽度 catch 当前鼠标位置,离开该区域时再次平滑,宽度恢复正常。在过渡之间的时间应该很快,所以宽度响应鼠标位置。

HTML

<div class="widthChanging"></div>
<div class="HoverA"></div>

CSS

.widthChanging {
    transition: width 300ms cubic-bezier(.45,.1,.14,.61);
  }

.HoverA:hover + .widthChanging {
 width: calc(0.001 / var(--mouse-x, 0) * 100vw);
 transition: width 0s;
}

我使用 Javascript 获取鼠标位置。
当离开“HoverA”区域时,宽度会平滑恢复,因为“widthChanging”中定义的过渡速度接管了。可悲的是,我不能(我认为)为进入“HoverA”区域做同样的事情。我唯一的想法是在分配过渡时间较慢的类之前等待过渡时间,但这对我来说似乎是一个糟糕的解决方案,并且还需要更多的 Javascript。

我希望你有一些比我更优雅的想法:)

最佳答案

我通过等待然后使用 javascript 分配具有新转换速度的类解决了这个问题。我认为这不是最好的方法。 这里是codepen https://codepen.io/Teiem/pen/EReJPx

html

<div class="HoverA" onmouseover="SpeedEnter2()" onclick="SpeedEnter2()"onmouseout="SpeedLeave2()"></div>

Javascript

function SpeedEnter2() {
goVar = setTimeout(function(){
   document.getElementById("SpeedId2").classList.add('Fast');
}, 300);

CSS

.Fast {
 transition: width 0s !important;
}

关于javascript - CSS 过渡速度根据鼠标位置变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51031914/

相关文章:

javascript - ionic : ng-show and page transition

javascript - 顺序或并行网站图像加载速度更快(使用 Javascript)

html - 使用 ReactJS 的 IE 条件定位

javascript - 水平滚动时水平 float div - CSS/Jquery

html - 不需要的 margin

javascript - 如何通过单选按钮更改元素(img)的位置?

javascript - 解析输出和样式 xml 数据

javascript - Ember CLI "Blueprint"用于创建插件

css - Firefox 中具有相对位置和内容绝对错误的表格单元格

css - 如何水平居中表情符号?