省略記号をアニメーション化しようとしていますが、CSSアニメーションで可能かどうか疑問に思っていました...
だからそれは
Loading...
Loading..
Loading.
Loading...
Loading..
そして基本的にはそのように続けます。何か案は?
編集:このように:http://playground.magicrising.de/demo/ellipsis.html
省略記号をアニメーション化しようとしていますが、CSSアニメーションで可能かどうか疑問に思っていました...
だからそれは
Loading...
Loading..
Loading.
Loading...
Loading..
そして基本的にはそのように続けます。何か案は?
編集:このように:http://playground.magicrising.de/demo/ellipsis.html
回答:
@xecの回答のわずかに変更されたバージョンはどうですか:http://codepen.io/thetallweeks/pen/yybGra
HTML
要素に追加された単一のクラス:
<div class="loading">Loading</div>
CSS
を使用するアニメーションsteps。MDNドキュメントを参照してください
.loading:after {
  overflow: hidden;
  display: inline-block;
  vertical-align: bottom;
  -webkit-animation: ellipsis steps(4,end) 900ms infinite;      
  animation: ellipsis steps(4,end) 900ms infinite;
  content: "\2026"; /* ascii code for the ellipsis character */
  width: 0px;
}
@keyframes ellipsis {
  to {
    width: 20px;    
  }
}
@-webkit-keyframes ellipsis {
  to {
    width: 20px;    
  }
}
@xecの回答は、ドットに対してより多くのスライドイン効果をもたらしますが、これにより、ドットが即座に表示されます。
margin-rightは、のイニシャル(またはパディング?)を追加して20pxアニメーション化することを0pxお勧めします。
                    1emの代わりに20px、この回答のCSSの方がうまくいく可能性があります
                    animation-delay property各省略記号のandtimeを使用してみることができます。この場合、各省略記号をに入れ<span class>て、個別にアニメーション化できるようにしました。
