Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript将一个CSS渐变设置为另一个CSS渐变的动画_Javascript_Css_Animation_Gradient - Fatal编程技术网

使用JavaScript将一个CSS渐变设置为另一个CSS渐变的动画

使用JavaScript将一个CSS渐变设置为另一个CSS渐变的动画,javascript,css,animation,gradient,Javascript,Css,Animation,Gradient,我想设置一个渐变到另一个渐变的动画。这是我的密码笔:。我使用鼠标距离作为变量来设置向上渐变的动画 该梯度应为起点,且不应低于该梯度(当鼠标距离大于300px时,该梯度会降低): 在其到达元素的100px距离的过程中,应将其设置为该渐变的动画: $element.css('background', 'linear-gradient(0deg, rgba(255, 66, 42, 1) '+(300-distance)/2+'%, rgba(217, 60, 40, 1) '+(325.24-dis

我想设置一个渐变到另一个渐变的动画。这是我的密码笔:。我使用鼠标距离作为变量来设置向上渐变的动画

该梯度应为起点,且不应低于该梯度(当鼠标距离大于300px时,该梯度会降低):

在其到达元素的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);
})();

感谢您的演示和帮助,但对我来说,这并不安静。我想我需要找到另一种方法来达到这个效果。
(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);
})();