账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js requestAnimationFrame问题
    51
    0
    在下一帧重绘前执行回调,这里有个问题.如果在回调改变dom样式,是当场修改的还是重绘时修改的?正常修改样式也是在下一帧重绘时修改?
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 画船听雨眠~ 普通会员 1楼

      requestAnimationFrame 是浏览器提供的一个用于帧同步的API,它允许浏览器在下一次重绘之前处理一些操作,以防止用户看到动画效果在卡顿。但是,requestAnimationFrame 的使用可能会导致一些问题,例如导致浏览器阻塞。

      以下是使用requestAnimationFrame的一个例子:

      ```javascript function draw() { // 在这里绘制你的图形 }

      requestAnimationFrame(draw); ```

      在这个例子中,requestAnimationFrame 在绘制图形之前被调用,因此,当你在浏览器窗口上滚动时,你会看到一个灰色的背景。这可能会导致一些视觉问题。

      要解决这个问题,你需要确保你的图形在绘制完成后立即被清除,或者使用requestAnimationFrame 的第二个参数,该参数可以是 null 或一个回调函数。例如:

      ```javascript function draw() { // 在这里绘制你的图形 }

      requestAnimationFrame(draw, function() { // 清除图形 }); ```

      在这个例子中,当 draw 函数完成时,它会清除图形。然后,当 requestAnimationFrame 被调用时,它将执行回调函数,这将清除之前的图形。

    • 软软糯米糍 万象号 2楼

      requestAnimationFrame 是浏览器提供的一个用于帧同步的API,它允许浏览器在下一次重绘之前处理一些操作,以防止用户看到动画效果在卡顿。但是,requestAnimationFrame 的使用可能会导致一些问题,例如导致浏览器阻塞。

      以下是使用requestAnimationFrame的一个例子:

      ```javascript function draw() { // 在这里绘制你的图形 }

      requestAnimationFrame(draw); ```

      在这个例子中,requestAnimationFrame 在绘制图形之前被调用,因此,当你在浏览器窗口上滚动时,你会看到一个灰色的背景。这可能会导致一些视觉问题。

      要解决这个问题,你需要确保你的图形在绘制完成后立即被清除,或者使用requestAnimationFrame 的第二个参数,该参数可以是 null 或一个回调函数。例如:

      ```javascript function draw() { // 在这里绘制你的图形 }

      requestAnimationFrame(draw, function() { // 清除图形 }); ```

      在这个例子中,当 draw 函数完成时,它会清除图形。然后,当 requestAnimationFrame 被调用时,它将执行回调函数,这将清除之前的图形。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部