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

Javascript 当用户滚动时,沿渐变更改背景颜色

Javascript 当用户滚动时,沿渐变更改背景颜色,javascript,html,css,background-color,Javascript,Html,Css,Background Color,我试图让页面的背景颜色在用户滚动时在黑白之间的渐变上改变。颜色将取决于用户当前在页面上滚动到的位置(如果有意义)?这里有一些代码,我已经但是唯一的问题是,当用户没有滚动到任何地方的网页不是黑色的 函数滚动(){ var body=document.body, html=document.documentElement; var height=Math.max(body.scrollHeight、body.offsetHeight、html.clientHeight、html.scrollHei

我试图让页面的背景颜色在用户滚动时在黑白之间的渐变上改变。颜色将取决于用户当前在页面上滚动到的位置(如果有意义)?这里有一些代码,我已经但是唯一的问题是,当用户没有滚动到任何地方的网页不是黑色的

函数滚动(){
var body=document.body,
html=document.documentElement;
var height=Math.max(body.scrollHeight、body.offsetHeight、html.clientHeight、html.scrollHeight、html.offsetHeight);
var color=Math.round(((body.scrollTop+html.offsetHeight)/height)*255);
body.style.backgroundColor=“rgb(“+color+”,“+color+”,“+color+”);
}
html{
身高:100%;
}
身体{
身高:200%;
背景:rgb(126126);
}

像这样的东西

$(窗口).on('scroll',function(){
var s=$(窗口).scrollTop(),
d=$(文档).height(),
c=$(window.height();
var scrolledArea=(s/(d-c));
$(“div”).css(“不透明度”,滚动区域);
})
正文{
保证金:0;
}
div{
高度:500vh;
背景:#000;
不透明度:0;
}

您必须使用
html.scrollTop
而不是
body.scrollTop
。 这是因为html元素变得可滚动。高度为200%的
body
元素溢出高度为100%的
html
,即视口高度

Body不会在此处滚动,因此您总是会得到
Body.scrollTop=0
。 但是html是滚动的,所以你必须使用
html.scrollTop

元素
body
html
有时就像是一个元素。滚动行为就是这样。但有时它们的行为就好像它们是两个独立的元素。这就是CSS样式设计中的情况

要从黑色变为白色(而不是灰色变为白色),必须更改
var height=html.scrollHeight-html.clientHeight
var color=Math.round((html.scrollTop/height)*255)

要使其在IE中工作,您需要添加:

如果可以,您应该使用jquery(就像Kushtrim建议的那样)

函数滚动(){
var body=document.body,
html=document.documentElement;
var height=html.scrollHeight-html.clientHeight;
var color=Math.round((html.scrollTop/height)*255);
body.style.backgroundColor=“rgb(“+color+”,“+color+”,“+color+”);
}
html{
身高:100%;
}
身体{
身高:200%;
背景:rgb(0,0,0);
}

试试看,阅读更多

.container{
宽度:100%;
最小宽度:1200px;
身高:100%;
背景尺寸:封面;
背景位置:中心;
背景附件:固定;
}
.容器.覆盖层{
背景:线性梯度(到底部,rgba(0,160,227,0.5)0%,rgba(176203,31,0.5)50%,rgba(239127,26,0.5)100%);
}
.容器.幻灯片{
宽度:100%;
高度:600px;
位置:相对位置;
}
.秒{
位置:相对位置;
身高:100%;
}
.secs.内部{
宽度:1200px;
保证金:0自动;
身高:100%;
}
秒第一{
文本对齐:居中;
}
.secs.first h1{
字体大小:60px;
字体大小:粗体;
颜色:白色;
位置:绝对位置;
最高:50%;
左:50%;
文本阴影:1px 1px 1px#999,2px 2px 1px#999,3px 3px 1px#999,4px 4px 1px#999;
转换:翻译(-50%,-155%);
z指数:10;
}
.secs.first.内部{
显示器:flex;
证明内容:中心;
填充顶部:100px;
位置:相对位置;
}
.secs.first.bar{
宽度:80px;
高度:350px;
不透明度:0.54;
盒影:0px 0px 50px#fff;
显示:内联块;
右边距:25px;
背景:#fff;
}
.secs.first.bar:第n个孩子(1){
背景:#00a0e3;
动画:无限;
}
.secs.first.bar:第n个孩子(2){
变换:translateY(130px);
背景:#00a0e3;
动画:Bars15s无限;
}
.secs.first.bar:第n个孩子(3){
变换:translateY(30px);
背景:#b0cb1f;
动画:bars2 5s无限;
}
.secs.first.bar:第n个孩子(4){
变换:translateY(80px);
背景:#b0cb1f;
动画:bars3 5s无限;
}
.secs.first.bar:第n个孩子(5){
转换:translateY(-30px);
背景:ef7f1a;
动画:bars4 5s无限;
}
.secs.first.bar:第n个孩子(6){
变换:translateY(135px);
背景:ef7f1a;
动画:Bars5s无限;
}
.secs.first.bar:第n个孩子(7){
变换:translateY(55px);
背景:#e31e24;
动画:无限;
}
.secs.first.bar:第n个孩子(8){
背景:#e31e24;
动画:无限;
}
@关键帧栏{
0% {
变换:translateY(0px);
}
50% {
变换:translateY(130px);
}
100% {
变换:translateY(0px);
}
}
@关键帧栏1{
0% {
变换:translateY(130px);
}
50% {
变换:translateY(10px);
}
100% {
变换:translateY(130px);
}
}
@关键帧栏2{
0% {
变换:translateY(30px);
}
50% {
变换:translateY(0px);
}
100% {
变换:translateY(30px);
}
}
@关键帧栏3{
0% {
变换:translateY(0px);
}
50% {
变换:translateY(80px);
}
100% {
变换:translateY(0px);
}
}
@关键帧栏4{
0% {
转换:translateY(-30px);
}
50% {
变换:translateY(0px);
}
100% {
转换:translateY(-30px);
}
}
@关键帧栏5{
0% {
变换:translateY(135px);
}
50% {
变换:translateY(10px);
}
100% {
变换:translateY(135px);
}
}
@关键帧栏6{
0% {
变换:translateY(55px);
}
50% {
变换:translateY(0px);
}
100% {
变换:translateY(55px);
}
}
@关键帧栏7{
0% {
变换:translateY(0px);
}
50% {
变换:translateY(120px);
}
100% {
变换:translateY(0px);
}
}

is