javascript - 圆圈在 Safari 中看起来参差不齐且不太平滑

标签 javascript jquery html css safari

我创建了一个圆圈,一旦达到一定比例就会放大和淡出。当我在谷歌浏览器上打开它时,圆圈的边缘看起来完美而清晰。但是在 Safari 上,圆圈的边缘看起来很糟糕并且已经淡出。我添加了“webkit”,它仍然是一样的。难道只是css动画不兼容Safari?这是我的代码。

边缘在 chrome 中的外观图片 https://gyazo.com/91a2faecb48703c4ed7e47bc3035b802

边缘在 Safari 中的外观图片 https://gyazo.com/0507f9bb35eb2e0fd21b620d3ba44538

HTML

 <ul id="bubbles">

        <li id="firstCircle"></li>



        </ul>

CSS

 #bubbles li{
              position: relative;
                list-style: none;
                display: block;
                border-radius: 100%;
              animation: fadeAndScale 15s ease-in infinite;
              -webkit-animation: fadeAndScale 15s ease-in infinite;
              -ms-animation: fadeAndScale 15s ease-in infinite;
              -moz-animation: fadeAndScale 15s ease-in infinite;
              -o-animation: fadeAndScale 15s ease-in infinite;
          }

          #bubbles li:nth-child(1){
              width: 100px;
              height: 100px;
              background-color: red;
          }
          @keyframes fadeAndScale{
              0%{
                  z-index: 100;
                  transform: scale(0)
              }
              100%{
                  z-index: 0;
                  transform: scale(50);
              }
          }
          @-webkit-keyframes fadeAndScale{
              0%{
                  z-index: 100;
                  -webkit-transform: scale(0)
              }
              100%{
                  z-index: 0;
                  -webkit-transform: scale(50);
              }
          }

最佳答案

我会使用圆点 svg 图像,然后继续使用 css 来动画缩放。

编辑:这就是该网站接近它的方式......

