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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js如何实现单张图向上无缝滚动?
    • 2019-09-23 00:00
    • 11
    45
    0

    很着急,,希望会js的大佬帮帮孩子吧,我太难了。
    需求:
    需要实现一张单张的图片向上滚动并且是无缝滚动,还可以在图片显示到页面居中的时候暂停3s,再继续滚动。

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 桃沢樱. 普通会员 1楼

      在JavaScript中,我们可以使用Web Workers或者使用requestAnimationFrame函数来实现单张图向上无缝滚动。以下是一个使用Web Workers的例子:

      ```javascript function updateImage() { // 获取当前的滚动位置 var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; // 获取滚动条的高度 var scrollHeight = document.documentElement.scrollHeight || document.body.scrollHeight; // 获取滚动条的位置 var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft; // 获取浏览器窗口的高度 var windowHeight = window.innerHeight || document.documentElement.clientHeight; // 获取滚动条的位置 var scrollLeftOfWindow = window.scrollLeft || 0;

      // 如果用户已经滚动到了页面底部,那么需要重新获取滚动位置
      if (scrollTop + windowHeight >= scrollHeight) {
          scrollTop = 0;
      }
      
      // 计算新的滚动位置
      var scrollTopOfWindow = scrollTop + windowHeight - scrollHeight;
      
      // 如果滚动条的位置发生变化,那么需要重新获取滚动位置
      if (scrollLeft !== scrollLeftOfWindow) {
          scrollLeft = scrollLeftOfWindow;
      }
      
      // 更新图像
      var canvas = document.createElement('canvas');
      var ctx = canvas.getContext('2d');
      ctx.drawImage(image, scrollTop, scrollLeft, scrollHeight, scrollWidth, 0, 0, canvas.width, canvas.height);
      
      // 将更新后的图像绘制到DOM上
      document.body.appendChild(canvas);
      

      } ```

      在这个例子中,我们首先获取当前的滚动位置和滚动条的高度,然后计算出新的滚动位置。如果滚动条的位置发生变化,那么我们就需要重新获取滚动位置。最后,我们更新图像并将其绘制到DOM上。

      注意,这个例子需要浏览器支持Web Workers和requestAnimationFrame函数。如果你的浏览器不支持这些特性,那么这个例子可能无法正常工作。

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