首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏网络技术联盟站

    如何处理 React 中的 onScroll 事件?

    在 React 应用中,我们经常需要处理滚动事件(onScroll),以实现一些与滚动相关的功能,如无限滚动加载、滚动到顶部按钮等。 本文将详细介绍如何处理 React 中的 onScroll 事件,并提供示例代码帮助你理解和应用这个功能。 添加滚动事件监听器在 React 中,我们可以通过在元素上添加 onScroll 属性来监听滚动事件。通过指定一个回调函数,我们可以在滚动事件触发时执行相应的逻辑。 结论本文详细介绍了如何处理 React 中的滚动事件(onScroll),以及一些优化技巧。

    5.2K10编辑于 2023-06-07
  • 来自专栏Dato

    关于ZK框架的onScroll事件的问题

    HtmlBasedComponent.class, Events.ON_AFTER_SIZE, CE_DUPLICATE_IGNORE); } ... } 发现最大的组件所支持的事件并没有我们想要的onScroll $n(), "onScroll", 'doScroll_'); }, unbind_: function() { this.domUnlisten_(this. $n(), "onScroll", 'doScroll_'); this. supers(cul.wgt.CbxDiv, 'unbind_', arguments); }, doScroll_: function() { this.fire('onScroll

    1.2K60发布于 2018-04-17
  • 来自专栏Sorrower的专栏

    Android手势操作耍起来!

    show(); return false; } @Override public boolean onScroll onScroll 拖动相应. 就是拖着某个控件, 这个就会触发. onFling 滑动相应. 就是快速划一下, 它就会触发. ---- 小栗子体验一下 也说了一些, 我们来体验下. 绕圈 onDown onShowPress onScroll onScroll onScroll onScroll onScroll onScroll 然后我们再来一次, 先点击一下, 再绕一圈. 点击时候发生了: onDown onShowPress onSingleTapUp 绕圈时候是: onDown onShowPress onScroll onScroll onScroll onFling 然后分析第一次绕圈, 点下去onDown, 停留onShowPress, 拖动onScroll, 之后就是多次拖动. 很好理解.

    1.1K30发布于 2018-09-04
  • 来自专栏Android知识点总结

    5-VI--ListView事件全解析

    }); 三、滑动事件:setOnScrollListener 有两个回调方法: onScrollStateChanged(AbsListView view, int scrollState) onScroll 0x5500ff00 : 0x550000ff); } @Override public void onScroll view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { } }); 2.onScroll 最顶端条目的id * @param visibleItemCount 可见的条目数 * @param totalItemCount 总条目数 */ @Override public void onScroll } } } @Override public void onScroll

    1K20发布于 2018-09-26
  • 来自专栏Web行业观察

    {防抖}与{节流}

    这不是啥新问题,只不过最近又重新回顾了一下这个问题 一、需求 解决 onscroll每次计算导致的性能问题 onscroll是最典型的需要进行防抖或者节流的处理问题 最近有人问到我,防抖和节流有什么不同 function(){ console.log("防抖"); console.log(new Date()); },300); }; 为什么要clearTimeout 每次onscroll 在解决onscroll问题的时候,如果自己观察console可以发现,防抖保证了滚动停止的时候,才会进行处理,因为滚动停止了,没有scroll事件了,最后一次timer会被保留,从而进行调用 2、节流 比如: var flag = true; window.onscroll = function(){ if(! utm_source=website 2、节流解决onscroll实例 如果较长点时间快速滚动不停下,会执行两次,这就是节流的周期。 http://jsrun.net/8viKp/edit?

    1.1K20发布于 2018-10-31
  • 来自专栏Czy‘s Blog

    防抖与节流

    防抖与节流 防抖debounce与节流throttle都是控制事件处理函数执行频率的方法,当函数会进行DOM操作或者具有请求服务器等行为并且作为高频事件例如onscroll触发的事件处理函数时,就需要进行事件处理函数执行频率的控制 clearTimeout(timer); timer = setTimeout(() => funct(...args), wait); } } window.onscroll clearTimeout(timer); timer = setTimeout(() => timer = null, wait); } } window.onscroll previous > wait){ funct(...args); previous = now; } } } window.onscroll funct(...args); timer = setTimeout(() => timer = null, wait); } } } window.onscroll

    56420发布于 2020-08-27
  • 来自专栏刘晓杰

    OnGestureListener探索

    onLongPress(MotionEvent e) { Log.e("onLongPress", "onLongPress"); } // 在touch down后又没有滑动(onScroll Log.e("onSingleTapUp", "onSingleTapUp"); return false; } @Override public boolean onScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { Log.e("onScroll ", "onScroll"); return false; } @Override public boolean onFling(MotionEvent e1,

    60730发布于 2019-02-21
  • 使用 Toggle 按钮停止循环

    wx.SL_AUTOTICKS | wx.SL_LABELS) self.slider.SetTickFreq(5, 1) self.slider.Bind(wx.EVT_SCROLL, self.onScroll self.slider, 0, wx.ALL, 5) sizer.Add(self.toggle, 0, wx.ALL, 5) self.SetSizer(sizer)​ def onScroll wx.SL_AUTOTICKS | wx.SL_LABELS) self.slider.SetTickFreq(5, 1) self.slider.Bind(wx.EVT_SCROLL, self.onScroll self.slider, 0, wx.ALL, 5) sizer.Add(self.toggle, 0, wx.ALL, 5) self.SetSizer(sizer)​ def onScroll

    1.1K10编辑于 2024-08-06
  • 来自专栏算法微时光

    Android之GestureDetector使用

    ACTION_DOWN MotionEvent e2:最后一个ACTION_MOVE MotionEvent velocityX:X轴上的移动速度,像素/秒 velocityY:Y轴上的移动速度,像素/秒 onScroll 无论是用手拖动view,或者是以抛的动作滚动,都会多次触发,这个方法 在ACTION_MOVE动作发生时就会触发 滑屏:手指触动屏幕后,稍微滑动后立即松开 onDown-----》onScroll ----》onScroll----》onScroll----》………----->onFling 拖动 onDown------》onScroll----》onScroll------》onFiling // TODO Auto-generated method stub return false; } public boolean onScroll

    1.1K10编辑于 2021-12-06
  • 来自专栏鸿蒙开发笔记

    纯血鸿蒙APP实战开发——组件堆叠

    通过绑定Scroll组件的onScroll滚动事件回调函数,精准捕获滚动动作的发生。当滚动时,实时地调节组件的透明度、高度等属性,从而成功实现了嵌套滚动效果、透明度动态变化以及平滑的组件切换。 Scroll(this.scroller) { Column() { ... }}实现滚动过程中动态调整文本框高度的功能时,运用Scroll组件滚动事件回调函数onScroll在滚动时修改文本框的高度及组件的透明度 onScroll(() => { let yOffset: number = this.scroller2.currentOffset().yOffset; this.Height2 = this.Height2 本例中Scroll组件绑定onScroll滚动事件回调,onScroll属于频繁回调,在回调中需要尽量减少耗时和冗余操作,例如减少不必要的日志打印。

    41820编辑于 2025-01-02
  • 来自专栏bug收集

    【面试题】防抖和节流的理解,及其应用场景

    鼠标的mousemove、mouseover 导航条上,用户不停的在导航区域滑动相当于 函数节流的应用场景 间隔一段时间执行一次回调的场景有: 滚动加载,加载更多或滚到底部监听,window.onscroll 保证只开启一个定时器 } timer = setTimeout(function(){ fn(); //延迟delay,执行函数 },delay) } window.onscroll } } let testDebounceFn = debounce(test,1000); function test(a){ console.log('滚动停 '+a) } window.onscroll } } let testThrottleFn = throttle(test,3000); function test(a){ console.log('打印 '+a) } window.onscroll } } let testThrottleFn = throttle(test,2000); function test(b){ console.log('出现 '+b) } window.onscroll

    6.8K20编辑于 2022-07-22
  • 来自专栏Android、鸿蒙开发

    Android 触摸屏交互之手势监听

    方法期间的X上的滚动距离 * @param distanceY 触发onScroll方法期间的Y上的滚动距离 * @return */ @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { return 方法期间的X上的滚动距离 * @param distanceY 触发onScroll方法期间的Y上的滚动距离 * @return */ @Override (distanceY >= 0) {//上滑 result += "onScroll - Up\n"; tvResult.setText(result) 这就是基本的事件逻辑了,可以根据自己的需求进一步做处理,比如音量屏幕左边上滑时调节亮度,右边上滑时调节音量,这都是通过在onScroll方法中做处理实现的。OK,就是这样了

    2.1K30发布于 2020-09-25
  • 来自专栏前端自习课

    【JS】687- 几行代码摸清楚上拉加载原理

    e.target.scrollTop 获取,表示滚动条距离顶部的px 实际高度(scrollHeight):通过 dom 的 scrollHeight 获得,表示区域内所有内容的高度(包括滚动距离),也就是实际高度 基础实现 onScroll export default { data(){ return { reachBottomDistance: 100 } }, methods: { onScroll return { isReachBottom: false, reachBottomDistance: 100 } }, methods: { onScroll dom.scrollHeight this.offsetHeight = Math.ceil(dom.getBoundingClientRect().height) }, methods: { onScroll

    1.7K41发布于 2020-08-21
  • 来自专栏Web 技术

    目前最流行的 5 大 Vue 动画库,使用后太炫酷了

    结果: vue-animate-onscroll 该库包含用于在元素滚动到视口时为其设置动画的指令。 安装 npm install vue-animate-onscroll 引入: import Vue from 'vue' import VueAnimateOnScroll from 'vue-animate-onscroll

    <img src="path/to/img" v-animate-onscroll=" 但是,我们可以使用 v-animate-onscroll.repeat 代替后者,这样只要元素滚动到视图中,就会触发动画: <img src="path/to/img" v-animate-onscroll.repeat ="'swing'" /> 此外,您可以自定义要触发动画的滚动方向(向上或向下): <div v-animate-onscroll="{up: 'animationName'}">Animate me

24.9K21编辑于 2022-07-29
  • 来自专栏向治洪

    仿大众点评悬浮购买框效果

    = null){               onScrollListener.onScroll(t);           }       }   /**      *        MyScrollView滑动的Y方向距离          * @param scrollY          *              、          */ public void onScroll  {   @Override public void onGlobalLayout() {   //这一步很重要,使得上面的购买布局和下面的购买布局重合                 onScroll myScrollView.getScrollY());               }           });       }   @Override public void onScroll 好了,不过根据这种思路你也可以刚开始使用一个悬浮框来覆盖在下面的购买布局上面,然后onScroll()方法中更新悬浮框的位置,不过悬浮框的x,y不是相对于父布局的,这点要注意下,这样子也能实现效果,不过相对于此

    1.5K100发布于 2018-01-29
  • 来自专栏日常记录

    防抖函数与节流函数

    实现的自适应不再此范围内) 通过监听 keyup 事件,监听文字输入并调用接口进行模糊匹配 … 常规实现,以监听 scroll 事件为例 我们先来看一下scroll事件的触发频率 window.onscroll scroll 的一个简单例子 复制代码 let timer; window.onscroll = function () { if(timer){ clearTimeout(timer) } clearTimeout(timer); timer = setTimeout(function () { method.apply(self,args); },delay); } } window.onscroll scroll 的一个简单例子 复制代码 let startTime = Date.now(); //开始时间 let time = 500; //间隔时间 let timer; window.onscroll now; }else { timer = setTimeout(function () { loop.apply(self, args); }, 50); } } } window.onscroll

    1.1K30发布于 2019-07-02
  • 来自专栏全栈私房菜

    防抖和节流

    // 函数防抖 let timer = null; document.getElementById("debounce").onscroll = function() { clearTimeout( setTimeout(function () { func() }, wait); } } document.getElementById("debounce").onscroll // 函数节流 let isOk = true; document.getElementById("throttle").onscroll = function(){ if(! func() isOk = true; }, wait); } } document.getElementById("throttle").onscroll

    87810编辑于 2022-10-24
  • 来自专栏Node.js开发

    白话防抖

    3000px; } </style> </head> <body>

    页面
    <script> document.onscroll screenHeight>=pageHeight){ console.log("加载更多"); } } // 延时器全局变量 var timeout= null; document.onscroll timeout); timeout = setTimeout(function(){ more() },600) } } } document.onscroll = debounce(more) </script> 这样我们就完成了一个高阶函数debounce,函数的参数为函数,还有一点需要优化,有得时候我们在调用事件函数的时候,需要访问调用onscroll的 // 绑定this指向,并传递事件对象 more.call(content,event) },600) } } } document.onscroll

    1.3K21发布于 2019-07-19
  • scroll-view 使用详解:常见用法、最佳实践与问题解决

    控制下拉刷新状态 三、常用场景与实现 场景 1:垂直滚动列表(最常见) <scroll-view scroll-y class="scroll-list" bindscroll="<em>onScroll</em> fn.apply(this, args); timer = null; }, delay); } }; } // 页面中使用 Page({ <em>onScroll</em> 滚动位置:', e.detail.scrollTop); // 懒加载、吸顶等逻辑 }, 16) // ~60fps }) 六、高级技巧 技巧 1:吸顶效果(Sticky Header) <em>onScroll</em> 'header-sticky' : 'header-normal'}}"> 吸顶标题 </view> 技巧 2:滚动百分比指示器 onScroll(e) { const { scrollTop, hidden; /* 关键 */ } 七、兼容性注意事项 平台 注意事项 微信小程序 支持最全,但 iOS 下 scroll-into-view 需延迟 支付宝小程序 属性名相同,但部分事件名不同(如 onScroll

    47710编辑于 2025-11-30
  • 来自专栏Android知识分享

    Carson带你学Android:手把手教你学会手势识别应用 GestureDetector

    float distanceX, float distanceY) { Log.i("MyGesture", "onScroll:"); return true float distanceX, float distanceY) { Log.i("MyGesture", "onScroll:"); float distanceX, float distanceY) { Log.i("MyGesture", "onScroll:"); float distanceX, float distanceY) { Log.i("MyGesture", "onScroll:"); float distanceX, float distanceY) { Log.i("MyGesture", "onScroll:");

    1.9K11编辑于 2022-03-24
  • 领券