jQueryで雪のアニメーション効果を実現する方法

亚连
リリース: 2018-06-08 11:21:28
オリジナル
1728 人が閲覧しました

この記事では、jQuery によって実装された雪のアニメーション効果を主に紹介し、アニメーション操作のための setInterval および animate と組み合わせた jQuery プラグインの関連使用スキルを紹介します。また、必要な読者がダウンロードして参照できるように、ソース コードも付属しています。参考にしてください

この記事では、jQueryで実装された雪のアニメーション効果の例について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

html 部分:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta name="viewport"
      content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" />
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <!-- snow -->
    <script src="js/jquery.snow.js"></script>
  </head>
  <body>
    <p id="content-wrapper">
     <p class="inner clearfix">
      <section id="main-content">
       <img src="images/merry_christmasA.jpg" alt="chrismas">
      </section>
     </p>
    </p>
    <script>
     $(document).ready( function(){
     $.fn.snow( { minSize: 2, maxSize: 150, newOn: 200, flakeColor: &#39;#FFFFFF&#39; } );
     });
    </script>
    </body>
</html>
ログイン後にコピー

jquery.snow.js:

/**
 * jquery.snow - jQuery Snow Effect Plugin
 *
 * Available under MIT licence
 *
 * @version 1 (21. Jan 2012)
 * @author Ivan Lazarevic
 * @requires jQuery
 * @see http://workshop.rs
 *
 * @params minSize - min size of snowflake, 10 by default
 * @params maxSize - max size of snowflake, 20 by default
 * @params newOn - frequency in ms of appearing of new snowflake, 500 by default
 * @params flakeColor - color of snowflake, #FFFFFF by default
 * @example $.fn.snow({ maxSize: 200, newOn: 1000 });
 */
(function($){
  $.fn.snow = function(options){
      var $flake     = $(&#39;<p id="flake" />&#39;).css({&#39;position&#39;: &#39;absolute&#39;, &#39;top&#39;: &#39;-50px&#39;}).html(&#39;❄&#39;),
        documentHeight = $(document).height(),
        documentWidth  = $(document).width(),
        defaults    = {
                  minSize   : 10,
                  maxSize   : 20,
                  newOn    : 500,
                  flakeColor : "#FFFFFF"
                },
        options     = $.extend({}, defaults, options);
      //setInterval-setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
      //开始一个周期-开始添加雪花
      var interval    = setInterval( function(){
        var startPositionLeft  = Math.random() * documentWidth - 100,
          startOpacity    = 0.5 + Math.random(),
          sizeFlake      = options.minSize + Math.random() * options.maxSize,
          endPositionTop   = documentHeight - 40,
          endPositionLeft   = startPositionLeft - 100 + Math.random() * 200,
          durationFall    = documentHeight * 10 + Math.random() * 5000;
        $flake
          .clone()
          .appendTo(&#39;body&#39;)
          .css(
            {
              left: startPositionLeft,
              opacity: startOpacity,
              &#39;font-size&#39;: sizeFlake,
              color: options.flakeColor
            }
          )
          .animate(//增加雪花动态效果
            {
              top: endPositionTop,
              left: endPositionLeft,
              opacity: 0.2
            },
            durationFall,
            &#39;linear&#39;,
            function() {
              $(this).remove()
            }
          );
      }, options.newOn);
      //结束周期-停止添加雪花
      setTimeout(function(){
        window.clearInterval(interval);
      },5000);
  };
})(jQuery);
ログイン後にコピー

CSS スタイルは必要ありません

主に使用されるもの: setInterval-setInterval() メソッドは指定された期間に基づいて実行できます(ミリ秒単位) 関数を呼び出すか、式を評価します。 & アニメーション

ランニング エフェクト:

上記は、皆さんのためにまとめたもので、将来皆さんのお役に立てれば幸いです。

関連記事:

Webpack で ECharts を使用する方法?

JavaScript のオブジェクトの基本的な内部メソッド図 (グラフィック チュートリアル)

axios を使用してフェッチ メソッドをカプセル化し、呼び出します

以上がjQueryで雪のアニメーション効果を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!