javascript - 使用 JavaScript 将一个 CSS 渐变动画化为另一个

标签 javascript css animation gradient

我想将一个渐变动画化为另一个渐变。这是我的代码笔:https://codepen.io/EYT/pen/YvPEVQ .我使用鼠标距离作为变量来向上设置渐变动画。

这个渐变应该是起点,它不应该低于这个(当鼠标距离大于 300px 时它会这样做):

$element.css('background', 'linear-gradient(0deg, rgba(255, 66, 42, 1) '+(300-distance)/2+'%, rgba(217, 60, 40, 1) '+(305.24-distance)/2+'%, rgba(174, 54, 39, 1) '+(312.1-distance)/2+'%, rgba(136, 48, 37, 1) '+(319.52-distance)/2+'%, rgba(104, 44, 36, 1) '+(327.42-distance)/2+'%, rgba(78, 40, 35, 1) '+(335.92-distance)/2+'%, rgba(58, 37, 34, 1) '+(345.26-distance)/2+'%, rgba(44, 35, 33, 1) '+(355.86-distance)/2+'%, rgba(35, 33, 33, 1) '+(368.84-distance)/2+'%, rgba(33, 33, 33, 1) '+(390.96-distance)/2+'%)');

并且在距离元素 100px 的途中,它应该被动画到这个渐变:

$element.css('background', 'linear-gradient(0deg, rgba(255, 66, 42, 1) '+(300-distance)/2+'%, rgba(217, 60, 40, 1) '+(325.24-distance)/2+'%, rgba(174, 54, 39, 1) '+(352.1-distance)/2+'%, rgba(136, 48, 37, 1) '+(379.52-distance)/2+'%, rgba(104, 44, 36, 1) '+(407.42-distance)/2+'%, rgba(78, 40, 35, 1) '+(435.92-distance)/2+'%, rgba(58, 37, 34, 1) '+(465.26-distance)/2+'%, rgba(44, 35, 33, 1) '+(495.86-distance)/2+'%, rgba(35, 33, 33, 1) '+(528.84-distance)/2+'%, rgba(33, 33, 33, 1) '+(570.96-distance)/2+'%)');

有人知道如何做到这一点吗?

谢谢!

最佳答案

尝试将 px 转换为 % 并使用 scaleY(${percent/100)})

这是一个示例,但您必须根据需要对其进行调整:

(function() {
    var element = document.getElementById("element");
    var onMouseMove = function(evt) {
      const percent = ((evt.clientY / document.documentElement.scrollHeight) * 100);
      element.style.transform = `scaleY(${(percent / 100)}`;

    }
    document.addEventListener('mousemove', onMouseMove);
})();

https://codepen.io/anon/pen/rKadWB?editors=1111

关于javascript - 使用 JavaScript 将一个 CSS 渐变动画化为另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50611377/

相关文章:

javascript - jQuery slideToggle——div 跳转

javascript - 如何在下划线分隔的应用程序版本之间找到最大值

javascript - 如何将 insideText 从 dxTextArea 传递到 Javascript 中的函数中?

html - html 或 css 中不规则形状的框架/边框

html - 将内联样式转换为包含属性的 <font> 标签

java - 调用需要 API 级别 16(当前最低为 14)withEndAction

css - 如何在 CSS 中重复此动画?

wpf - 扩大/缩小 WPF 动画

javascript - ajax 请求空数据

html - 在记事本中下拉导航并带入 dw cs6 它在实时 View 中工作而不在任何测试浏览器中并且我的页面没有链接