300426 Index update
This commit is contained in:
115
includes/ev.php
115
includes/ev.php
@@ -35,7 +35,7 @@
|
||||
|
||||
<div class="button-widget">
|
||||
<div class="button-container">
|
||||
<a href="https://demo.artureanec.com/themes/logico-rounded/home-4/" target="_blank" class="logico-small-button">
|
||||
<a href="#" target="_blank" class="logico-small-button">
|
||||
Explore more<svg viewBox="0 0 13 20">
|
||||
<polyline points="0.5 19.5 3 19.5 12.5 10 3 0.5"></polyline>
|
||||
</svg> </a>
|
||||
@@ -218,71 +218,72 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>/* Core Styling */
|
||||
<style>
|
||||
/* Core Styling */
|
||||
|
||||
|
||||
.logico-title .word {
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
margin-right: 0.1em;
|
||||
}
|
||||
|
||||
.logico-title .letter {
|
||||
display: inline-block;
|
||||
opacity: 0;
|
||||
transform: translateY(0.5em);
|
||||
animation: fadeInUp 0.8s cubic-bezier(0.23, 1, 0.32, 1) forwards;
|
||||
}
|
||||
|
||||
/* Animation Keyframes */
|
||||
@keyframes fadeInUp {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
.logico-title .word {
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
margin-right: 0.1em;
|
||||
}
|
||||
|
||||
.logico-title .letter {
|
||||
display: inline-block;
|
||||
opacity: 0;
|
||||
transform: translateY(0.5em);
|
||||
animation: fadeInUp 0.8s cubic-bezier(0.23, 1, 0.32, 1) forwards;
|
||||
}
|
||||
|
||||
/* Animation Keyframes */
|
||||
@keyframes fadeInUp {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script>/**
|
||||
* Automatically splits text into words and letters
|
||||
* and applies incrementing animation delays.
|
||||
*/
|
||||
document.querySelectorAll('[data-animate]').forEach(element => {
|
||||
// Preserve the internal HTML structure (like <br>) for line breaks
|
||||
const lines = element.innerHTML.split(/<br\s*\/?>/i);
|
||||
element.textContent = '';
|
||||
<script>
|
||||
/**
|
||||
* Automatically splits text into words and letters
|
||||
* and applies incrementing animation delays.
|
||||
*/
|
||||
document.querySelectorAll('[data-animate]').forEach(element => {
|
||||
// Preserve the internal HTML structure (like <br>) for line breaks
|
||||
const lines = element.innerHTML.split(/<br\s*\/?>/i);
|
||||
element.textContent = '';
|
||||
|
||||
lines.forEach((line, lineIdx) => {
|
||||
const lineContainer = document.createElement('div');
|
||||
lineContainer.style.display = 'block';
|
||||
lines.forEach((line, lineIdx) => {
|
||||
const lineContainer = document.createElement('div');
|
||||
lineContainer.style.display = 'block';
|
||||
|
||||
// Extract text from potential nested spans
|
||||
const tempDiv = document.createElement('div');
|
||||
tempDiv.innerHTML = line;
|
||||
const text = tempDiv.textContent.trim();
|
||||
// Extract text from potential nested spans
|
||||
const tempDiv = document.createElement('div');
|
||||
tempDiv.innerHTML = line;
|
||||
const text = tempDiv.textContent.trim();
|
||||
|
||||
text.split(/\s+/).forEach((word, wordIdx) => {
|
||||
const wordSpan = document.createElement('span');
|
||||
wordSpan.className = 'word';
|
||||
text.split(/\s+/).forEach((word, wordIdx) => {
|
||||
const wordSpan = document.createElement('span');
|
||||
wordSpan.className = 'word';
|
||||
|
||||
word.split('').forEach((letter, letterIdx) => {
|
||||
const letterSpan = document.createElement('span');
|
||||
letterSpan.className = 'letter';
|
||||
letterSpan.textContent = letter;
|
||||
|
||||
// Stagger delay based on line, word, and letter
|
||||
const delay = (lineIdx * 0.2) + (wordIdx * 0.1) + (letterIdx * 0.03);
|
||||
letterSpan.style.animationDelay = `${delay}s`;
|
||||
|
||||
wordSpan.appendChild(letterSpan);
|
||||
word.split('').forEach((letter, letterIdx) => {
|
||||
const letterSpan = document.createElement('span');
|
||||
letterSpan.className = 'letter';
|
||||
letterSpan.textContent = letter;
|
||||
|
||||
// Stagger delay based on line, word, and letter
|
||||
const delay = (lineIdx * 0.2) + (wordIdx * 0.1) + (letterIdx * 0.03);
|
||||
letterSpan.style.animationDelay = `${delay}s`;
|
||||
|
||||
wordSpan.appendChild(letterSpan);
|
||||
});
|
||||
|
||||
lineContainer.appendChild(wordSpan);
|
||||
// Add a non-breaking space after each word span for spacing
|
||||
lineContainer.appendChild(document.createTextNode('\u00A0'));
|
||||
});
|
||||
|
||||
lineContainer.appendChild(wordSpan);
|
||||
// Add a non-breaking space after each word span for spacing
|
||||
lineContainer.appendChild(document.createTextNode('\u00A0'));
|
||||
element.appendChild(lineContainer);
|
||||
});
|
||||
|
||||
element.appendChild(lineContainer);
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
</script>
|
||||
Reference in New Issue
Block a user