Heim  >  Artikel  >  Web-Frontend  >  So erzielen Sie einen Schneeanimationseffekt in jQuery

So erzielen Sie einen Schneeanimationseffekt in jQuery

亚连
亚连Original
2018-06-08 11:21:281756Durchsuche

In diesem Artikel wird hauptsächlich der von jQuery implementierte Schneeanimationseffekt vorgestellt, der die Verwendung des jQuery-Plugins in Kombination mit setInterval und animate für Animationsvorgänge umfasst. Außerdem wird der Quellcode mitgeliefert, den Leser in Not herunterladen und nachschlagen können siehe es

Das Beispiel in diesem Artikel beschreibt den von jQuery implementierten Schneeanimationseffekt. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

HTML-Teil:

<!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);

Kein CSS-Stil erforderlich

Hauptverwendung: setInterval-setInterval() Methode zum Aufrufen einer Funktion oder Berechnen eines Ausdrucks in einem bestimmten Zeitraum (in Millisekunden). & Animation animieren

Betriebseffekt:

Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

Wie verwende ich ECharts im Webpack?

Grundlegendes internes Methodendiagramm von Object in JavaScript (grafisches Tutorial)

Verwenden Sie Axios, um die Abrufmethode zu kapseln und

Das obige ist der detaillierte Inhalt vonSo erzielen Sie einen Schneeanimationseffekt in jQuery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn