如何获取 RecyclerView 的滑动距离

如何获取 RecyclerView 的滑动距离,第1张

可以监听滑动接口在没有插入删除的情况下自己计算滑动位置

关于RecycleView滑动的机制,总结起来有两点:

1,RecycleView滑动和布局相对独立。

2,RecycleView的滑动分次单独进行。

以上两个机制就从根本上阻碍了获取当前的滑动距离,布局的细节是使用铆点,每个view都会根据铆点进行安排自己的位置,这时候没有计算滑动偏移,包括增加view和删除View,增加和删除会根据铆点的位置再次布局,也不会修改滑动偏移,而每次滑动都是计算距离,交给Scroller来滑动Content内的View

注意:一旦有View动态的增加删除就没有办法了

你其实可以这样实现,在与scrollview同级建个和中部标签选卡一样的布局,开始的时候设置成隐藏ViewGONE,当scrollview滚动到中部位置的时候让它显示出来就OK了,当小于中部位置时再把它隐藏。

jQuery获取的相关方法

jquery 获取滚动条高度

获取浏览器显示区域的高度 : 

$(window)height(); 

获取浏览器显示区域的宽度 :

$(window)width(); 

获取页面的文档高度 :

$(document)height(); 

获取页面的文档宽度 :$(document)width();

获取滚动条到顶部的垂直高度 :

$(document)scrollTop(); 

获取滚动条到左边的垂直宽度 :

$(document)scrollLeft();

计算元素位置和偏移量:

$(id)offset();

offset方法是一个很有用的方法,它返回包装集中第一个元素的偏移信息。默认情况下是相对body的偏移信息。结果包含 top和left两个属性。

offset(options, results)

optionsrelativeTo指定相对计

算偏移位置的祖先元素。这个元素应该是relative或absolute定位。省略则相对body。

optionsscroll是否把

滚动条计算在内,默认TRUE

optionspadding是否把padding计算在内,默认false

optionsmargin

是否把margin计算在内,默认true

optionsborder是否把边框计算在内,默认true

使用js获取的相关方法

//回到页面顶部

$("#goTotop")click(function(){

$('body,html')animate({scrollTop:0},1500); //点击按钮让其回到页面顶部

});

$(window)scroll(function() {

var yheight1=windowpageYOffset; //滚动条距顶端的距离

var yheight=getScrollTop(); //滚动条距顶端的距离

var height =documentdocumentElementclientHeight//浏览器可视化窗口的大小

var top=parseInt(yheight)+parseInt(height)-217;

var divobj=$("kf");

divobjattr('style','top:'+top+'px;');

})

/

  获取滚动条距离顶端的距离

  @return {}支持IE6

 /

function getScrollTop() {

var scrollPos;

if (windowpageYOffset) {

scrollPos = windowpageYOffset; }

else if (documentcompatMode && documentcompatMode != 'BackCompat')

{ scrollPos = documentdocumentElementscrollTop; }

else if (documentbody) { scrollPos = documentbodyscrollTop; } 

return scrollPos; 

}

如果使用jquery的话,可以这样写:

$(window)bind("scroll", function(){ 

        var top = $(this)scrollTop(); // 当前窗口的滚动距离

  });

如果使用原生js,可以这样写(摘自网上的):

  获取<a href=">

以上就是关于如何获取 RecyclerView 的滑动距离全部的内容,包括:如何获取 RecyclerView 的滑动距离、怎么实时获取scrollview滚动的距离、在js中怎么设置滚动条滚动的距离等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10217274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存