button skeleton
This commit is contained in:
parent
4775a6b9c0
commit
2d7961bc25
3 changed files with 91 additions and 31 deletions
|
|
@ -7,7 +7,11 @@ export default function AusgabeHertzblatt(params) {
|
||||||
|
|
||||||
const ausg = json.hertzblatt.find((i) => i["Ausgabe"] == params.id);
|
const ausg = json.hertzblatt.find((i) => i["Ausgabe"] == params.id);
|
||||||
|
|
||||||
if (ausg) {
|
if (ausg === undefined) {
|
||||||
|
console.warn(params.id, "not found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let pagehtml = `
|
let pagehtml = `
|
||||||
<img class="cover" src="${json.baseUrl}hertzblatt/images/${ausg.Ausgabe}.jpg"></img>
|
<img class="cover" src="${json.baseUrl}hertzblatt/images/${ausg.Ausgabe}.jpg"></img>
|
||||||
<h1>HertzBLATT ${ausg["Name"]}</h1>
|
<h1>HertzBLATT ${ausg["Name"]}</h1>
|
||||||
|
|
@ -17,13 +21,24 @@ export default function AusgabeHertzblatt(params) {
|
||||||
pagehtml = pagehtml + "<p><b>" + i + ":</b> " + ausg[i] + "</p>";
|
pagehtml = pagehtml + "<p><b>" + i + ":</b> " + ausg[i] + "</p>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ausg.Web)
|
if (ausg.Web)
|
||||||
pagehtml += `<a class="button" href="${ausg.Web}">
|
pagehtml += `<a class="button" href="${ausg.Web}">
|
||||||
<i class="fas fa-link"></i>Link
|
<i class="fas fa-link"></i>Link
|
||||||
</a>`;
|
</a>`;
|
||||||
|
|
||||||
|
const skeleton = document.createElement("div");
|
||||||
|
skeleton.innerHTML = `
|
||||||
|
<a class="button-skeleton"><i class="fas fa-file-pdf"></i><span>PDF Anzeigen</span></a>
|
||||||
|
<a class="button-skeleton"><i class="fas fa-download"></i><span>Download</span></a>
|
||||||
|
`;
|
||||||
|
ret.innerHTML = pagehtml;
|
||||||
|
ret.appendChild(skeleton);
|
||||||
|
|
||||||
checkFile(`${json.baseUrl}hertzblatt/pdf/${ausg.Ausgabe}.pdf`).then(
|
checkFile(`${json.baseUrl}hertzblatt/pdf/${ausg.Ausgabe}.pdf`).then(
|
||||||
(exists) => {
|
(exists) => {
|
||||||
if (exists) {
|
if (exists) {
|
||||||
|
skeleton.remove();
|
||||||
ret.innerHTML +=
|
ret.innerHTML +=
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
`
|
`
|
||||||
|
|
@ -33,10 +48,10 @@ export default function AusgabeHertzblatt(params) {
|
||||||
<button>
|
<button>
|
||||||
<i class="fas fa-download"></i>Download
|
<i class="fas fa-download"></i>Download
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<a onclick="window.open('${json.baseUrl}hertzblatt/pdf/compressed/${ausg.Ausgabe}.pdf?download', '_self');">
|
<a onclick="window.open('${json.baseUrl}hertzblatt/pdf/compressed/${ausg.Ausgabe}.pdf', '_self');">
|
||||||
<i class="fas fa-file-download"></i>Niedrige Qualität
|
<i class="fas fa-file-download"></i>Niedrige Qualität
|
||||||
</a>
|
</a>
|
||||||
<a onclick="window.open('${json.baseUrl}hertzblatt/pdf/${ausg.Ausgabe}.pdf?download', '_self');">
|
<a onclick="window.open('${json.baseUrl}hertzblatt/pdf/${ausg.Ausgabe}.pdf', '_self');">
|
||||||
<i class="fas fa-file-download"></i>Hohe Qualität
|
<i class="fas fa-file-download"></i>Hohe Qualität
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -46,7 +61,5 @@ export default function AusgabeHertzblatt(params) {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ret.innerHTML = pagehtml;
|
|
||||||
}
|
|
||||||
return Page(ret);
|
return Page(ret);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,11 @@ export default function AusgabeHertzschlag(params) {
|
||||||
|
|
||||||
const ausg = json.hertzschlag.find((i) => i["Ausgabe"] == params.id);
|
const ausg = json.hertzschlag.find((i) => i["Ausgabe"] == params.id);
|
||||||
|
|
||||||
|
if (ausg === undefined) {
|
||||||
|
console.warn(params.id, "not found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let pagehtml = `
|
let pagehtml = `
|
||||||
<img class="cover" src="${json.baseUrl}hertzschlag/images/${ausg["Ausgabe"]}.jpg"></img>
|
<img class="cover" src="${json.baseUrl}hertzschlag/images/${ausg["Ausgabe"]}.jpg"></img>
|
||||||
<h2>HertzSCHLAG ${ausg["Ausgabe"]}</h2>
|
<h2>HertzSCHLAG ${ausg["Ausgabe"]}</h2>
|
||||||
|
|
@ -23,9 +28,19 @@ export default function AusgabeHertzschlag(params) {
|
||||||
pagehtml = pagehtml + "<p><b>" + i + ":</b> " + ausg[i] + "</p>";
|
pagehtml = pagehtml + "<p><b>" + i + ":</b> " + ausg[i] + "</p>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const skeleton = document.createElement("div");
|
||||||
|
skeleton.innerHTML = `
|
||||||
|
<a class="button-skeleton"><i class="fas fa-file-pdf"></i><span>PDF Anzeigen</span></a>
|
||||||
|
<a class="button-skeleton"><i class="fas fa-download"></i><span>Download</span></a>
|
||||||
|
`;
|
||||||
|
ret.innerHTML = pagehtml;
|
||||||
|
ret.appendChild(skeleton);
|
||||||
|
|
||||||
checkFile(`${json.baseUrl}hertzschlag/pdf/${ausg["Ausgabe"]}.pdf`).then(
|
checkFile(`${json.baseUrl}hertzschlag/pdf/${ausg["Ausgabe"]}.pdf`).then(
|
||||||
(exists) => {
|
(exists) => {
|
||||||
if (exists) {
|
if (exists) {
|
||||||
|
skeleton.remove();
|
||||||
ret.innerHTML +=
|
ret.innerHTML +=
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
`
|
`
|
||||||
|
|
@ -35,10 +50,10 @@ export default function AusgabeHertzschlag(params) {
|
||||||
<button>
|
<button>
|
||||||
<i class="fas fa-download"></i>Download
|
<i class="fas fa-download"></i>Download
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<a href="${json.baseUrl}hertzschlag/pdf/compressed/${ausg["Ausgabe"]}.pdf?download">
|
<a href="${json.baseUrl}hertzschlag/pdf/compressed/${ausg["Ausgabe"]}.pdf">
|
||||||
<i class="fas fa-file-download"></i>Niedrige Qualität
|
<i class="fas fa-file-download"></i>Niedrige Qualität
|
||||||
</a>
|
</a>
|
||||||
<a href="${json.baseUrl}hertzschlag/pdf/${ausg["Ausgabe"]}.pdf?download">
|
<a href="${json.baseUrl}hertzschlag/pdf/${ausg["Ausgabe"]}.pdf">
|
||||||
<i class="fas fa-file-download"></i>Hohe Qualität
|
<i class="fas fa-file-download"></i>Hohe Qualität
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -48,6 +63,5 @@ export default function AusgabeHertzschlag(params) {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
ret.innerHTML = pagehtml;
|
|
||||||
return Page(ret);
|
return Page(ret);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -162,30 +162,62 @@ body {
|
||||||
}
|
}
|
||||||
|
|
||||||
button,
|
button,
|
||||||
.button {
|
.button,
|
||||||
background-color: rgb(201, 2, 2);
|
.button-skeleton {
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
color: white;
|
|
||||||
padding: 15px 20px;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
cursor: pointer;
|
|
||||||
margin-right: 1em;
|
margin-right: 1em;
|
||||||
margin-top: 1em;
|
margin-top: 1em;
|
||||||
transition: background-color 0.2s ease;
|
padding: 15px 20px;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
.button {
|
||||||
|
background-color: rgb(201, 2, 2);
|
||||||
|
color: white;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background-color 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-skeleton {
|
||||||
|
background: linear-gradient(90deg,
|
||||||
|
rgb(250, 250, 250) 0%,
|
||||||
|
rgb(230, 230, 230) 50%,
|
||||||
|
rgb(250, 250, 250) 100%) rgb(250, 250, 250);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
animation: skeleton-loading 1s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-skeleton>span,
|
||||||
|
.button-skeleton>i {
|
||||||
|
color: transparent;
|
||||||
|
user-select: none;
|
||||||
|
background-color: rgb(230, 230, 230);
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes skeleton-loading {
|
||||||
|
from {
|
||||||
|
background-position: -200px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
background-position: 200px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
button:hover,
|
button:hover,
|
||||||
.button:hover {
|
.button:hover {
|
||||||
background-color: darkred;
|
background-color: darkred;
|
||||||
}
|
}
|
||||||
|
|
||||||
button .fas,
|
button .fas,
|
||||||
.button .fas {
|
.button .fas,
|
||||||
|
.button-skeleton .fas {
|
||||||
margin-right: 0.6em;
|
margin-right: 0.6em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -316,6 +348,7 @@ iframe {
|
||||||
top: 25px;
|
top: 25px;
|
||||||
right: 55px;
|
right: 55px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#header nav a {
|
#header nav a {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
margin-left: 15px;
|
margin-left: 15px;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue