私は最近、プロジェクト用にVanillaJSでページローダーを作成しましたが、他のすべての回答はjQueryベースであるため、共有したいと思いました。これはプラグアンドプレイのワンライナーです。
let settings={backgroundColor:"#2774ab",filterBrightness:2,timeOnScreen:100},u=document.querySelector("*"),s=document.createElement("style"),a=document.createElement("div"),m="http://www.w3.org/2000/svg",g=document.createElementNS(m,"svg"),c=document.createElementNS(m,"circle");document.head.appendChild(s),s.innerHTML="@keyframes swell{to{transform:rotate(360deg)}}",a.setAttribute("style","background-color:"+settings.backgroundColor+";color:"+settings.backgroundColor+";display:flex;align-items:center;justify-content:center;position:fixed;top:0;height:100vh;width:100vw;z-index:2147483647"),document.body.prepend(a),g.setAttribute("style","height:50px;filter:brightness("+settings.filterBrightness+");animation:.3s swell infinite linear"),g.setAttribute("viewBox","0 0 100 100"),a.prepend(g),c.setAttribute("cx","50"),c.setAttribute("cy","50"),c.setAttribute("r","35"),c.setAttribute("fill","none"),c.setAttribute("stroke","currentColor"),c.setAttribute("stroke-dasharray","165 57"),c.setAttribute("stroke-width","10"),g.prepend(c),u.style.pointerEvents="none",u.style.userSelect="none",u.style.cursor="wait",window.onload=(()=>{setTimeout(()=>{u.style.pointerEvents="",u.style.userSelect="",u.style.cursor="",a.remove()},settings.timeOnScreen)});
基礎
- 必要なスタイルを含む
<script>
、要素に追加された要素を生成します。<head>
<div>
要素の前にオーバーレイとして機能する要素を生成し<body>
ます。
<svg>
以前に生成された要素の前に、ローダーとして機能する要素を生成し<div>
ます。
- 自己
window.onload
生成された要素は自動的に削除されます。
最新バージョンは私のGitHubで入手できます。
設定
let settings = {
backgroundColor: "#2774ab",
filterBrightness: 2,
timeOnScreen: 100
}, //...
オプション |
説明 |
backgroundColor |
許容値については、MDNWebDocsの色を参照してください。background-color CSSプロパティは、要素の背景色を設定します。デフォルトはWordpressの濃い青のアクセント #2774ab |
filterBrightness |
数またはパーセンテージ。svg ローダー要素の明るさ( brightness()CSS関数)。下の値100% はローダーを暗くし、上の値はローダーを100% 明るくします。補間のlacuna値はです1 。デフォルトは2 。 |
timeOnScreen |
ポジティブinteger 。画面上の時間は、ページの読み込み時間に追加されます。デフォルトは100 ミリ秒です。 |