【发布时间】:2021-10-11 22:29:29
【问题描述】:
我有一个屏幕,其中包括左侧的按钮和右侧的图片,当我单击按钮 CLICK 时,我希望左侧的图像不显示任何动画。稍后,另一个以前没有显示的框应该显示块。
function calculate() {
document.getElementById('body-mass-image').classList.add('body-mass-over');
var el = document.getElementById('body-mass-result-box');
if (el) {
el.className += el.className ? '__show' : '__show';
}
}
.calculate__content__result { display: none; }
..calculate__content__result__show { display: block; }
#body-mass-image {
transition: all 1s linear;
display: block;
opacity: 1;
}
#body-mass-image.body-mass-over {
display: none;
transition: opacity 1s ease-out;
opacity: 0;
}
<div class="col-lg-4 col-md-12 col-sm-12 calculate__content">
<div class="form-group">
<div class="calorie__button__area">
<button type="submit" class="button-secondary button__calculate" onclick="calculate()">CLICK</button>
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-12 calculate__content" id="body-mass-image">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTBwAo9q5FtWQKO_hKSmgkKkrMZZtirYph9xg&usqp=CAU" alt="Weight Calculation Image"/>
</div>
<div class="col-lg-6 col-md-12 col-sm-12 calculate__content__result" id="body-mass-result-box">
<div class="row">
<div class="col-lg-2 col-md-12 col-sm-12"></div>
<div class="col-lg-8 col-md-12 col-sm-12">
<div class="result__box">
<div class="title">Vücut Kitle End.:</div>
<div class="calorie">33.9</div>
<div class="title">Durum:</div>
<div class="calorie">Şişman/Obez</div>
</div>
</div>
<div class="col-lg-2 col-md-12 col-sm-12"></div>
</div>
</div>
所以,我不显示图像并显示块结果__box,但问题是我没有动画。
【问题讨论】:
-
display 不是动画 CSS 属性 - 使用某种变换(例如缩放)或其他动画属性,如不透明度或高度。
-
不透明度和高度也不起作用,因为我想用 div 替换图像。因此,当我这样做时,例如图像不透明度为 0,它仍然停留在那里,并且 div(result__box)显示在
-
请不要一遍又一遍地转发同一个问题。预计您会接受这是不可能的。仔细阅读副本(包括所有答案),其中一个可能对您有用。
标签: javascript html css css-animations css-transitions