.indiez-fow-bg-wrapper {
  background: -webkit-linear-gradient(45deg, #1C96FF 0%, #00FFC9 100%);
  background: linear-gradient(45deg, #1C96FF 0%, #00FFC9 100%);
  width: 100%;
  height: 100%;
  margin: 0 auto;
  overflow: hidden;
  margin-top: 0;
  top: 0;
  left: 0;
  position: absolute;
}

@media (max-width: 600px) {}

.indiez-fow-bg-wrapper>div {
  will-change: transform;
  width: 800px;
  height: 800px;
  position: absolute;
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
  margin-top: -250px;
  margin-left: -250px;
}

.indiez-fow-bg-wrapper>div:not(._touch) {
  border-radius: 50%;
}

@media (max-width: 600px) {
  .indiez-fow-bg-wrapper>div {
    width: 300px;
    height: 300px;
    margin-top: -150px;
    margin-left: -150px;
  }
}

.indiez-fow-bg-wrapper._animate .__violet {
  left: 25%;
  top: 15%;
}

.indiez-fow-bg-wrapper._animate .__violet._touch {
  left: auto;
  right: -10%;
  top: 5%;
  -webkit-animation: scaleUp 16s linear forwards;
  animation: scaleUp 16s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__violet:not(._touch) {
  background: -webkit-linear-gradient(45deg, #411AFA 4%, #9400FF 74%);
  background: linear-gradient(45deg, #411AFA 4%, #9400FF 74%);
  -webkit-animation: scaleUp 20s linear forwards;
  animation: scaleUp 20s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__red {
  top: 25%;
  right: 5%;
  -webkit-animation: scaleUp 20s 4.5s linear forwards;
  animation: scaleUp 20s 4.5s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__red:not(._touch) {
  background: -webkit-linear-gradient(45deg, #F14545 0%, #E7219B 100%);
  background: linear-gradient(45deg, #F14545 0%, #E7219B 100%);
}

.indiez-fow-bg-wrapper._animate .__red._touch {
  right: auto;
  left: 25%;
  top: 30%;
  -webkit-animation: scaleUp 16s 3s linear forwards;
  animation: scaleUp 16s 3s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__mint {
  top: 200px;
  left: 20%;
  -webkit-animation: scaleUp 20s 9s linear forwards;
  animation: scaleUp 20s 9s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__mint:not(._touch) {
  background: -webkit-linear-gradient(45deg, #01C961 0%, #00FFA2 100%);
  background: linear-gradient(45deg, #01C961 0%, #00FFA2 100%);
}

.indiez-fow-bg-wrapper._animate .__mint._touch {
  -webkit-animation: scaleUp 16s 6s linear forwards;
  animation: scaleUp 16s 6s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__sunflower {
  bottom: 0px;
  right: 100px;
  -webkit-animation: scaleUp 20s 13.5s linear forwards;
  animation: scaleUp 20s 13.5s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__sunflower:not(._touch) {
  background: -webkit-linear-gradient(45deg, #FFB100 0%, #FFE938 100%);
  background: linear-gradient(45deg, #FFB100 0%, #FFE938 100%);
}

.indiez-fow-bg-wrapper._animate .__sunflower._touch {
  -webkit-animation: scaleUp 16s 9s linear forwards;
  animation: scaleUp 16s 9s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__purple {
  top: 300px;
  left: 10%;
  -webkit-animation: scaleUp 20s 18s linear forwards;
  animation: scaleUp 20s 18s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__purple:not(._touch) {
  background: -webkit-linear-gradient(45deg, #FF519F 0%, #BE42FF 100%);
  background: linear-gradient(45deg, #FF519F 0%, #BE42FF 100%);
}

.indiez-fow-bg-wrapper._animate .__purple._touch {
  -webkit-animation: scaleUp 16s 12s linear forwards;
  animation: scaleUp 16s 12s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__royal-blue {
  top: 10%;
  right: 10%;
  -webkit-animation: scaleUp 20s 22.5s linear forwards;
  animation: scaleUp 20s 22.5s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__royal-blue:not(._touch) {
  background: -webkit-linear-gradient(45deg, #2500DA 0%, #009BFF 100%);
  background: linear-gradient(45deg, #2500DA 0%, #009BFF 100%);
}

.indiez-fow-bg-wrapper._animate .__royal-blue._touch {
  -webkit-animation: scaleUp 16s 15s linear forwards;
  animation: scaleUp 16s 15s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__orange {
  bottom: 0;
  left: 100px;
  -webkit-animation: scaleUp 20s 27s linear forwards;
  animation: scaleUp 20s 27s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__orange:not(._touch) {
  background: -webkit-linear-gradient(45deg, #FF4040 0%, #FF9A3D 100%);
  background: linear-gradient(45deg, #FF4040 0%, #FF9A3D 100%);
}

.indiez-fow-bg-wrapper._animate .__orange._touch {
  -webkit-animation: scaleUp 16s 18s linear forwards;
  animation: scaleUp 16s 18s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__lime {
  top: 25%;
  right: 200px;
  -webkit-animation: scaleUp 20s 31.5s linear forwards;
  animation: scaleUp 20s 31.5s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__lime:not(._touch) {
  background: -webkit-linear-gradient(45deg, #79E200 0%, #B2951B 100%);
  background: linear-gradient(45deg, #79E200 0%, #B2951B 100%);
}

.indiez-fow-bg-wrapper._animate .__lime._touch {
  -webkit-animation: scaleUp 16s 21s linear forwards;
  animation: scaleUp 16s 21s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__aqua {
  top: 25%;
  left: 15%;
  -webkit-animation: scaleUp 20s 36s linear forwards;
  animation: scaleUp 20s 36s linear forwards;
}

.indiez-fow-bg-wrapper._animate .__aqua:not(._touch) {
  background: -webkit-linear-gradient(45deg, #1C96FF 0%, #00FFC9 100%);
  background: linear-gradient(45deg, #1C96FF 0%, #00FFC9 100%);
}

.indiez-fow-bg-wrapper._animate .__aqua._touch {
  -webkit-animation: scaleUp 16s 12s linear forwards;
  animation: scaleUp 16s 12s linear forwards;
}

@-webkit-keyframes scaleUp {
  60% {
    -webkit-transform: scale(5);
    transform: scale(5);
  }
  100% {
    -webkit-transform: scale(0);
    transform: scale(0);
  }
}

@keyframes scaleUp {
  60% {
    -webkit-transform: scale(5);
    transform: scale(5);
  }
  100% {
    -webkit-transform: scale(0);
    transform: scale(0);
  }
}
<div class="indiez-fow-bg-wrapper  _animate">
  <div class="__violet ">

  </div>
  <div class="__red ">

  </div>
  <div class="__mint ">

  </div>
  <div class="__sunflower ">

  </div>
  <div class="__purple ">

  </div>
  <div class="__royal-blue ">

  </div>
  <div class="__orange ">

  </div>
  <div class="__lime ">

  </div>
  <div class="__aqua ">

  </div>
</div>

关于javascript - 圆圈在 Safari 中看起来参差不齐且不太平滑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43416323/

相关文章:

javascript - 对象不支持属性或方法 WebBrowser 控件

jquery - 将事件绑定(bind)到动态创建的 iframe 元素

javascript - 避免在丰富的某些列中发生 onRowClick 事件 :dataTable

javascript - style.display = 'none' 模态上的点击事件跳转到页面顶部

Javascript 将值从 cookie 转换为对象

jquery - jquery diglog 插件中有提交 "Enter"选项吗?

javascript - 在所有回调函数执行完毕后执行操作

javascript - 在不更改值的情况下在输入字段中显示不同的值?

javascript - 当鼠标进入父级时如何显示元素?

javascript - 选择单选按钮时更改隐藏的输入字段值