私はデモを作成しましたが、これは完璧ではありませんが、少なくとも私が言っていることを示しています:)
私の例のコード:
HTML
Loading<span class="one">.</span><span class="two">.</span><span class="three">.</span>
CSS
.one {
    opacity: 0;
    -webkit-animation: dot 1.3s infinite;
    -webkit-animation-delay: 0.0s;
    animation: dot 1.3s infinite;
    animation-delay: 0.0s;
}
.two {
    opacity: 0;
    -webkit-animation: dot 1.3s infinite;
    -webkit-animation-delay: 0.2s;
    animation: dot 1.3s infinite;
    animation-delay: 0.2s;
}
.three {
    opacity: 0;
    -webkit-animation: dot 1.3s infinite;
    -webkit-animation-delay: 0.3s;
    animation: dot 1.3s infinite;
    animation-delay: 0.3s;
}
@-webkit-keyframes dot {
    0% {
        opacity: 0;
    }
    50% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
@keyframes dot {
    0% {
        opacity: 0;
    }
    50% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
さらに単純な解決策は、かなりうまく機能します!
<style>
    .loading:after {
      display: inline-block;
      animation: dotty steps(1,end) 1s infinite;
      content: '';
    }
    @keyframes dotty {
        0%   { content: ''; }
        25%  { content: '.'; }
        50%  { content: '..'; }
        75%  { content: '...'; }
        100% { content: ''; }
    }
</style>
<div class="loading">Loading</div>
ドットを隠すのではなく、アニメーションでコンテンツを編集しただけです...
こちらのデモ:https://jsfiddle.net/f6vhway2/1/
編集:アニメーション化可能なプロパティではないことを指摘して
くれた@BradCollinsに感謝しcontentます。
https://www.w3.org/TR/css3-transitions/#animatable-css
つまり、これはWebKit / Blink / Electronのみのソリューションです。(ただし、現在のFFバージョンでも機能します)
content。アニメーションのリズムを均一にするには、steps(1)1つの追加のキーフレームを使用して定義する必要があります。step関数は、キーフレーム間のステップ数を指定します。各フレームを指定しているため、フレーム間に1つのステップが必要です。codepen.io/anon/pen/VmEdXj
                    contentプロパティのアニメーション化をサポートしていないことに注意してください。(エッジについては知らない。)
                    簡単な答えは「そうではない」です。ただし、アニメーションの幅とオーバーフローを非表示にして遊んだり、「十分に近い」効果を得ることができます。(以下のコードはFirefox専用に調整されており、必要に応じてベンダープレフィックスを追加します)。
html
<div class="loading">Loading</div>
css
.loading:after {
    overflow: hidden;
    display: inline-block;
    vertical-align: bottom;
    -moz-animation: ellipsis 2s infinite;
    content: "\2026"; /* ascii code for the ellipsis character */
}
@-moz-keyframes ellipsis {
    from {
        width: 2px;
    }
    to {
        width: 15px;
    }
}
デモ:http://jsfiddle.net/MDzsR/1/
編集
Chromeには疑似要素のアニメーション化に問題があるようです。簡単な修正は、省略記号を独自の要素でラップすることです。http://jsfiddle.net/MDzsR/4/をチェックしてください
アニメーション化できますclip(clip-pathIEのサポートが必要ない場合はもっと良いです)    
div {
  position: relative;
  display: inline-block;
  font-size: 1.4rem;
}
div:after {
  position: absolute;
  margin-left: .1rem;
  content: ' ...';
  display: inline-block;
  animation: loading steps(4) 2s infinite;
  clip: rect(auto, 0px, auto, auto);
}
@keyframes loading {
  to {
    clip: rect(auto, 20px, auto, auto);
  }
}<div>Loading</div>実際、これを行うには純粋なCSSの方法があります。
CSS Tricksから例を取得しましたが、Internet Explorerでもサポートされるようにしました(10以上でテストしました)。
デモを確認してください:http://jsfiddle.net/Roobyx/AT6v6/2/
HTML:
<h4 id="searching-ellipsis"> Searching
    <span>.</span>
    <span>.</span>
    <span>.</span>
</h4>
CSS:
@-webkit-keyframes opacity {
  0% {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
    opacity: 1;
  }
  100% {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
    opacity: 0;
  }
}
@-moz-keyframes opacity {
  0% {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
    opacity: 1;
  }
  100% {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
    opacity: 0;
  }
}
@-webkit-keyframes opacity {
  0% {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
    opacity: 1;
  }
  100% {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
    opacity: 0;
  }
}
@-moz-keyframes opacity {
  0% {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
    opacity: 1;
  }
  100% {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
    opacity: 0;
  }
}
@-o-keyframes opacity {
  0% {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
    opacity: 1;
  }
  100% {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
    opacity: 0;
  }
}
@keyframes opacity {
  0% {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
    opacity: 1;
  }
  100% {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
    opacity: 0;
  }
}
#searching-ellipsis span {
  -webkit-animation-name: opacity;
  -webkit-animation-duration: 1s;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-name: opacity;
  -moz-animation-duration: 1s;
  -moz-animation-iteration-count: infinite;
  -ms-animation-name: opacity;
  -ms-animation-duration: 1s;
  -ms-animation-iteration-count: infinite;
}
#searching-ellipsis span:nth-child(2) {
  -webkit-animation-delay: 100ms;
  -moz-animation-delay: 100ms;
  -ms-animation-delay: 100ms;
  -o-animation-delay: 100ms;
  animation-delay: 100ms;
}
#searching-ellipsis span:nth-child(3) {
  -webkit-animation-delay: 300ms;
  -moz-animation-delay: 300ms;
  -ms-animation-delay: 300ms;
  -o-animation-delay: 300ms;
  animation-delay: 300ms;
}
-webkit-keyframesWebkitにのみ適用され、内部にはIEのみのコードがあります。このコードはスペースを無駄にするだけです。
                    これが純粋なcssを使用した私のソリューションですhttps://jsfiddle.net/pduc6jx5/1/ 説明:https://medium.com/@lastseeds/create-text-ellipsis-animation-with-pure-css-7f61acee69cc
scss
.dot1 {
 animation: visibility 3s linear infinite;
}
@keyframes visibility {
 0% {
 opacity: 1;
 }
 65% {
 opacity: 1;
 }
 66% {
 opacity: 0;
 }
 100% {
 opacity: 0;
 }
}
.dot2 {
 animation: visibility2 3s linear infinite;
}
@keyframes visibility2 {
 0% {
  opacity: 0;
 }
 21% {
  opacity: 0;
 }
 22% {
  opacity: 1;
 }
 65% {
  opacity: 1;
 }
 66% {
  opacity: 0;
 }
 100% {
  opacity: 0;
 }
}
.dot3 {
 animation: visibility3 3s linear infinite;
}
@keyframes visibility3 {
 0% {
  opacity: 0;
 }
 43% {
  opacity: 0;
 }
 44% {
  opacity: 1;
 }
 65% {
  opacity: 1;
 }
 66% {
  opacity: 0;
 }
 100% {
  opacity: 0;
 }
}
html
Loading <span class="dot dot1">.</span><span class="dot dot2">.</span><span class="dot dot3">.</span>