在整数中使用百分比

时间:2019-01-31 19:07:12

标签: javascript jquery

我问了很长时间我如何在整数中使用百分比。其实就像在CSS中声明高度和宽度一样。

[示例]

$(window).scroll(function() {
                    var scrollVal = $(window).scrollTop();

                    if(scrollVal >= 472.141) {
                        $("nav").css("position", "fixed");
                        $("nav").css("padding-top", "0");
                        $("nav ul").css("background-image", "linear-gradient(rgba(230, 230, 230, 1) 5%, rgba(230, 230, 230, 0))");
                    } else {
                        $("nav").css("position", "relative");
                        $("nav").css("padding-top", "35%");
                        $("nav ul").css("background-image", "linear-gradient(rgba(250, 250, 250, 0), rgba(250, 250, 250, 1) 95%)");
                    }
                });

在这里,我希望百分比为整数-> if(scrollVal >= 472.141)-> 472.141应该为35%-> if(scrollVal >= 35%)

这很酷,因为scrollVal可以相对于屏幕大小...

提前谢谢!

2 个答案:

答案 0 :(得分:2)

您必须创建自己的函数,才能将百分比值转换为相应的像素数:

  const heightPercent = percent => window.innerHeight * percent / 100;

  console.log(heightPercent(50));
  console.log(heightPercent(10));
  console.log(heightPercent(100));

然后if(scrollVal >= 472.141)变成if(scrollVal >= heightPercent(35))

答案 1 :(得分:0)

解决此问题的一种方法是根据您的位置添加CSS类。例如:

$(window).scroll(function() {
    var scrollVal = $(window).scrollTop();

        if(scrollVal >= 472.141) {
            $("nav").addClass('class0');
            $("nav").removeClass('class1');
        } else {
            $("nav").addClass('class1');
            $("nav").removeClass('class0');
        }
});