RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 692600
Accepted
Fangog
Fangog
Asked:2020-07-15 21:36:24 +0000 UTC2020-07-15 21:36:24 +0000 UTC 2020-07-15 21:36:24 +0000 UTC

如何摆脱动画冻结?

  • 772

任务:在赌场制作一个轮盘赌,它会抛出某种奖品。基本上,它是一个快速的无尽旋转木马。

事实上,在 fox 中,由于垃圾收集,它会挂起 500-1000 毫秒。

如何解决这个问题?

也许有现成的类似插件?因为我仍然需要在所需的预选元素上写一个平滑的停止,我仍然完全不知道该怎么做,我想节省时间。

var $carousel = $('#carousel');
var slideWidth = 500;
var prigress = 0;

setInterval(function() {
  prigress -= 50;
  $carousel.css({
    left: prigress
  });
  if (prigress % slideWidth == 0) {
    $('.slide:last').after($('.slide:first'));
    $carousel.css({
      left: 0
    });
    prigress = 0;
  }
}, 13);
body {
  background: #333;
  color: #fff;
}

.wrap {
  position: relative;
  width: 900px;
  height: 300px;
}

.window {
  overflow: hidden;
  position: relative;
  background: #222;
}

#carousel {
  width: 10000px;
  position: relative;
  top: 0;
  left: 0;
}

.slide {
  height: 300px;
  width: 500px;
  float: left;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrap">
  <div class="window">
    <div id="carousel">
      <span class="slide" id="b1">SLIDE-1</span>
      <span class="slide" id="b2">SLIDE-2</span>
      <span class="slide" id="b3">SLIDE-3</span>
      <span class="slide" id="b4">SLIDE-4</span>
      <span class="slide" id="b5">SLIDE-5</span>
    </div>
  </div>
</div>

javascript
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    A.Ivankov
    2020-07-19T00:45:26Z2020-07-19T00:45:26Z

    当您更改六个 CSS 属性的值集:margin、padding、top、left、bottom 或 right 时,浏览器会对它在整个页面布局中的显示方式执行额外的计算。因此,要增加动画性能,最好使用:

    .foo {
        transform: translate3d(x, y, z);
    }
    

    transform 性能更高的原因是因为它不影响任何其他元素。您采取的任何操作仅适用于一个元素,浏览器不必重建整个窗口。它只修改包含移动内容的屏幕部分。

    此外,当使用 translate3d 转换元素时,它是通过 Webkit 浏览器(如 Chrome 和 Safari(安装在 iPhone 和 iPad 上))、Internet Explorer 9/10 和最新版本的 Firefox 中的 GPU 处理的。

    因此,在使用时,translate3d您可以获得本地屏幕重组的好处。但除此之外,您还可以获得额外的好处,因为所有工作都由 GPU 完成。

    通过以下方式实施示例transform:

    var $carousel = $('#carousel');
    var slideWidth = 500;
    var prigress = 0;
    
    setInterval(function() {
      prigress -= 50;
      $carousel.css("transform","translate3d("+prigress+"px,0,0)");
      if (prigress % slideWidth == 0) {
        $('.slide:last').after($('.slide:first'));
        $carousel.css({
          left: 0
        });
        prigress = 0;
      }
    }, 13);
    body {
      background: #333;
      color: #fff;
    }
    
    .wrap {
      position: relative;
      width: 900px;
      height: 300px;
    }
    
    .window {
      overflow: hidden;
      position: relative;
      background: #222;
    }
    
    #carousel {
      width: 10000px;
      position: relative;
      top: 0;
      left: 0;
    }
    
    .slide {
      height: 300px;
      width: 500px;
      float: left;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="wrap">
      <div class="window">
        <div id="carousel">
          <span class="slide" id="b1">SLIDE-1</span>
          <span class="slide" id="b2">SLIDE-2</span>
          <span class="slide" id="b3">SLIDE-3</span>
          <span class="slide" id="b4">SLIDE-4</span>
          <span class="slide" id="b5">SLIDE-5</span>
        </div>
      </div>
    </div>

    • 1

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    Python 3.6 - 安装 MySQL (Windows)

    • 1 个回答
  • Marko Smith

    C++ 编写程序“计算单个岛屿”。填充一个二维数组 12x12 0 和 1

    • 2 个回答
  • Marko Smith

    返回指针的函数

    • 1 个回答
  • Marko Smith

    我使用 django 管理面板添加图像,但它没有显示

    • 1 个回答
  • Marko Smith

    这些条目是什么意思,它们的完整等效项是什么样的

    • 2 个回答
  • Marko Smith

    浏览器仍然缓存文件数据

    • 1 个回答
  • Marko Smith

    在 Excel VBA 中激活工作表的问题

    • 3 个回答
  • Marko Smith

    为什么内置类型中包含复数而小数不包含?

    • 2 个回答
  • Marko Smith

    获得唯一途径

    • 3 个回答
  • Marko Smith

    告诉我一个像幻灯片一样创建滚动的库

    • 1 个回答
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Алексей Шиманский 如何以及通过什么方式来查找 Javascript 代码中的错误? 2020-08-03 00:21:37 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5