Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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 基于关闭窗口宽度的滚动淡入元素不透明度_Javascript_Jquery_Scroll_Opacity - Fatal编程技术网

Javascript 基于关闭窗口宽度的滚动淡入元素不透明度

Javascript 基于关闭窗口宽度的滚动淡入元素不透明度,javascript,jquery,scroll,opacity,Javascript,Jquery,Scroll,Opacity,我试图在元素第一次进入视口时淡入淡入,然后在它到达视口末端时使其不透明度等于100%。我的工作已经达到100%不透明度,当它到达最后。然而,当它开始制作动画时,它开始的速度大约是60%,我知道这是因为我是基于滚动位置的。所以我的问题是,当它进入视口时,如何计算从0开始的不透明度 这就是我到目前为止所做的: $('.left-cont').each(function() { var $this = $(this), leftPos = $this.offset(

我试图在元素第一次进入视口时淡入淡入,然后在它到达视口末端时使其不透明度等于100%。我的工作已经达到100%不透明度,当它到达最后。然而,当它开始制作动画时,它开始的速度大约是60%,我知道这是因为我是基于滚动位置的。所以我的问题是,当它进入视口时,如何计算从0开始的不透明度

这就是我到目前为止所做的:

$('.left-cont').each(function() {
    var $this     = $(this),
        leftPos   = $this.offset().left,
        fadeStart = leftPos - winWidth,
        fadeUntil = leftPos,
        opacity;

        console.log( winWidth - (leftPos - scrollPos));
        console.log(fadeStart);

    if( scrollPos <= fadeStart ) {
        opacity = 0;
    }
    else {
        opacity = scrollPos/fadeUntil;
    }

    $this.css({
        'opacity': opacity
    });
});
$('.left cont')。每个(函数(){
变量$this=$(this),
leftPos=$this.offset().left,
fadeStart=leftPos-winWidth,
fadeUntil=左位置,
不透明度
log(winWidth-(leftPos-scrollPos));
控制台日志(fadeStart);
如果(scrollPos1),这个jQuery函数只执行一次,还是放在onScroll绑定函数中

$( window ).scroll(function() {

  /* get scroll top and left values here */

  $( ".box" ).each(function(){

    /* do position check and css adjustments here */

  });

});
2) 不透明度的计算为:
(1-((框偏移-滚动顶部)/窗口高度))

3) 我在这里做了一个垂直滚动的工作示例:

通过(取消)注释函数内的其他计算,可以将其更改为基于水平滚动计算不透明度


确保对象后面/旁边有足够的内容(或填充/边距)。否则它将永远达不到
不透明度:1
(例如屏幕的顶部/左侧)。

非常感谢!正是由于计算结果让我感到困惑。感谢您的帮助,谢谢。