gpt4 book ai didi

angularjs - ionic : Get the currently visible items in ion-content

转载 作者:行者123 更新时间:2023-12-04 12:18:53 24 4
gpt4 key购买 nike

我有一个很长的可滚动 ion-content我的应用程序中的区域,使用 collection-repeat 填充了项目.

我需要知道哪些项目对用户可见。

我无法使用 $ionicScrollDelegate.getScrollPosition计算答案,因为每个项目都有不同的高度(项目高度是按项目计算的)。

最佳答案

最终自己计算了元素的总高度,并通过查询 translateY .scroll 的值元素,我可以找出滚动的可见部分中的项目。

它正在重新发明轮子,但有效。

当我加载项目时,我调用 ScrollManager.setItemHeights(heights) ( heights 是以像素为单位的项目高度数组),并获取当前可见项目的索引:ScrollManager.getVisibleItemIndex()

angular.module("services")
.service('ScrollManager', function() {
var getTranslateY, getVisibleItemIndex, setItemHeights, summedHeights;
summedHeights = null;
setItemHeights = function(heights) {
var height, sum, _i, _len;
summedHeights = [0];
sum = 0;
for (_i = 0, _len = heights.length; _i < _len; _i++) {
height = heights[_i];
sum += height;
summedHeights.push(sum);
}
};

// returns the style translateY of the .scroll element, in pixels
getTranslateY = function() {
return Number(document.querySelector('.scroll').style.transform.match(/,\s*(-?\d+\.?\d*)\s*/)[1]);
};

getVisibleItemIndex = function() {
var i, y;
y = -getTranslateY();
i = 0;
while (summedHeights[i] < y) {
i++;
}
return i;
};

return {
setItemHeights: setItemHeights,
getVisibleItemIndex: getVisibleItemIndex
};
});

关于angularjs - ionic : Get the currently visible items in ion-content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35272547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com