Kann ich das anwenden einer CSS-übergang in die overflow-Eigenschaft?

Ich versuche transition-delay zu den overflow Eigenschaft von body wenn ein div geklickt wird, durch das hinzufügen einer Klasse zur body wie folgt:

JS:

$("div").click(function(){
    $("body").addClass("no_overflow");
});

CSS:

div{
  background:lime;
  height:2000px;
}
.no_overflow{  
 overflow:hidden;
}
body{  
  overflow:auto;
  transition: overflow 0 2s;  
}

HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>I'm div</div>

Jedoch, dies scheint nicht zu funktionieren (es gibt keine Verzögerung). Mache ich etwas falsch hier?

Ich weiß, dies kann erreicht werden, indem setTimeout Funktion, aber Frage mich, warum kann das nicht erreicht werden, mithilfe von css-transitions? Gibt es bestimmte Stil-Eigenschaften zu, die css-übergänge angewendet werden kann?

  • Es fiel mir ein, dass, als eine alternative, Sie könnten den übergang der height eher als die overflow Eigenschaft zu erreichen, in etwa das gleiche Aussehen.
  • Ja, das kann ausprobiert werden. Aber man muss aufpassen, dass der browser die Höhe in Ordnung, dies zu tun. Auch, dass nicht beschneiden Sie das Fenster in der gleichen Weise, wenn overflow ist hidden. Jedenfalls landete ich mit setTimeout. 😉
Schreibe einen Kommentar