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

我想知道如何手动触发 Wave/Ripple 效果到某些控件,例如:

“触发某个按钮的波浪/波纹效果。”

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>

根据 MaterializeCSS 团队...



……根据 Waves 文档……



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

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

最佳答案

我找到了一个 解决方案 !!!

脚步:

  • 下载最新版本的 Waves.js ,链接 https://github.com/fians/Waves/releases
  • 从 materializeCSS 文件中打开名为“materialize.js”的文件
  • 打开后,尝试找到以...开头的部分
    ;/*!
      * 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;
     }
    

  • 该部分属于嵌入在 materializeCSS 中的 Waves 库.... 将所有该部分代码替换为 Waves.js 的新代码.... 如何? .... COPY最新版Waves.js的代码,在materialize.js里面的Waves SECTION里面替换(PASTE)
  • 现在......在你的 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>
    

  • 如果您单击“单击我”按钮......涟漪效应将在 #but_1 按钮中播放

    关于javascript - MaterializeCss - 波浪/波纹效果手动触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36584226/

    10-09 22:29