作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想看看是否可以优化代码来检查给定时刻哪一行位于视口(viewport)顶部。该函数在滚动事件上运行,并且页面动态加载新单元格(每行最多四个)。该布局由一系列列表项组成,完全位于网格中(大多数情况下为 4x4)。
现在的代码(scrollPosition 是较早的 fetcher,类似于 $(window).scrollTop()):
var topMostRow = _.min(this.container.find("li").toArray(), function(row) {
var offset = $(row).offset().top,
diff = scrollPosition - offset;
return Math.abs(diff);
})
正如您可能猜测的那样,添加的单元格越多,这需要的时间就越长
最佳答案
有点难以解释,但我认为你可以在最后一次滚动时将最后一个 topMostRow
存储在 var 中,然后,你可以在循环中使用
$(lastTopMostRow).next();
或
$(lastTopMostRow).prev();
关于滚动方向(向上或向下)
并检查差异
中比率为正的一个和下一个为负的比率
这样您将只检查几行而不是全部。
关于javascript - 我将如何优化查找视口(viewport)中可见的最上面行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26054038/
我正在尝试获得一个按钮,按下该按钮时会改变颜色。当再次按下时,它应该变回原来的颜色。我究竟做错了什么? 我的模板中的按钮: export default { data: {
我是一名优秀的程序员,十分优秀!