【问题标题】:Changing CSS animations visibility with Javascript使用 Javascript 更改 CSS 动画的可见性
【发布时间】:2013-11-28 07:57:49
【问题描述】:

我一直按照Justin Aguilar's Site 的指示将一些 CSS 动画添加到我的网站。它组合得很好,看起来相当简单。但是我在触发入口动画时遇到了一个大问题。

对此我很陌生,我知道这个问题可能完全是空洞的,但过去几天我一直在玩弄它,但没有成功。

要创建入口,元素的可见性最初设置为“隐藏”。然后 javascript 应该通过添加 .pullUp 类来触发动画,这会导致元素变得可见和动画。这看起来很简单,但是我的所有元素在页面加载后立即开始动画,或者它们仍然不可见。

我真的需要一些帮助。这是Link to the code on JFiddle.

   <img src="img/apple.png" id="apple" class="pullUp" /> 

   <script= "text/css">

.pullUp{
    animation-name: pullUp;
    -webkit-animation-name: pullUp; 

    animation-duration: 1.1s;   
    -webkit-animation-duration: 1.1s;

    animation-timing-function: ease-out;    
    -webkit-animation-timing-function: ease-out;    

    transform-origin: 50% 100%;
    -ms-transform-origin: 50% 100%;
    -webkit-transform-origin: 50% 100%; 

    visibility: visible !important;             
    }
</script>

<script>

$(window).scroll(function() {
  $('#apple').each(function(){
  var imagePos = $(this).offset().top;

  var topOfWindow = $(window).scrollTop();
    if (imagePos < topOfWindow+150) {
      $(this).addClass(".pullUp");
    }
  });
</script>

基本上,当图像滚动到时,我只需要我的图像变得可见和动画。

我的网站的引导框架可能是问题的根源,但我不明白为什么会这样。另请注意,我使用外部样式表,为了方便起见,这里只包含了所有代码。非常感谢任何见解或帮助!

【问题讨论】:

    标签: javascript css css-animations


    【解决方案1】:

    forked your JSFiddle

    1. 您在代码块末尾缺少});。这就是 jQuery 不起作用的原因。
    2. 您的图像已经添加了pullUp 类,因此动画立即开始。

    【讨论】:

    • 最初我对稍后添加的 pullUp 类有正确的想法,但由于它不起作用(由于缺少分号)我放弃了。至少我知道我并没有完全偏离轨道,但仍然是一个愚蠢的错误。下次我会确保更仔细地检查我的右括号。再次感谢!
    • @Nolakat 如果答案令人满意,您可以单击答案左侧的箭头将其标记为正确
    • @Zeaklous 我一阅读 cmets 就尝试过,但 Overstack 告诉我仍然需要 15 个声望点。我想我的感激之情现在就足够了:(
    • @Nolakat 赞成。我正在引用这些箭头下方的复选标记。这样做甚至会给你 2 声望!
    • @Zeaklous 明白了!感谢您的帮助!
    【解决方案2】:

    我注意到在你的 CSS 中你没有指定一个位置(即位置:相对或位置:绝对)。这对于这类事情至关重要(编辑:显然不是,如下面的答案所示)。

    在添加位置之后:相对于那些元素,它似乎可以工作,但是您可能需要修改动画,因为效果似乎非常小。

    【讨论】:

    • 谢谢。我已经指定了位置,动画仍然运行。不幸的是,它在我加载页面后立即运行。当元素滚动到时应该触发动画的 javascript 部分似乎不起作用。你觉得是 JS 代码里的东西吗?
    • 最有可能,虽然我只是假设。我会看这个例子:jsfiddle.net/karalamalar/grnQA 并尝试使用它。此 javacript 代码:jsfiddle.net/dueWG/10 也与上述相同,但检测 ie6/ie7
    猜你喜欢
    • 2021-05-02
    • 1970-01-01
    • 2013-04-14
    • 2011-05-28
    • 2011-12-13
    • 2011-11-13
    • 2011-12-27
    • 2014-10-17
    • 2010-09-05
    相关资源
    最近更新 更多