首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于设定起点滚动的不透明度

基于设定起点滚动的不透明度
EN

Stack Overflow用户
提问于 2019-05-13 08:02:27
回答 1查看 39关注 0票数 0

我已经写了一个小的jQuery插件,当该部分到达窗口顶部时,开始降低该部分的不透明度。

现在,我想在这个起点上添加一个偏移量,也就是说,当元素离窗口顶部有一半高时,我要开始降低不透明度。

我在这里创造了一支笔:https://codepen.io/cosminn/pen/bywpOe

您还可以查看下面的代码:

代码语言:javascript
复制
(function ( $ ) {
    $.fn.hideScroll = function() {
        return this.each(function(){ //Required for inidivudal elements of the same type
            var elem = $(this),
                elementTop = elem.offset().top,
                elementHeight = elem.outerHeight(),
                opacity, scale;
            $(document).bind('scroll', function(){
                var areaHidden = $(window).scrollTop() - elementTop, // How much of the element is off-screen at the top
                    areaVisible = elementHeight - areaHidden,
                    limit = $(window).scrollTop() + (elementHeight / 2);
                if (elementTop <= limit) {
                    opacity = areaVisible / elementHeight; // Equivalent to how much percent of the element is visible
                }
                else opacity = 1; // Sometimes the opacity remains at 0.9XXX, so we turn it to 1 when element is in-view or off-screen at the bottom of window
                elem.css('opacity', opacity);
            });
        });
    };
}( jQuery ));

$(document).ready(function(){
  $('header').hideScroll();
  $('section').hideScroll();
});

我的问题是:

代码语言:javascript
复制
limit = $(window).scrollTop() + (elementHeight / 2);
if (elementTop <= limit)

这感觉就像在忽略$(window).scrollTop()之后在限制变量中添加的任何内容。

我并不是一个真正的开发人员,所以我可能错过了一件显而易见的事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-13 08:12:56

想象一下,元素从更低的地方开始,是半高,这意味着:

代码语言:javascript
复制
var elementHeight = elem.outerHeight()/2;
var elementTop = elem.offset().top + elementHeight;

你的新笔

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56108044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档