【问题标题】:Scrolling to next element in container - almost there滚动到容器中的下一个元素 - 几乎在那里
【发布时间】:2012-09-15 03:12:46
【问题描述】:

我正在努力解决一个 jquery 问题。

我认为我已经接近解决方案,但我现在一直在跌跌撞撞。

所以我的标记(简化)如下所示:

<div class="col">
    Content
   <div class="scroll-container">
      <ul>
        <li>Content</li>
        <li>Content</li>
        <li>Content</li>
      </ul>
   </div>
<a href="#" class="scroll">scroll down</a>
</div>

基本上是一个包含 容器按钮 的 .col。


计划:

1) 单击按钮容器后应向下滚动到下一个&lt;li&gt;

2) 当到达最后一个&lt;li&gt; 时,它再次滚动到第一个 &lt;li&gt;。所以我需要一个循环

3) &lt;li&gt;数字size 可能会因情况而异。 所以基本上按钮应该只是滚动下一个&lt;li&gt; 到容器的顶部。

4) 滚动的&lt;li&gt; 需要在容器的上边缘留出一点边距。


我在哪里:

我有一个类似的问题,ronalchn 很好地解决了这个问题,由于问题有点相似,我根据他的代码创建了一个小提琴。

Fiddle with the solved problem(查看实际代码)

Fiddle with the this problem(显然不适用于同一个 jquery)

我认为代码基本上只需要重新安排一点来适应新情况。

我已经尝试了几个小时,但这似乎仍然超出了我目前对 jquery 的理解水平。

对于任何朝着正确方向的推动,我都非常高兴。谢谢。

【问题讨论】:

  • 也许修好你的小提琴,让可滚动的内容可见。
  • 谢谢@sudowned,我会补充的。
  • 很遗憾,我目前只能发布 2 个链接,所以这里是:Fiddle with scrollable elements visible 希望对您有所帮助。
  • 我编辑了您的帖子以交换链接,以便更好地帮助未来的寻求者。 ;)

标签: javascript jquery scroll scrollto listitem


【解决方案1】:

给你:http://jsfiddle.net/UQsv9/7/

CSS 更改:将 position: relative 添加到您的 ul

我使用$.fn.data 来存储当前的孩子,从那里它只是使用两个偏移之间的差异来计算新的top

【讨论】:

  • 哇,很棒的作品!没想到这么快就解决了!谢谢@罗伊斯!我还没有使用过“$.fn.data”,所以我想我还有很多东西要学。 :-) 谢谢你的 //cmets。对我的理解帮助很大!祝你一切顺利。
  • 嗨@Royce Feng,不幸的是我在实现代码时遇到了一个“Uncaught TypeError”。我不得不更新类名,但其他所有内容都保持不变。 fiddle - updated classnames。这是我网站上的一个活生生的例子:Live example 知道我做错了什么吗?
  • 您在&lt;p&gt; 中移动了滚动按钮,您需要将var container = $(this).siblings('.scroll-container').find('ul'); 更改为var container = $(this).parent().siblings('.scroll-container').find('ul');
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 2023-04-05
  • 2022-11-17
  • 2021-01-28
  • 2021-11-30
  • 2020-06-22
  • 1970-01-01
相关资源
最近更新 更多