---- 使用window.scrollBy指定页面基于当前位置的滚动偏移量。 正数坐标会朝页面的右下方滚动,负数坐标会滚向页面的左上方。...例子 // 向下滚动一屏 window.scrollBy(0, window.innerHeight); // 向上滚动一屏 window.scrollBy(0, -window.innerHeight...); 扩展阅读 除了接受正负偏移量,window.scrollBy还能接受ScrollToOptions作为配置。...默认值auto,效果等同于instant ScrollToOptions可以作为如下方法的配置: window.scroll() window.scrollBy() window.scrollTo()...element.scroll() element.scrollBy() element.scrollTo() 接下来介绍其他几个滚动相关API: window.scroll 指定页面需要滚动的绝对位置。
主要关注调用scrollBy时滚动的是哪个列表,滚动了多少。...&& mChildList.canScrollVertically(dy)) { consumed[1] = dy; scrollBy...(int dy, RecyclerView recyclerView) { try { recyclerView.scrollBy(0, dy);...mChildList.canScrollVertically(dy)) { consumed[1] = dy; scrollBy...else { if (dy dy) { consumed[1] = dy; scrollBy
即通过在Scroll.onScrollFrameBegin()每帧开始滚动时触发,将Scroll返回的实际滚动量的offset,通过scrollBy(0, offset)方法,将Scroll的偏移量派发给...Scroll(){ // ...}// TODO:知识点:通过调用Scroll.onScrollFrameBegin(),在每帧开始滚动时触发时将Scroll返回的实际滚动量的offset,通过scrollBy...this.isWebAtEnd) { // 还没触到web底部 this.webviewController.scrollBy(0, offset) // 通过调用Web的WebController.scrollBy...(0, offset) // 通过调用List滚动控制器的scrollBy接口,滚动偏移派发给List return { offsetRemain: 0 } } } else if (...(0, offset) // 通过调用List滚动控制器的scrollBy接口,滚动偏移派发给List return { offsetRemain: 0 } // 将Scroll剩余滚动偏移量返回
在 View 需要变换位置时,为其添加适当的滑动效果,获得更好的用户体验,下面来看一下怎样去实现 View 的滑动: 1、scrollBy / ScrollTo 方法: View 控件提供的两个方法...方法和 scrollTo 方法,这里为什么要调用布局的 scrollTo 方法和 scrollBy 方法呢?..." /> 把 scrollBy 的那个按钮改了一下,下面是 MainActivity.java: scrollByButton.scrollBy(-30, -30); MainActivity.java...只需要把 scrollBy 按钮的点击事件改成它本身调用 scrollBy 方法就行了,来看看结果: ?...到这里,我想小伙伴们应该能明白为什么上面要调用 layout.scrollTo 方法和 layout.scrollBy 方法了: scrollTo 方法和 scrollBy 方法移动的是 view
scrollHeight 和 scrollWidth 属性为只读属性 2.scrollLeft 和 scrollTop 需要一个监听方法 还存在浏览器兼容问题 二.窗口相关 1.window对象的scrollBy...() 和scrollTo() 1.scrollBy(x,y) scrollBy(x,y)方法滚动当前window中显示的文档,x和y指定滚动的相对量。...scrollBy(0, 200) ==> 使得滚动条Y轴的位置,在当前的基础上增加200。比如:当前Y轴位置为0,执行后便是200;当前为100,执行后便是300。
GestureDetector 三、View的滑动 1、layout() 2、offsetLeftAndRight、offsetTopAndBottom 3、LayouParams 4、动画 5、scrollTo、scrollBy...scrollTo(x,y)是瞬间移动到(x,y),scrollBy(deltaX,deltaY)是移动增量。...同理: ((View)getParent()).scrollBy(-offsetX, -offsetY); 说明1: scrollBy还是调的scrollTo :...例如,使用view.scrollBy(100,0),那么view和屏幕一起右移100,即视觉上view的内容左移100。...所以要让view的内容视觉上右移100,需要view的父view左移100,view.scrollBy(-100,0)。所以,上面用getParent,而且传的是负值。
ScrollBy方式 同时,我们了解下 ScrollBy这个方法,该方法可以产生控件的滚动效果。而看起来移动了该控件的子内容。...textView1.scrollBy(15, 15); 该方法需要两个参数,x轴偏移量和y轴偏移量。执行代码后,我们看到产生了 类似 滚动条移动后,控件 上移 的效果。...layout_height="wrap_content" android:layout_marginLeft="16dp" android:text="scrollBy...OnClickListener() { public void onClick(View arg0) { textView1.scrollBy...OnClickListener() { public void onClick(View arg0) { linearLayout1.scrollBy
当点击了scrollTo按钮时,我们调用了LinearLayout的scrollTo()方法,当点击了scrollBy按钮时,调用了LinearLayout的scrollBy()方法。...那说了这么多,scrollTo()和scrollBy()这两个方法到底有什么区别呢?其实运行一下代码我们就能立刻知道了: ?...但是你会发现,之后再点击scrollTo按钮就没有任何作用了,界面不会再继续滚动,只有点击scrollBy按钮界面才会继续滚动,并且不停点击scrollBy按钮界面会一起滚动下去。...而scrollBy()方法则是让View相对于当前的位置滚动某段距离,那每当我们点击一次scrollBy按钮,View的当前位置都进行了变动,因此不停点击会一直向右下方移动。...如果当前事件是ACTION_MOVE,说明用户正在拖动布局,那么我们就应该对布局内容进行滚动从而影响拖动事件,实现的方式就是使用我们刚刚所学的scrollBy()方法,用户拖动了多少这里就scrollBy
想完全把mScrollX和mScrollY,scrollTo()和scrollBy(),smoothScrollTo和smoothScrollBy弄明白并不容易,但查阅他们的源代码基本就能明白个大概,这篇文章就是从源码分析他们究竟有什么作用和区别...xiangyong1521 文章地址:http://blog.csdn.net/xiangyong1521/article/details/77826942 目录 mScrollX和mScrollY scrollTo()和scrollBy...---- 二.scrollTo()和scrollBy() /** * Set the scrolled...(int x, int y) { scrollTo(mScrollX + x, mScrollY + y); } 源码可以看出,scrollTo 和 scrollBy...scrollBy(int x,int y): 从源码中看出,它实际上是调用了scrollTo(mScrollX + x, mScrollY + y); mScrollX + x和mScrollY + y
>回到顶部 3 4 test.onclick = function(){ 5 scrollTo(0,0); 6 } 7 8 4.scrollBy...():scrollBy(x,y)方法滚动当前window中显示的文档,x和y指定滚动的相对量,只要把当前页面的滚动长度作为参数,逆向滚动,则可以实现回到顶部的效果 1 <body style="height...test.onclick = function(){ 5 var top = document.body.scrollTop || document.documentElement.scrollTop 6 scrollBy...动画有两种:一种是CSS动画,需要有样式变化配合transition;一种是javascript动画,使用定时器来实现 在上面的5种实现中,scrollTop、scrollTo()和scrollBy...()动画效果 将scrollBy(x,y)中的y参数设置为-50,直到scrollTop为0,则回滚停止 var timer = null; box.onclick = function
而在这之前,我们还有一件事要办,那就是搞清楚scrollTo()和scrollBy()的原理。scrollTo()和scrollBy()的区别我这里就不重复叙述了,不懂的可以自行google或百度。...下面我们再来看看scrollBy(): public void scrollBy(int x, int y) { scrollTo(mScrollX + x, mScrollY + y); }...这样简短的代码相信大家都懂了,原来scrollBy()内部是调用了scrollTo()的。...但是scrollTo()/scrollBy()的滚动都是瞬间完成的,怎么样才能实现平滑滚动呢。 不知道大家有没有这样一种想法:如果我们把要滚动的偏移量分成若干份小的偏移量,当然这份量要大。...然后用scrollTo()/scrollBy()每次都滚动小份的偏移量。在一定的时间内,不就成了平滑滚动了吗?没错,Scroller正是借助这一原理来实现平滑滚动的。下面我们就来看看源码吧!
常见的实现View的滑动的三种方式: 第一种是通过View本身提供的scrollTo/scrollBy方法来实现滑动; 第二种是通过动画给View施加平移效果来实现滑动; 第三种是通过改变View...使用scrollTo/scrollBy View提供了专门的方法来实现滑动, 即scrollTo()和scrollBy(),这两个方法的实现如下: /** * Set the scrolled...horizontally * @param y the amount of pixels to scroll by vertically */ public void scrollBy...(int x,int y) { scrollTo(mScrollX + x,mScrollY + y); } 从以上源码可看出, scrollBy实际上也是调用了scrollTo...scrollTo和scrollBy只能改变View内容的位置 即,本方式实现的是View 内容的滑动!!! 而不能改变View 本身在布局中的位置和顶点坐标!!!
三、scrollTo/scrollBy window.scrollTo 可将视窗滚动到指定的坐标。...用法如: window.scrollTo(xpos, ypos); window.scrollBy 可将视窗向上下或左右移动指定坐标的距离。...用法如: window.scrollBy(xnum, ynum); 这种方式还需要实用 Element.getBoundingClientRect 来获取元素的大小及相对于当前视窗的位置。...// 滚动 div#root 元素顶部到与视窗顶部对齐 window.scrollTo(domScrollLeft, domScrollTop + targetOffsetTop); window.scrollBy
document.body.scrollTop')3.5 禁用Scroll组件滚动Scroll组件绑定onScrollFrameBegin事件,将剩余偏移量设置为03.6 滚动偏移量派发通过对应组件滚动控制器的scrollBy...this.isWebEnd) { this.webController.scrollBy(0, offset) return {offsetRemain: 0}...} else if (this.scroller.isAtEnd()) { this.listScroller.scrollBy(0, offset) return...offset 0) { this.listScroller.scrollBy...offsetRemain: 0} } else if (this.scroller.currentOffset().yOffset scrollBy
我们可以使用 scroll(),scrollTo(),scrollBy()方法滚动页面,这三个方法都接收俩个参数,x和y。...scroll和scrollTo表示的是要滚动的坐标,scrollBy表示滚动的距离。还是写一下把。...// 相对于当前视口向下滚动 80 像素 window.scrollBy(0, 80); // 相对于当前视口向右滚动 40 像素 window.scrollBy(40, 0);
mBottomView.getMeasuredHeight()) {//avoid out of bottom boundary mTopView.scrollBy...mBottomView.getMeasuredHeight()); } else { mTopView.scrollBy...- mTopView.getScrollY()) < 0) {//avoid out of top boundary mTopView.scrollBy...mTopView.getScrollY()); } else { mTopView.scrollBy
一般得到的都是0,除非你调用过scrollTo或scrollBy这两个函数来改变它。...scrollTo() 和 scrollBy() 从字面意思我们可以知道 scrollTo() 是滑动到哪里的意思 ,scrollBy()是相对当前的位置滑动了多少。...awakenScrollBars()) { postInvalidateOnAnimation(); } } } public void scrollBy...(int x, int y) { scrollTo(mScrollX + x, mScrollY + y); } 有几点需要注意的是 不论是scrollTo或scrollBy,其实都是对View...关于这两个函数的源码分析大家可以看Android——源码角度分析View的scrollBy()和scrollTo()的参数正负问题,一目了然。
根据刚才的scrollBy()源码来说X的偏移为mScrollX + x,为了要左滑x就必须为负值。...scrollBy()实际移动的是ViewGroup。...例如: scrollBy(80,0);ViewGroup的X + 80,即layout(l+80,t,r+80,b);Canvas并没有移动,ChildView也就没有移动。...scrollBy(-80,0);即layout(l-80,t,r-80,b),ViewGroup向左移动了80,相当于内容向右移动了80。
script> test.onclick = function(){ scrollTo(0,0); } 4】scrollBy...() scrollBy(x,y)方法滚动当前window中显示的文档,x和y指定滚动的相对量 只要把当前页面的滚动长度作为参数,逆向滚动,则可以实现回到顶部的效果 <body style="height...(){ var top = document.body.scrollTop || document.documentElement.scrollTop scrollBy...(fn); }else{ cancelAnimationFrame(timer); } }); } 3、增加scrollBy...()动画效果 将scrollBy(x,y)中的y参数设置为-50,直到scrollTop为0,则回滚停止 var timer = null; box.onclick = function
scrollIntoView 4. scrollBy 这个方法是 window 上的,元素上也有这个方法,但兼容性不太好。它用来在窗口中按指定的偏移量滚动文档。...两种语法: window.scrollBy(x,y); window.scrollBy(options); x 是水平滚动的偏移量,单位:像素; y 是垂直滚动的偏移量,单位:像素; options...scrollBy 中的 x、y 是相对值。比如下面的例子,在手机端看小说时,当我们点击自动阅读时,页面就会慢慢滚动,这样我们就不用手动滑动了。...$(el).click(function(){ window.scrollTo(0,0); }); 翻页效果 scrollBy 可以做翻页的效果。...使用 scrollTop 也可以实现翻页(当然,实现翻页功能有很多种方法,这里只是使用了scrollBy)。 5.
领取专属 10元无门槛券
手把手带您无忧上云