Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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_Html_Css - Fatal编程技术网

Javascript 如何通过滚动显示标题的不透明背景

Javascript 如何通过滚动显示标题的不透明背景,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我希望在滚动期间使导航栏的背景颜色不透明。 我的导航栏在Header Div中 事实上,当我滚动时,我的导航栏和内容混在一起,我什么都看不懂 我尝试了很多教程,但我的javascript知识很差,什么都不管用 我只想背景标题是不透明度0时,我们在页面的顶部,并成为0.7时,我们滚动 谢谢你的帮助 /*粘性导航栏*/ window.onscroll=函数(){ myFunction() }; var navbar=document.getElementById(“标题”); var sticky

我希望在滚动期间使导航栏的背景颜色不透明。 我的导航栏在Header Div中

事实上,当我滚动时,我的导航栏和内容混在一起,我什么都看不懂

我尝试了很多教程,但我的javascript知识很差,什么都不管用

我只想背景标题是不透明度0时,我们在页面的顶部,并成为0.7时,我们滚动

谢谢你的帮助

/*粘性导航栏*/
window.onscroll=函数(){
myFunction()
};
var navbar=document.getElementById(“标题”);
var sticky=navbar.offsetTop;
函数myFunction(){
如果(window.pageYOffset>=粘性){
navbar.classList.add(“粘性”)
}否则{
navbar.classList.remove(“粘性”);
}
}
$(窗口)。滚动(函数(){
var threshold=200;//要开始淡入的页面底部之前的像素数
var op=($(document.height()-$(window.height())-$(window.scrollTop())/threshold;
if(op只需通过检查元素偏移顶部,在滚动时用js切换类(
.isSticky

#header {
  display: flex;
  justify-content: flex-end;
  background: rgba(139, 139, 157, 0);
  z-index: 2;
}

#header.isSticky {
  background: rgba(139, 139, 157, 0.7);
}

除了马蒂亚所说的,我还发明了一支钢笔。我希望这能有所帮助

我还添加了一个css转换,所以它会消失,但这只是个人喜好的问题。如果你愿意,你完全可以删除它

更改如下: css

js


您的代码片段缺少jQuery,因此我为您添加了它。我想这只是问题中的一个疏忽,而不是问题的实际原因很多:-)如果不进行优化,基于滚动事件的函数可能会非常贪婪,我建议您使用一个lib,比如优秀的scrollmagic,如果您不想阻塞浏览器,您真的想查看debounce:)我在我的header类上有isSticky,header.isSticky的css样式。我在javascript文件上有什么事情要做吗?好的,我明白你的意思。我在我的“.js”中检查了标题的位置:如果它在顶部,那么样式是“background:rgba(139,139,157,0);”如果不是“background:rgba(139,139,157,0.7)“是吗?是的。您可以检查偏移顶部或滚动位置(如果大于0,则用户正在滚动)
   #header {
      display: flex;
      justify-content: flex-end;
      background: rgba(139, 139, 157, 0);
        -webkit-transition: background 0.5s ease-in-out;
      -moz-transition: background 0.5s ease-in-out;
      -ms-transition: background 0.5s ease-in-out;
      -o-transition: background 0.5s ease-in-out;
      transition: background 0.5s ease-in-out;
      z-index: 2;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
    }

#header.isSticky {
  background: rgb(139, 139, 157, 0.7);
    -webkit-transition: background 0.5s ease-in-out;
  -moz-transition: background 0.5s ease-in-out;
  -ms-transition: background 0.5s ease-in-out;
  -o-transition: background 0.5s ease-in-out;
  transition: background 0.5s ease-in-out;
}
$(document).ready(function(){// checks vertical position of scroll bar 
var scrollY = $(this).scrollTop();
// when user refreshes psge
if (scrollY > 0) {
  // if it is anywhere but the top change opacity by adding class .isSticky
  $('#header').addClass('isSticky');
} else {
  $('#header').removeClass('isSticky');
}


$(window).on('scroll', function(){
  // while uesr scrolls check the scrollTop position
  var scrollY = $(this).scrollTop();
  if (scrollY > 0) {
   $('#header').addClass('isSticky');
  } else {
   $('#header').removeClass('isSticky');
  }
});
});