首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将div存储在数组x,y位置

问将div存储在数组x,y位置
EN

Stack Overflow用户
提问于 2012-09-14 01:05:23
回答 1查看 1K关注 0票数 1

我正在开发我的网站,我有一个按钮(位置:固定),每次我点击它,我需要它来滚动页面到下一个目录,其中有class=“图片”,并首先低于scrollTop().top值。我将带有class=“图片”的div存储在$pictures数组中,但我不确定是否需要它……

代码语言:javascript
复制
$(document).ready(function()
{

  var $pictures = $('.picture');

  var i;

  $(window).scroll(function()
  {
    for(i in $pictures)
    {
      if($("html").scrollTop() > $pictures[i].offset().top)
      {
        alert(i);
      }
    }
  });
});

不幸的是,它不能工作。也许有人有更好的方法?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-14 01:35:47

尝尝这个。除了被误导的for-in循环之外,您还需要计算$(window).scrollTop()而不是$('html').scrollTop(),后者总是等于零。

代码语言:javascript
复制
$(document).ready(function() {
    var $pictures = $('.picture');

    $(window).scroll(function() {
        $pictures.each(function(i, el) {
            if ($(window).scrollTop() > $(this).offset().top) {
                console.log(i);
            };
        });
    });
});​

http://jsfiddle.net/mblase75/Uysmz/

这将记录滚动出屏幕的每一张图片的索引号。或者,如果您只想要滚动出屏幕的最后一张图片,则可以使用.filter函数:

代码语言:javascript
复制
$(document).ready(function() {
    var $pictures = $('.picture');

    $(window).scroll(function() {
        $justpast = $pictures.filter(function(i, el) {
            return ($(window).scrollTop() > $(this).offset().top);
        }).last();
        console.log($justpast.index());
    });
});​

http://jsfiddle.net/mblase75/RuR6R/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12411338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档