0

我一直在尝试做类似的事情,并尝试了各种来自假滚动条和 DOM 欺骗代码的方法。似乎没有什么像我需要的那样干净/有效。

我想要做的是有一个水平滚动的 div(带滚动条),其中嵌套了一个垂直滚动的 div。理想情况下,单个水平滚动条会滚动,并在某个点之后——垂直滚动它旁边的“向上”div。

以下是需要可视化的人的示例图: 图表 我认为我有一个可行的解决方案:

基本上我认为水平“场景”可能溢出等于“向上”div的高度。在“场景”的水平宽度通过之后……您可以在 onScroll 上使用 (ScrollLeft) 向右移动“向上”容器并使用 (ScrollTop) 向上移动。

基本上给你一种用水平滚动条控制它的垂直滚动的错觉。

在这里查看代码:http: //jsfiddle.net/jPzqj/1/

我知道如何在“场景”结束时传递一个函数......目前我正在使用:

$('#main').scroll(function(e)
    {
        if($(this).scrollLeft()>1430)
        {

        }
});

我唯一的问题是我不太确定如何处理允许我移动上升容器的数学。如何将“场景”div 滚动值传递到“向上”的 ScrollLeft 和 ScrollTop 值...

任何人都可以给我任何建议吗?

谢谢。

4

1 回答 1

0

完全偏离了正确的道路,不涉及垂直滚动条。

那是一个很好的站点(显然不是您在 30 分钟内创建的站点),并且 javascript 被混淆了,但是如果您有兴趣,您可以使用 Firebug 观看源代码以了解发生了什么。

它通过混合一个javascript库、一些很酷CSS3 Transform3D的效果和一个很好的研究HTML来为您提供屏幕向上滚动的效果(实际上,只有图像在移动 - 而不是滚动 - 而屏幕始终处于相同的 Y 位置)。

相同的效果用于创建深度感知,通过移动背景中的房屋比前面的慢。

这种效果称为PARALLAX SCROLLING

javascript您可以开始寻找视差效果的一个好的库是Stellar.js

你可以看看一些很棒的网站Stellar.js尤其是NikeSaucony

希望这个答案为您节省了一些时间,

祝你学业好运;)


编辑

这就是你想要的:Jquery Parallax Scrolling effect - Multi directional

从获得赏金的答案中打开小提琴并按住右箭头键。

于 2013-04-16T08:44:46.887 回答