首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动画后未触发转换

动画后未触发转换
EN

Stack Overflow用户
提问于 2017-02-14 10:50:34
回答 2查看 36关注 0票数 0

我建立了一个搜索模式,它是通过jQuery触发的,它将类-open添加到主父div #search-box中。我的问题是,#search-box将淡入,但是input不会转换。我不知道为什么会这样。这里有一个指向完整代码的链接

代码语言:javascript
复制
  #search-box {
     display: none;
     position: absolute;
     height: 100%;
     width: 100%;
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     z-index: 999999999;

     input {
        border-bottom: 2px solid white;
        display: block;
        width: 100%;
        transform: scale3d(0,1,1);
        transform-origin: 0% 50%;
        transition: transform 3s;
     }

     &.-open{
        background: rgba(0, 0, 0, .8);
        display: block;
        animation: fadein .8s;

        input{
           transform: scale3d(1,1,1);
           transition-duration: 10s;
           transition-delay: 2s;
         }
      }
  }

@keyframes fadein {
   from { opacity: 0; }
   to   { opacity: 1; }
}

这里是jquery

代码语言:javascript
复制
$('a[href="#search"]').click(function() {
  $("#search-box").addClass("-open");
  setTimeout(function() {
    inputSearch.focus();
  }, 800);
});

$('a[href="#close"]').click(function() {
  $("#search-box").removeClass("-open");
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-14 10:59:13

原因是父#search-box正从display: none切换到block,而css转换不会触发该更改。有些解决方案是让animation缩放输入元素,或者以另一种方式隐藏#search-box。比如使用height:0; overflow:hiddenvisibility: hidden > visibility: visible

票数 3
EN

Stack Overflow用户

发布于 2017-02-14 11:08:36

试试这个:https://codepen.io/adrianroworth/pen/rjPdKj

原因是display: none / display: block导致动画不能正常工作。我已经改变了工作方式,使用绝对位置将其定位在屏幕外,同时仍然是可见的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42224208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档