【问题标题】:How do I use vertically stacked divs as pages that each fill browser window?如何使用垂直堆叠的 div 作为每个填充浏览器窗口的页面?
【发布时间】:2013-01-31 22:26:17
【问题描述】:

我已经在一些网站上看到了一种效果,它们为您提供了本质上是垂直的“页面”,每个页面都填满了浏览器窗口。例子:

http://www.bleed.no/

http://www.weworkonsunday.com/

第一个更干净,更复杂。

我一直在想如何实现这个效果。如果高度不是问题,那么使用页面锚点等就足够简单了,但是填充窗口的垂直方向(以及宽度)是让我失望的原因。

我是否缺少一种简单的方法?还是都是一些复杂的 java 蠢事?

非常感谢您的帮助

【问题讨论】:

  • 您探索了哪些途径来实现此功能?
  • 它可能确实使用了 JavaScript(不是 Java)。最好的办法是熟悉 Firebug 或 Chrome 的开发者工具。使用检查器查看事物的布局。

标签: html css height liquid-layout


【解决方案1】:

从概念上讲,我会构建一个带有堆叠 div 的垂直页面,所有这些都具有相同的类,该类响应窗口的高度(并且在调整浏览器大小时也会响应)。使用 jQuery 的未经测试的代码:

<div id="page1" class="page">content</div>
<div id="page2" class="page">content</div>
<div id="page3" class="page">content</div>

<script>

    // set up onResize event handler
    window.onresize = onResizeScreen;

    // run onResize event handler once on load
    $.(function() { onResizeScreen(); });

    // onResize event handler
    function onResizeScreen(event) {
        $(".page").attr("height", screen.height);
    }

    // function to scroll to specific page
    function gotoPage(pageNumber){
        window.scroll(screen.height*pageNumber-1);
    }

</script>

<style>
    .page {
        width: 100%;
    }
</style>

您对解决这类问题听起来很陌生。如果您不知道上述内容的含义,请检查 jQuery 并处理 JavaScript 事件。

【讨论】:

  • 您好 ktamlyn,感谢您的回复,这正是我所想的。我对 javascript 很陌生,我可以解开并理解现有的代码,但是当我尝试自己编写一些东西时总是会遇到问题。你的例子对我来说很有意义,我会看看我能不能让它发挥作用
  • 一定要包含 jQuery 在你试图找出我的答案。
【解决方案2】:

此结果确实需要一些 javascript 专业知识(以您的示例中实现的方式)。

有一个 jquery 库试图简化这个过程。

http://stephband.info/jparallax/

即使没有真正简单的实现方法。效果非常依赖于布局并且是一种“新”的网站制作方式的原因之一......需要一些时间才能有人解决这个问题。

这是另一个示例,说明如何在没有库帮助的情况下按照您描述的方式实现视差。

如何:http://net.tutsplus.com/tutorials/html-css-techniques/simple-parallax-scrolling-technique/ 演示:http://nettuts.s3.amazonaws.com/2138_SimpleParallax/Demo/index.html

如果您搜索“视差滚动”,您会发现很多其他资源。

【讨论】:

  • 对不起,我应该更具体一点 - 我的意思是各种不同的 div 都填充了浏览器的高度,而不是视差效果(虽然我很想尝试视差,但你的链接看起来就像一个很好的资源)
  • 就像我说的,这是一件复杂的事情。但你的答案是视差。看看这个...net.tutsplus.com/tutorials/html-css-techniques/…。我正在更新答案以使其更完整。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-21
  • 2013-09-29
  • 1970-01-01
  • 2018-01-20
  • 2019-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多