ideesigner
Alle Themen
Finde Artikel, Events und Online-Kurse zu den folgenden Themen auf ideesigner.
100K+
Active Users
99.9%
Success Rate
4.9/5
User Rating
class GlassmorphicBackground {
constructor() {
this.initialized = new Set();
this.init();
}
init() {
document.querySelectorAll('[data-glass-bg="true"]').forEach(element => {
if (this.initialized.has(element)) return;
// Set base styles
element.style.position = 'relative';
element.style.overflow = 'hidden';
// Create base gradient
this.createBaseGradient(element);
// Create mesh overlay
this.createMeshOverlay(element);
// Create glass orbs
this.createGlassOrbs(element);
this.initialized.add(element);
});
}
createBaseGradient(container) {
const gradient = document.createElement('div');
Object.assign(gradient.style, {
position: 'absolute',
inset: '0',
background: 'linear-gradient(130deg, rgb(49, 46, 129) 0%, rgb(88, 28, 135) 50%, rgb(112, 26, 117) 100%)',
zIndex: '0'
});
container.appendChild(gradient);
}
createMeshOverlay(container) {
const mesh = document.createElement('div');
Object.assign(mesh.style, {
position: 'absolute',
inset: '0',
background: 'radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 70%)',
zIndex: '1'
});
container.appendChild(mesh);
}
createGlassOrbs(container) {
const orbsConfig = [
{
position: { top: '10%', left: '10%' },
gradient: 'linear-gradient(130deg, rgba(236, 72, 153, 0.3), rgba(139, 92, 246, 0.3))',
animation: 'floatOrb1'
},
{
position: { bottom: '10%', right: '10%' },
gradient: 'linear-gradient(130deg, rgba(59, 130, 246, 0.3), rgba(34, 211, 238, 0.3))',
animation: 'floatOrb2'
}
];
orbsConfig.forEach((config, index) => {
const orb = document.createElement('div');
Object.assign(orb.style, {
position: 'absolute',
width: '300px',
height: '300px',
borderRadius: '50%',
background: config.gradient,
filter: 'blur(40px)',
animation: `${config.animation} 20s infinite ease-in-out`,
zIndex: '1',
...config.position
});
container.appendChild(orb);
});
}
}
// Add animations
const style = document.createElement('style');
style.textContent = `
@keyframes floatOrb1 {
0%, 100% { transform: translate(0, 0) scale(1); }
25% { transform: translate(50px, 20px) scale(1.1); }
50% { transform: translate(0, 50px) scale(0.95); }
75% { transform: translate(-30px, 20px) scale(1.05); }
}
@keyframes floatOrb2 {
0%, 100% { transform: translate(0, 0) scale(1); }
25% { transform: translate(-40px, -20px) scale(1.1); }
50% { transform: translate(-10px, -40px) scale(0.95); }
75% { transform: translate(30px, -20px) scale(1.05); }
}
[data-glass-bg="true"] {
background-color: rgb(49, 46, 129);
transition: background-color 0.3s ease;
}
[data-glass-bg="true"] > * {
position: relative;
z-index: 2;
}
[data-glass-bg="true"]::before {
content: '';
position: fixed;
inset: 0;
pointer-events: none;
background: linear-gradient(
45deg,
transparent 0%,
rgba(255, 255, 255, 0.03) 100%
);
z-index: 1;
}
`;
document.head.appendChild(style);
// Initialize
document.addEventListener('DOMContentLoaded', () => {
window.glassBg = new GlassmorphicBackground();
});
// Bricks Builder compatibility
if (window.jQuery) {
jQuery(document).on('bricks-ajax-load-content-complete', () => {
window.glassBg?.init();
});
}