【问题标题】:jQuery to change content in div based on scroll positionjQuery根据滚动位置更改div中的内容
【发布时间】:2012-02-22 00:26:43
【问题描述】:

我正在 Wordpress 中构建一个博客页面,并添加一个指向当前帖子的侧边栏。我想使用 jQuery 用当前帖子的日期填充该侧边栏。这只是一个想法,所以我没有任何代码。但它的功能是这样的:

当您向下滚动页面时,日期(或其他信息)会根据您所在的 div 而改变。它还必须在博客设置中工作,这意味着每个 div 可能具有不同的高度。

有什么想法吗?

【问题讨论】:

  • 您是否有关于存储在任何地方的日期的信息,还是只想从顶部开始数?
  • 我将使用 wordpress,因此我将从每个帖子中获取信息。日期、作者等信息。

标签: jquery blogs


【解决方案1】:

我不知道你想从哪里得到日期,所以,只是一个例子..http://jsfiddle.net/Nsubt/

$(window).on("scroll resize", function(){
    var pos=$('#date').offset();
    $('.post').each(function(){
        if(pos.top >= $(this).offset().top && 
           pos.top < $(this).next().offset().top)
        {
            // any way you want to get the date
            $('#date').html($(this).html()); 
            return; //break the loop
        }
    });
});

$(document).ready(function(){
  $(window).trigger('scroll'); // init the value
});
​

右侧的 Div 可以具有固定位置,或者您可以使用 scrollresize 事件更新其在块中的绝对位置。

【讨论】:

  • Cherry,这个 def 让我走上了正轨!我将在帖子描述本身中有日期,我会简单地从中提取。很好的答案!迫不及待想尝试一下。
  • $(document).ready(function(){ $(window).trigger('scroll'); // 初始化值 });这不是必需的。你能解释一下我该怎么做 $('#date').html($(this).html());当页面在某种位置重新加载时。我的意思是它工作得很好,但是当我重新加载滚动的页面时 - 它采用第一个值,而你不滚动到另一个 .post
  • @RooticalV。触发滚动不起作用吗?我正在做类似的事情。
  • 谢谢。很好的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2020-08-23
  • 2016-06-27
相关资源
最近更新 更多