【问题标题】:Change css "display" property using animejs使用animejs更改css“显示”属性
【发布时间】:2019-08-01 16:13:29
【问题描述】:

我正在尝试使用animejs 将div 元素的“显示”属性从none 更改为block,但没有任何反应。这是我的代码:

function marker_hover() {    
    anime({
        targets: '.battery',        
        display: 'block',
        duration: 250,
        easing: 'easeInOutQuad'
    });
}

这个想法是在另一个元素悬停时显示一个元素(此功能分配给 onhover 事件)
元素定义为:

<div class="battery">TEST</div>

CSS:

.battery{
display:none;
}

【问题讨论】:

  • display 属性无法设置动画。

标签: css display anime.js


【解决方案1】:

从文档中,也为了澄清@user3491125 的答案; Animejs 只能为具有数值的属性设置动画。因此,要更改显示值,请在 begin 回调中编写常规 js 代码,该回调在动画开始时触发一次。

【讨论】:

【解决方案2】:

AnimeJS 的重点是简化 CSS 的 Vanilla JS 手势。 因此 CSS 为了创建一个淡入淡出动画,你需要编辑不透明度而不是显示。

所以你的css应该是

.battery {
  display: none;
  opacity: hidden;
}

还有 JS

anime({
  targets: '.battery',        
  opacity: '1',
  duration: 250,
  easing: 'easeInOutQuad',
  begin: function() {
    document.querySelector('.battery').style.display = 'block';
  },
});

【讨论】:

  • opacity: hidden; ?你在开玩笑吗?从什么时候开始这是一个有效的 CSS opacity 属性值?
  • 不要使用opacity: hidden,而是使用0,因为opacity没有hidden属性值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
  • 2011-08-18
  • 2016-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多