MaterializeCss-波浪/波纹效果手动触发

4 javascript wave materialize ripple material-design

我正在使用MaterializeCSS(http://materializecss.com/)建立我的网站

我想知道如何手动触发某些控件的波动效果,例如:

“触发某些按钮的波动/波纹效果。”

MaterializeCSS团队认为他们使用的是“ Waves.js” JavaScript库的端口(http://fian.my.id/Waves/),但是当我尝试使用这些命令时,浏览器控制台中会出现错误。

有人可以在这里指出我吗?

代码用作示例:

<!DOCTYPE html>
<html lang="es">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!--Import materialize.css-->
        <link type="text/css" rel="stylesheet" href="css/materialize.css"  media="screen,projection"/>

        <!--Let browser know website is optimized for mobile-->
        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>

        <!--Import jQuery before materialize.js-->
        <script type="text/javascript" src="jquery/jquery.min.js"></script>
        <script type="text/javascript" src="js/materialize.min.js"></script>

        <title>My website title</title>
    </head>

    <body>
        <script type="text/javascript">
            $(document).ready(function() {              
                Waves.ripple('#but_1');
            });
        </script>

        <a id="but_1" class="waves-effect waves-light btn">button</a>

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

根据MaterializeCSS TEAM ...

“ Waves是我们包含在Materialize中的外部库,可让我们创建Material Design中概述的墨水效果”

...并根据Waves文档....

Waves.ripple(elements,options)以编程方式在HTML元素中创建波纹效果。

http://fian.my.id/Waves/#api

因此,在浏览器控制台中,我收到此错误:

未捕获的TypeError:Waves.ripple不是函数

小智 5

我找到了解决方案

脚步:

  1. 下载最新版本的Waves.js,链接https://github.com/fians/Waves/releases

  2. 从materializeCSS文件中打开名为“ materialize.js”的文件

  3. 打开后,尝试找到以...开头的部分。

    ;/*!
      * Waves v0.6.4
      * http://fian.my.id/Waves
      *
      * Copyright 2014 Alfiana E. Sibuea and other contributors
      * Released under the MIT license
      * https://github.com/fians/Waves/blob/master/LICENSE
      */
    
      ;(function(window) {
      'use strict';
    
      var Waves = Waves || {};
      var $$ = document.querySelectorAll.bind(document);
    
      // Find exact position of element
      function isWindow(obj) {
          return obj !== null && obj === obj.window;
     }
    
    Run Code Online (Sandbox Code Playgroud)

该部分属于在materializeCSS中嵌入的Waves库....用新的Waves.js代码替换所有该部分代码....怎么做?....复制最新版本的Waves.js的代码,并在materialize.js的Waves SECTION中替换(PASTE)

  1. 现在...在HTML文件中,您应该有类似这样的内容(检查注释)

    <!DOCTYPE html>
    <html lang="es">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
    
        <!--ADD the CSS from materializeCSS -->
        <link type="text/css" rel="stylesheet" href="css/materialize.css"  media="screen,projection"/>
    
        <!--Let browser know website is optimized for mobile-->
        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    
        <!--Import jQuery before materialize.js-->
        <script type="text/javascript" src="jquery/jquery.min.js"></script>
    
        <!-- Add the file "materialize.js" ... the one you just modified -->
        <script type="text/javascript" src="js/materialize.js"></script>
    
        <!-- Add the CSS from Waves.js -->
        <link type="text/css" rel="stylesheet" href="waves/waves.css"  media="screen,projection"/>
    
        <!-- DO NOT ADD the Waves.js
        <script type="text/javascript" src="wave/waves.js"></script>
        -->
    
        <title>Your site</title>
    </head>
     <body>
        <script type="text/javascript">
            function clickbut() {
                //Now you can use the Waves.ripple function!!!
                Waves.ripple('#but_1');
            };
    
            $(document).ready(function() {              
                //Initialize the Waves module
                Waves.init()
            });
        </script>
    
    
        <h2 class="left-align"><i class="left-align medium material-icons">touch_app</i>My website Header</h2>
    
    
        <button  onclick="clickbut()">click me</button>
    
        <a class="waves-effect waves-light btn ">button</a>
    
        <a id="but_1" class="waves-effect waves-light btn"><i class="material-icons left">cloud</i>button</a>
    
        <a class="waves-effect waves-light btn"><i class="material-icons right">cloud</i>button</a>
    
    </body>
    </html>
    
    Run Code Online (Sandbox Code Playgroud)

如果单击“单击我”按钮,则波纹效果将在#but_1按钮中播放