Html程序  |  123行  |  4.09 KB

<!--
@license
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<!doctype html>
<html>
<head>
  <title>paper-progress demo</title>

  <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
  <meta name="mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-capable" content="yes">

  <script src="../../webcomponentsjs/webcomponents-lite.js"></script>
  <link rel="import" href="../../paper-styles/color.html">
  <link rel="import" href="../../iron-demo-helpers/demo-snippet.html">
  <link rel="import" href="../../iron-demo-helpers/demo-pages-shared-styles.html">
  <link rel="import" href="../paper-progress.html">
  <link rel="import" href="../../paper-button/paper-button.html">

  <style is="custom-style" include="demo-pages-shared-styles">
    paper-progress {
      display: block;
      width: 100%;
      margin: 20px 0;
    }
    paper-button {
      display: inline-block;
      padding: 5px;
    }
  </style>

</head>
<body unresolved>
  <div class="vertical-section-container centered">
    <h3>paper-progress can be imperatively controlled</h3>
    <demo-snippet class="centered-demo">
      <template>
        <p>Once started, loops 5 times before stopping.
          <!-- View the source code to see the contents of startProgress() -->
          <paper-button raised onclick="startProgress();" id="start">Start</paper-button>
        </p>
        <paper-progress id="progress"></paper-progress>
      </template>
    </demo-snippet>

    <h3>paper-progress can be indeterminate</h3>
    <demo-snippet class="centered-demo">
      <template>
        <paper-progress indeterminate></paper-progress>
        <paper-progress indeterminate value="800" min="100" max="1000"></paper-progress>
      </template>
    </demo-snippet>

    <h3>It can be styled using custom properties</h3>
    <demo-snippet class="centered-demo">
      <template>
        <style is="custom-style">
          paper-progress.blue {
            --paper-progress-active-color: var(--paper-light-blue-500);
            --paper-progress-secondary-color: var(--paper-light-blue-100);
          }

          paper-progress.red {
            --paper-progress-active-color: var(--paper-red-500);
            --paper-progress-secondary-color: var(--paper-red-100);
          }

          paper-progress.green {
            --paper-progress-active-color: var(--paper-light-green-500);
            --paper-progress-secondary-color: var(--paper-light-green-100);
          }
        </style>
        <paper-progress value="800" min="100" max="1000" class="red"></paper-progress>
        <paper-progress value="60" class="green"></paper-progress>
        <paper-progress value="40" secondary-progress="80" class="blue"></paper-progress>
      </template>
    </demo-snippet>
  </div>

  <script>
    var progress, button, animationFrame;
    var repeat, maxRepeat = 5, animating = false;

    function nextProgress() {
      animating = true;
      if (progress.value < progress.max) {
        progress.value += (progress.step || 1);
      } else {
        if (++repeat >= maxRepeat) {
          animating = false;
          button.disabled = false;
          return;
        }
        progress.value = progress.min;
      }
      var animationFrame = requestAnimationFrame(nextProgress);
    }

    function startProgress() {
      repeat = 0;
      progress.value = progress.min;
      button.disabled = true;
      if (!animating) {
        nextProgress();
      }
    }

    window.addEventListener('WebComponentsReady', function() {
      progress = document.querySelector('paper-progress');
      button = document.querySelector('paper-button');
    });

  </script>

</body>
</html>