Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.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_Css_Stellar.js - Fatal编程技术网

Javascript 不断增长的幻灯片堆

Javascript 不断增长的幻灯片堆,javascript,css,stellar.js,Javascript,Css,Stellar.js,假设我想设计一个有四张幻灯片的网站。我希望在访问者滚动时,每张幻灯片都能覆盖上一张幻灯片。下面是对stellar.js(jquery插件)的一次尝试:。您可以看到,它适用于第一张幻灯片,第二张幻灯片涵盖了这一点,但我无法让它适用于其他幻灯片 HTML: 我能够仅使用jQuery而不使用其他库来组合一些东西。它依赖于相对定位。基本上,所有内容都会正常滚动,直到其中一张幻灯片到达浏览器窗口的顶部。一旦它试图滚动过浏览器窗口的顶部,我会向幻灯片的垂直位置添加一个偏移,以防止它再向上移动。当以另一种方

假设我想设计一个有四张幻灯片的网站。我希望在访问者滚动时,每张幻灯片都能覆盖上一张幻灯片。下面是对
stellar.js
(jquery插件)的一次尝试:。您可以看到,它适用于第一张幻灯片,第二张幻灯片涵盖了这一点,但我无法让它适用于其他幻灯片

HTML:


我能够仅使用jQuery而不使用其他库来组合一些东西。它依赖于相对定位。基本上,所有内容都会正常滚动,直到其中一张幻灯片到达浏览器窗口的顶部。一旦它试图滚动过浏览器窗口的顶部,我会向幻灯片的垂直位置添加一个偏移,以防止它再向上移动。当以另一种方式向后滚动时,我只需从该偏移量中减去,直到它达到0,此时它开始再次正常滚动

我确信代码可以被清理,但我添加了大量注释,希望它可读。如果您有任何问题,或者您希望我修改它以更好地满足您的需要,请告诉我。下面是我提出的解决方案:

您还可以在此处看到相同代码的完整页面演示:


数据恒星比率属性只控制元素滚动的速度。值
1
表示元素将以正常速度滚动,值
.2
表示元素将以正常速度的20%滚动,以此类推。我认为您无法使用此功能实现所需的功能。基本上,您需要滚动每张幻灯片,直到它到达浏览器窗口的顶部,然后停止滚动。您可能可以使用stellar和一些jQuery以编程方式修改
数据恒星比率
值来实现这一点。似乎
数据恒星垂直偏移
属性可以帮助我实现我想要的,但您可能是对的。事实上,stellar.js只是一个例子;我对其他技术持开放态度。这也是我最初没有添加stellar.js作为标记的原因(它随后由j08691添加)。这正是我试图实现的目标。我认为代码可以更加紧凑,但作为初学者,我非常感谢您的评论和解释。此外,Android上的Chrome似乎会干扰javascript,阻止平滑滚动。也许你知道为什么会这样,以及如何修复它?谢谢你的反馈。我将在Android版的Chrome上测试它,看看能找到什么。到目前为止,我只在Chrome、FF和IE上测试了它。我刚刚在Android上测试了Chrome,我想我明白你的意思了。你是说它看起来有点神经质,就像文字在跳跃?我不确定能做些什么,但我会玩它,看看我能不能解决它。是的,这就是我所指的。
<body>
    <div id="one" data-stellar-ratio=".2">
        <p>This is the first div.</p>
    </div>
    <div id="two" data-stellar-ratio="1">
        <p>This is the second one.</p>
    </div>
    <div id="three">
        <p>Third one!</p>
    </div>
    <div id="four">
        <p>Fourth and last.</p>
    </div>
</body>
* {
    margin: 0;
    padding: 0;
}
#one, #two, #three, #four {
    position: absolute;
    height: 100%;
    width: 100%;
    font-size: 5em;
}
p {
    margin: 1em;
    width: 60%;
}
#one {
    background: red;
}
#two {
    background: blue;
    top: 100%;
}
#three {
    background: green;
    top: 200%;
}
#four {
    background: yellow;
    top: 300%;
}