我尝试滚动滚动条 查看某个位置 通过setPosition(x)。 卷轴的短暂时刻 将滚动区域移动到正确的位置 位置,但立即反弹 背部。 怎么做对了?
答案 0 :(得分:1)
使用Famo.us 0.3,它似乎就像这样工作。
让我们说:
代码:
// Scrollview area height 250 pixels
var myScrollviewArea = 250;
// My scrollview contents' total height 1000 pixels
var myScrollviewContents = 1000;
// Contents - Area = total pixels to scroll
var scrollpx = myScrollviewContents - myScrollviewArea;
// Setting scrollview to use the first element as offset origin
myScrollview.getOffset(1);
// Setting scroll position with setOffset()
myScrollview.setOffset(scrollpx);
<强>更新强>
上面的代码似乎非常随机,因为偏移索引会发生变化。
这里有一些更新的代码,仍然有点抽搐,但有效:
function _scrollToBottom() {
if(myScrollviewSurfaces) {
// Pixels to scroll
var scrollpx = 0;
// Current first visible element
var index = myScrollview.getCurrentIndex();
// Offset from the top of the index
var offset = myScrollview.getOffset();
// Calculating the distance from index to bottom
for(var i = index; i < myScrollviewSurfaces.length; i++) {
scrollpx = scrollpx + myScrollviewSurfaces[index].getSize(true)[1];
}
if(offset > 0) {
scrollpx = scrollpx - offset;
}
scrollpx = scrollpx - myScrollview.getSize(true)[1];
if(scrollpx > 0) {
myScrollview.setVelocity(1);
myScrollview.setPosition(scrollpx);
}
}
}
答案 1 :(得分:0)
我现在明白了。 Scrollview为粒子添加了一个弹簧。当仅移动粒子时,弹簧将其移回锚定位置。 将弹簧锚设置到相同位置可以解决问题。
scrollview.setPosition(x)
scrollview.spring.setAnchor(x)
答案 2 :(得分:0)
在scrollview上设置选项。它是Scrollview将在其中显示内容的区域大小(以像素为单位)。
横跨400px的Scrollview:
scrollview.setOptions({
clipSize: 400,
});
横跨整个背景的Scrollview:
scrollview.setOptions({
clipSize: mainContext.getSize()[1],
});