javascript - JQuery FadeIn 和 CSS 幻灯片是断断续续的

标签 javascript jquery html css css-animations

JSFiddle

我对 fiddle 中代码的当前结果不满意,我希望它不那么断断续续,只是淡入淡出,同时也从底部滑入,但我的 JQuery 技能不是最好的。使用 CSS 作为幻灯片是最佳选择吗?在使用 JQuery 时找不到任何滑动示例。

非常感谢任何帮助。

这是相同的代码。

<!doctype html>
<html lang="en">
   <style>
      @keyframes slideInFromBottom {
      0% {
      transform: translateY(100%);
      }
      100% {
      transform: translateY(0);
      }
      }
      .v1 { 
      animation: 1s ease-out 0s 1 slideInFromBottom;
      }
      .v2 { 
      animation: 1s ease-out 0.2s 1 slideInFromBottom;
      }
      .v3 { 
      animation: 1s ease-out 0.4s 1 slideInFromBottom;
      }
   </style>
   <head>
      <meta charset="utf-8">
      <title>Vista Report</title>
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/css/materialize.min.css">
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>
   </head>
   <body>
      <div class="row">
         <div class="col s12 m4">
            <div class="card v1" id="v1">
               <div class="card-image">
                  <img id="preload_v1" src="https://images.unsplash.com/photo-1469461084727-4bfb496cf55a?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=e7e60237ffbd8c98a087f464f44931c1&auto=format&fit=crop&w=1955&q=80" style="display:none;">
                  <span class="card-title">Card Title</span>
               </div>
               <div class="card-content">
                  <p>I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.</p>
               </div>
            </div>
         </div>
         <div class="col s12 m4">
            <div class="card v2" id="v2">
               <div class="card-image">
                  <img id="preload_v2" src="https://images.unsplash.com/photo-1469461084727-4bfb496cf55a?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=e7e60237ffbd8c98a087f464f44931c1&auto=format&fit=crop&w=1955&q=80" style="display:none;">
                  <span class="card-title">Card Title</span>
               </div>
               <div class="card-content">
                  <p>I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.</p>
               </div>
            </div>
         </div>
         <div class="col s12 m4">
            <div class="card v3" id="v3">
               <div class="card-image">
                  <img id="preload_v3" src="https://images.unsplash.com/photo-1469461084727-4bfb496cf55a?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=e7e60237ffbd8c98a087f464f44931c1&auto=format&fit=crop&w=1955&q=80"  style="display:none;">
                  <span class="card-title">Card Title</span>
               </div>
               <div class="card-content">
                  <p>I am a very simple card. I am good at containing small bits of information. I am convenient because I require little markup to use effectively.</p>
               </div>
            </div>
         </div>
      </div>
   </body>
   <script>
    $("#v1").ready(function(){
      $("#preload_v1").fadeIn(2000);
    });

    $("#v2").ready(function(){
      $("#preload_v2").fadeIn(2000);
    });

    $("#v3").ready(function(){
      $("#preload_v3").fadeIn(2000);
    });
   </script>
</html>

最佳答案

我删除了 jQuery 脚本并使其单独使用 css。

用以下 css 替换 img 标签上的 style="display:none"

.card{
   opacity:0;
}

对于淡入效果,不透明度从 0 变为 1

@keyframes slideInFromBottom {
    0% {
      transform: translateY(100%);
      opacity: 0;
    }
    100% {
      transform: translateY(0);
      opacity: 1;
    }
  }

为了使动画保持在最终状态,将 forwards 添加到 animation 并更新了 animation-durationanimation-delay

  .v1 {
    animation: 1s ease-out 0s 1 slideInFromBottom forwards;
  }

  .v2 {
    animation: 1.2s ease-out 0.2s 1 slideInFromBottom forwards;
  }

  .v3 {
    animation: 1.4s ease-in 0.4s 1 slideInFromBottom forwards;
  }

Demo

关于javascript - JQuery FadeIn 和 CSS 幻灯片是断断续续的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48877469/

相关文章:

javascript - ScrollTop bug jquery 在 chrome 上

javascript - 为什么没有办法在 canvas.getContext ('2d' ).setTransform(a,b,c,d,e,f) 中旋转,什么是最好的旋转

javascript - 如果标签属性类仅包含 jquery 中的该类,则删除标签

javascript - 如何在javascript中从数据库表中访问这样的数据?

javascript - 根据默认选择值禁用按钮

javascript - 使用 Dojo 时是否需要控制台 shim?

javascript - 下面的 Jquery 代码有什么不同?

javascript - 如何在 JavaScript 中将字符串转换为对象数组

javascript - 使用 AJAX 发布复选框列表而不使用提交按钮

javascript - 在开始新动画之前清除所有使用 jquery 动画所做的更改