【问题标题】:How can I make this animation responsive?我怎样才能使这个动画响应?
【发布时间】:2019-04-28 17:37:30
【问题描述】:

嘿, 首先,我是编程和这个网站的新手,所以请不要攻击我:)

所以,我刚刚开始了一个新项目(带有 Steam 登录数据的赌博网站) 该网站包含四种“游戏”(Crash、Dice、Rulete、Trade up)。 我目前正在玩轮盘赌,我需要寻求帮助。 我找到了一个关于这个的代码,我已经修改它以“完美”地工作。 我在手机上查看了该页面,但效果不佳,在第一次旋转后它倒退了,动画完全崩溃了(移动了大约 3 个数字,依此类推..)。我尝试使用 css (background-size: cover) ,但它弄乱了像素并且没有旋转到正确的数字。我想,这段代码计算调整后页面的背景宽度并将其滚动到完美的数字。

感谢您的帮助。

代码如下:

--JS--

    var socket = io.connect("http://94.248.229.179:3000");
    var button = $('.button');
    var items = $('.items');
    var coin_width = 75;
    var numbers = {
      0: 525,
      1: 0,
      2: 150,
      3: 300,
      4: 450,
      5: 675,
      6: 825,
      7: 975,
      8: 1050,
      9: 900,
      10: 750,
      11: 600,
      12: 375,
      13: 225,
      14: 75
    };

        socket.on("roulettenumber", function(data){
      var number = data.roulettenumber;
      var cycles = Math.floor(getRandomArbitrary(2, 8));
      var dev = getRandomArbitrary(0, 72);
      var scroll_amount = ((825 + numbers[number]) + dev) + (1125 * cycles);
      items.removeClass("spin_animation");
      items.css({"background-position-x": "-262.5px"});
      setTimeout(function(){
          items.addClass("spin_animation");
          items.css({"background-position": "-" + scroll_amount + "px"});
        console.log("W: " + number + " SA: " + scroll_amount + " D: " + dev + " C: " + cycles);
      }, 10);
        });

    function getRandomArbitrary(min, max) {
      return Math.random() * (max - min) + min;
    }

--CSS--

    .wrapper {
      overflow: hidden;
      width: 600px;
    }

    .items {
      background-image: url("../img/roulette.png");
        position: relative;
        width: 1125px;
        height: 75px;
    }

    .items:before {
        content: "";
        position: absolute;
        background: #ffd02d;
        height: 100%;
        width: 3px;
        margin: 0 auto;
        left: 0;
        right: 0;
    }

    .spin_animation {
            transition-timing-function: cubic-bezier(0.34, 0.87, 0.52, 1); /* custom */
                transition-duration: 6.79891s;
    }

--HTML--
    <div class="wrapper">
      <button class="button">Spin</button>
      <div class="items"></div>
    </div>

【问题讨论】:

    标签: javascript html css background responsive


    【解决方案1】:

    在你的 css 代码中有些东西看起来很奇怪,包装器的宽度大于它的子项,你可能需要先修复它。

    就您页面的响应能力而言,您只有 2 个大于屏幕宽度的项目(.wrapper 和 .items),css 文件底部的这个媒体查询应该可以完成这项工作:

    @media only screen and (max-width : 1024px) {
      .wrapper {
        width: 100%;
      }
      .items {
        width: 100%;
      }
    }
    

    不要忘记在你的 html 文件的头部添加这个元标记:

    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    

    【讨论】:

    • 感谢您的快速答复。我有了一个新的想法,所以我打算用 div 来做动画。
    猜你喜欢
    • 2019-01-12
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    相关资源
    最近更新 更多