【问题标题】:Fade color of div to opacity as user scrolls down the window JAVASCRIPT当用户向下滚动窗口 JAVASCRIPT 时,将 div 的颜色淡化为不透明
【发布时间】:2014-06-24 03:38:22
【问题描述】:

我有一个 id 为“#box”的标题 div,我已将其固定在顶部作为我的页面,因此当您向下滚动页面时它会保留在那里。我目前拥有的是当用户向下滚动时,标题 div 的背景颜色使用 { window.pageYOffset > 50 } 从不透明状态变为 50% 透明度,如果标题回到顶部,则返回原始透明度。所以它基本上从一个固态变为另一个固态,我想找到一种方法,让它从开始的 50% 透明度淡化到不透明状态,并使用 Javascript 淡入效果。下面我有原始场景的原始代码,下面是我尝试创建淡入效果但完全卡住了。它根本不起作用;没有任何反应。使用 Jquery 会更容易吗?

原始场景:

window.onscroll = 滚动;

function scroll() {
    var header=document.getElementById("header1");

    console.log(window.pageYOffset);
    if(window.pageYOffset > 50){
    console.log("Change Opacity now");
      document.getElementById("header1").style.backgroundColor="rgba(38, 28, 63, 1.0)";
    }
    else{
      document.getElementById("header1").style.backgroundColor="rgba(38, 28, 63, 0.5)";

    }

}

淡入尝试:

window.onscroll = 滚动;

function scroll() {
    var header=document.getElementById("box");

    console.log(window.pageYOffset);
    if(window.pageYOffset > 0){
        var color = [38, 28, 63].join(',') + ',', 
         transparency = 1,
         element = this, 
         timeout = setInterval(function(){
             if(transparency < 0){ 
                element.style.backgroundColor = 'rgba(' + color + (transparency -= 0.015) + ')';
        } else {
            clearInterval(timeout);
        }
    }, 40);

});

    }

【问题讨论】:

    标签: javascript css scroll fadein


    【解决方案1】:
    • 如果它确实运行并且颜色发生了变化但没有过渡,实现过渡的一种简单方法是添加 css 属性“过渡:背景 1s;”到标题。

    如果不是这样,您能否详细说明什么不起作用? 我的意思是,功能没有被调用吗?等等……

    【讨论】:

    • 好人!非常感谢...这为我节省了一堆不必要的 JS
    • Np。哦,别忘了过渡是特定于浏览器的,所以呃...为 Mozilla 和 IE 以及其他 xD -webkit-transition、-moz-transition、-o-transition、transition 添加其他浏览器版本。有点像哈哈
    • hmmm ..出于某种原因,即使使用 mozilla 的供应商前缀,当页面加载但在 chrome 中正常工作时,透明度也不存在......我什至使用了你上面提到的......是因为我使用的是 RGBA,但即便如此,大多数浏览器都支持它
    猜你喜欢
    • 1970-01-01
    • 2015-11-01
    • 2014-11-19
    • 2017-09-13
    • 2023-01-09
    • 2017-05-12
    • 1970-01-01
    • 2021-09-14
    • 2014-10-17
    相关资源
    最近更新 更多