Problème de transition de flou du filtre au sol
P粉314915922
P粉314915922 2024-04-01 23:10:22
0
1
416

Appuyer sur le bouton rend l'arrière-plan flou, mais lors de la transition, les bords du div ne font pas bien la transition. Ce problème se produit dans tous les navigateurs sauf Firefox, comment puis-je le résoudre ?

var btn = document.querySelector('button');
var div = document.querySelector('div');
            
btn.addEventListener('click', function() {              
    div.classList.toggle('blur');           
}); 
body {
    margin: 0;
    background: url('https://images.pexels.com/photos/2763927/pexels-photo-2763927.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1')no-repeat;
    background-size: cover;
}

div {
    width: 900px;
    height: 900px;
    transition: 1s ease;    
}

.blur {
    backdrop-filter: blur(20px);
    transition: 1s ease;        
}
<body>
<div class="cube"></div>    
<button>BLUR BUTTON</button>
</body>

P粉314915922
P粉314915922

répondre à tous(1)
P粉147747637

Parce que l'image est remplie <body>,但是.blur<div> et ne fait que 900x900 pixels.

Correction rapide :

Changement : var div = document.querySelector('div');

À : var div = document.body;

Ou : Déplacez background: url(..); background-size: ..div et récupérez-le à partir de là.

var btn = document.querySelector('button');
var div = document.body;
            
btn.addEventListener('click', function() {              
    div.classList.toggle('blur');           
}); 
body {
    margin: 0;
    background: url('https://images.pexels.com/photos/2763927/pexels-photo-2763927.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1')no-repeat;
    background-size: cover;
}

div {
    width: 900px;
    height: 900px;
    transition: 1s ease;    
}

.blur {
    backdrop-filter: blur(20px);
    transition: 1s ease;        
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal