[ 'class' => 'rcfilters-container' ]
);
+ $loadingContainer = Html::rawElement(
+ 'div',
+ [ 'class' => 'rcfilters-spinner' ],
+ Html::element(
+ 'div',
+ [ 'class' => 'rcfilters-spinner-bounce' ]
+ )
+ );
+
// Wrap both with rcfilters-head
$this->getOutput()->addHTML(
Html::rawElement(
$rcfilterContainer . $rcoptions
)
);
+
+ // Add spinner
+ $this->getOutput()->addHTML( $loadingContainer );
} else {
$this->getOutput()->addHTML( $rcoptions );
}
// Corrections for the standard special page
-.client-js{
+.client-js {
.rcoptions {
border: 0;
border-bottom: 1px solid #a2a9b1;
.rcfilters-head {
min-height: 310px;
- &:not( .mw-rcfilters-ui-ready ) {
- /* @embed */
- background-image: url( ../images/pending.gif );
- margin: 0;
- * {
- visibility: hidden;
- }
+ &:not( .mw-rcfilters-ui-ready ) {
+ opacity: 0.5;
+ pointer-events: none;
}
}
// message of our own
display: none;
}
+
+ .rcfilters-spinner {
+ margin: -2em auto 0;
+ width: 70px;
+ opacity: 0.8;
+ display: block;
+ white-space: nowrap;
+
+ & .rcfilters-spinner-bounce,
+ &:before,
+ &:after {
+ content: '';
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ background-color: #c8ccd1;
+ border-radius: 100%;
+ animation: rcfiltersBouncedelay 1.5s infinite ease-in-out;
+ animation-fill-mode: both;
+ animation-delay: -0.16s;
+ }
+
+ &:before {
+ animation-delay: -0.33s;
+ }
+
+ &:after {
+ animation-delay: 0s;
+ }
+
+ }
}
.mw-rcfilters-staticfilters-selected {
font-weight: bold;
}
+
+@keyframes rcfiltersBouncedelay {
+ 0%,
+ 100%,
+ 80% {
+ transform: scale( 0.7 );
+ }
+ 40% {
+ transform: scale( 1 );
+ background-color: #a2a9b1;
+ }
+}