【问题标题】:Horizontal scrolling layout LEFT/RIGHT: jQuery/CSS quiz水平滚动布局左/右:jQuery/CSS 测验
【发布时间】:2012-11-20 21:59:44
【问题描述】:

看来,我想要达到的目标几乎是不可能的。

我正在尝试创建一个依赖于 jQuery 的 水平布局,但即使关闭了 Javascript 也可以使用。我还希望保留其语义值的最干净的代码。所以我想我正在寻找最终的解决方案。 :)

Web 上最常见的水平布局是这样的:http://www.queness.com/resources/html/scroll/horizontal.html - 这将是完美的(即使关闭 JS 也能正常工作)。我的问题是我需要让它“双向”工作(左右,中间有“开始”项目)。

效果应该是这样的:http://steveandjacqs.com/网站(和编码后端)很棒,但是没有JS就无法使用,代码中充满了hack。

我的 CSS:

html,body { overflow: hidden; }
.wrapper { position: relative; width: 100%; height: 100%; } 
.wrapper-cont { position: relative; width: 500%; height: 100%; margin-left: -200%; }
#item-left { position: absolute: top: 0px; left: 0%; }
#item-home { position: absolute; top: 0px; left: 200%; }
#item-right{ position: absolute; top: 0px; left: 400%; }
#item-down { position: absolute; top: 200%; left: 0%; }

我的 HTML:

<body>
<nav><ul>
     <li><a href="#item-left">Left</a></li>
     <li><a href="#item-home">Home</a></li>
     <li><a href="#item-right">Right</a></li>
     <li><a href="#item-down">Down</a></li>
</ul></nav>
<div class="wrapper">
     <div class="wrapper-cont">
           <div id="item-left">Element outside viewport on the left side</div>
           <div id="item-home">Element on the center of viewport</div>
           <div id="item-right">Element outside viewport on the right side</div>
           <div id="item-down">Element on the center of viewport but down</div>
     </div>
</div>
</body>

我的 JAVASCRIPT 将在各个部分之间使用某种平滑动画插件(可能是scrollTo?)。浏览器滚动(至少垂直)应该被禁用,DIV 本身应该是可滚动的。

///

我应该发布我的网站截图还是这样可以理解?

提前谢谢你!

PS:我或多或少是 jQuery copypasta,所以请放轻松。 :)

更新

修改.htaccess 增加进入首页的内部链接:将“http://example.com”改写为“http://example.com#home”?比我可以用“常用方式”编写布局(例如 Queness 的前一个例子)。

【问题讨论】:

  • 您希望菜单保持不变吗?还是带上家居用品?
  • 它应该与家居用品一起使用。老实说,我以后可能会改变它。 :)

标签: jquery layout scroll usability horizontal-scrolling


【解决方案1】:

您需要遵循示例网站的使用方式。

您当前设置中的问题是

  • 菜单不在 home 元素内,因此不会随之滚动..
  • 每个“页面”的尺寸/位置有误

要在启动时自动滚动到#item-home,您可以使用

<meta http-equiv="refresh" content="0;URL='#item-home'">

在您页面的&lt;head&gt; 部分中


http://jsfiddle.net/gaby/QsQDK/1/ 上包含这些更正/添加的演示

【讨论】:

  • 非常感谢盖比!现在我正在测试你在 JsFiddle 上看起来很完美的解决方案。第一个问题:添加&lt;meta http-equiv="refresh" content="0;URL='#item-home'"&gt;后,页面一直在刷新。如何在第一次加载防止刷新时添加"#item-home"
  • hmm...在我的系统中,只有 chrome 会出现此问题.. 不确定是否存在非 js 客户端解决方法。您可能需要按照问题中的建议进行操作。即:重写url添加#item-home片段。
  • 不幸的是这还没有结束......我的小提琴:jsfiddle.net/cibulka/en9sw/7 它使用来自 Ariel Flesler 的插件 ScrollTo 来平滑滚动。如果没有 Javascript,上面的解决方案可以工作。使用 Javascript 它不会。问题出在应该滚动的容器中。如果我滚动整个文档,它可以工作 - 但我必须删除overflow: hidden。任何想法如何改善布局?谢谢,这简直让人难以忍受。
  • @PetrCibulka,我已经对您的代码进行了一系列更正..(我们的尺寸再次计算错误)并且插件无法正常工作,所以我做了一个简单的..见jsfiddle.net/gaby/en9sw/15
  • @PetrCibulka,小修正,将初始 var currentTarget 设置为 var currentTarget = '#home';,以便在单击选项之前调整大小正常工作..
猜你喜欢
  • 1970-01-01
  • 2018-10-04
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
相关资源
最近更新 更多