简体   繁体   English

CSS 过渡不向后工作

[英]CSS transition doesn't work backwards

I have I have a standard opacity animation, but it doesn't work in reverse order.我有一个标准的不透明度动画,但它不能以相反的顺序工作。 Here is JSFiddle link .这是 JSFiddle链接 If I understood the documentation correctly it should work automatically.如果我正确理解了文档,它应该会自动工作。 I am beginner in js so is this a problem in javascript?我是 js 初学者,这是 javascript 中的问题吗? Or CSS animation is wrong?还是 CSS 动画不对?

HTML: HTML:

<div id="bg_layer" class="bg_layer"></div>
<div id="clicker" class="grey"></div>
<div id="galery" class="galery" ></div>

JS: JS:

   clicker.onclick = function() {  
document.getElementById("bg_layer").style.opacity = "0.7";
bg_layer.style.visibility = 'visible';
galery.style.visibility = 'visible';
document.getElementById("galery").style.opacity = "1";};
   bg_layer.onclick = function() {
document.getElementById("bg_layer").style.opacity = "0";
bg_layer.style.visibility = 'hidden';
galery.style.visibility = 'hidden';
document.getElementById("galery").style.opacity = "0";
}

CSS: CSS:

html{
min-height:100%;
position:relative;}

body {background-image: url(img/wall.jpg);
    background-repeat: repeat;
    margin: 0 0 0 0;
    height: 100%;
}

 .grey {
    float: right;
  background: #d6d6d6;
  width:300px;
  height:300px;
    margin: 20px 0 20px 0;
}

.bg_layer {
    position: absolute;
    visibility: hidden;
    width: 100%;
    height: auto;
    min-height: 100%;
    z-index: 98;
    opacity: 0;
    background: #000000;
    -webkit-transition: opacity 0.5s ease-in-out;
    -moz-transition: opacity 0.5s ease-in-out;
    transition: opacity 0.5s ease-in-out;
}

.galery {
    visibility: hidden;
    position: absolute;
    top: 100px;
    margin: auto;
    width: 170px;
    height: 70px;
    background: #ff0000;
    opacity: 0;
    z-index: 99;
    -webkit-transition: opacity 0.5s ease-in-out;
    -moz-transition: opacity 0.5s ease-in-out;
    transition: opacity 0.5s ease-in-out;
}

Change the transition property from transition: opacity 0.5s ease-in-out to transition: all 0.5s ease-in-out so any style properties being changed will start the transition.将 transition 属性从transition: opacity 0.5s ease-in-out更改为transition: all 0.5s ease-in-out因此任何更改的样式属性都将开始过渡。

 clicker.onclick = function() { document.getElementById("bg_layer").style.opacity = "0.7"; bg_layer.style.visibility = 'visible'; galery.style.visibility = 'visible'; document.getElementById("galery").style.opacity = "1";}; bg_layer.onclick = function() { document.getElementById("bg_layer").style.opacity = "0"; bg_layer.style.visibility = 'hidden'; galery.style.visibility = 'hidden'; document.getElementById("galery").style.opacity = "0"; }
 html{ min-height:100%; position:relative; scroll-behavior: smooth; } body {background-image: url(img/wall.jpg); background-repeat: repeat; margin: 0 0 0 0; height: 100%; } .grey { float: right; background: #d6d6d6; width:300px; height:300px; margin: 20px 0 20px 0; } .bg_layer { position: absolute; visibility: hidden; width: 100%; height: auto; min-height: 100%; z-index: 98; opacity: 0; background: #000000; -webkit-transition: all 0.5s ease-in-out; -moz-transition: all 0.5s ease-in-out; transition: all 0.5s ease-in-out; } .galery { visibility: hidden; position: absolute; top: 100px; margin: auto; width: 170px; height: 70px; background: #ff0000; opacity: 0; z-index: 99; -webkit-transition: all 0.5s ease-in-out; -moz-transition: all 0.5s ease-in-out; transition: all 0.5s ease-in-out; }
 <div id="bg_layer" class="bg_layer"></div> <div id="clicker" class="grey"></div> <div id="galery" class="galery" ></div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM