【发布时间】:2016-08-09 15:10:13
【问题描述】:
我希望创建类似于此处所示的滚动效果:http://www.seaham-hall.co.uk/
但是我无法达到预期的效果,并且检查网站代码没有给我任何提示。很难用谷歌搜索,因为它也很难描述。我能找到解决方案最接近的是这个 JSFiddle:
(function($){
/* Store the original positions */
var d1 = $('.one');
var d1orgtop = d1.position().top;
var d2 = $('.two');
var d2orgtop = d2.position().top;
var d3 = $('.three');
var d3orgtop = d3.position().top;
var d4 = $('.four');
var d4orgtop = d4.position().top;
/* respond to the scroll event */
$(window).scroll(function(){
/* get the current scroll position */
var st = $(window).scrollTop();
/* change classes based on section positions */
if (st >= d1orgtop) {
d1.addClass('latched');
} else {
d1.removeClass('latched');
}
if (st >= d2orgtop) {
d2.addClass('latched');
} else {
d2.removeClass('latched');
}
if (st >= d3orgtop) {
d3.addClass('latched');
} else {
d3.removeClass('latched');
}
if (st >= d4orgtop) {
d4.addClass('latched');
} else {
d4.removeClass('latched');
}
});
})(window.jQuery);
但是我不确定这是朝着正确的方向前进,这会将图像拉起并覆盖之前的图像,但请注意在 Seaham Hall 网站上,图像似乎根本没有向上移动,它们是静止的并变成滚动显示。
如何重现这种效果?我最初的想法是让第一个图像在你从 1000px 向下滚动到 0px 时缩小,第二个图像增长到 1000px,当你继续滚动这个图像然后缩小,第三个增长,依此类推。然而,这意味着在第一张图片之后,所有其他图片的起始尺寸都是 0px,从技术上讲,页面上一开始就不会滚动,所以这是一个问题。
我的第二个想法是,也许第二个图像固定在页面上,当您滚动时,第一个图像向上滑动显示第二个图像,第二个图像似乎不会移动。一旦第一张图片离开页面顶部,第二张图片就会从页面上分离出来,并允许随着滚动向上移动,而第三张图片会在第二张图片向上移动时附加并显示出来,这将给出在Seaham 网站,但我不知道这是正确的答案。
如果有人可以向我指出教程或具有基本概念的 JSFiddle,我可能会从那里弄清楚。只是难倒了从什么方向着手。
【问题讨论】:
标签: javascript jquery html css