Creating Many Material Design Elements

Setting up a single Material Design Component is easy. For instance,

import { MDCRipple } from "@material/ripple";
const iconButtonRipple = new MDCRipple(document.querySelector(".mdc-icon-button"));
iconButtonRipple.unbounded = true;

But when dealing with multiple components, the MDC documentation suggests using querySelectorAll like so:

const iconButtonRipple = [].map.call(
    document.querySelectorAll(".mdc-icon-button"),
    function (el) {
        return new MDCRipple(el);
    }
);

Unfortunately, this method doesn't seem to work for me and I'm unsure where to include the

iconButtonRipple.unbounded = true
line in all of this. The only solution I've found is to individually assign a unique class to each icon button and initialize them one by one.

If anyone could assist me in setting this up as per the documentation's recommendation, it would be greatly appreciated.

Answer №1

One possible solution is to execute the following code snippet:

const buttons = [...document.querySelectorAll(".mdc-icon-button")].map(element => {
  const rippleEffect = new MDCRipple(element);
  rippleEffect.unbounded = true;
});

Alternatively, you can try this:

const buttons = [...document.querySelectorAll(".mdc-icon-button")].map(element => new MDCRipple(element));
buttons.forEach(btn => {
  btn.unbounded = true;
});

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Having trouble with a JavaScript function and tag that don't seem to be working in Chrome, but function well in Mozilla Firefox. Can anyone provide assistance with

Below is the code for creating two dropdowns: one for "Property Type" and the second for "Property Sub Type". This code works fine in Firefox but not in Chrome. When selecting "residential" as the property type, only residential values will appear in the ...

"Encountering an issue with toUpperCase function in Next.js when incorporating slug - any

Clicking on the following link will take you to the Next.js API reference for configuring headers: https://nextjs.org/docs/api-reference/next.config.js/headers When adding the x-slug key, the code snippet looks like this: module.exports = { async heade ...

Select the send all text option when making a request

Using ajax, I can dynamically fill a drop-down select menu. My next step is to include all the text from the selected options in my request. <select name=".." > <option value="0"> ... </option> <option value="1"> xxx </option ...

Crafting a clever smart banner using jquery.smartbanner for Android Firefox users

In order to display smartbanners on my mobile website, I utilize jquery.smartbanner. This implementation has been successful for ios, windows phone, and the default android browser. However, when testing on Firefox for android, the smartbanner is not visib ...

Utilizing the 'new' operator in the creation of Mongoose schema structures

Trying to figure out the discrepancy between the two methods of Schema creation in mongoose. Despite searching through the documentation and using Google, I haven't been able to find any substantial results. As a beginner in mongoose, I'm curious ...

Tips for displaying an asp.net form using javascript functions

I am currently developing a login page in asp.net and have utilized a template from CodePen at http://codepen.io/andytran/pen/PwoQgO It is my understanding that an asp.net page can only have one form tag with runat="server". However, I need to incorporate ...

Utilizing Backbone.js: Passing a variable from a route to a view, collection, or model

Currently working on a mobile website project where I have set up a directory named 'api' containing PHP files that retrieve JSON formatted data from a remote API to avoid cross-domain issues. However, one of the PHP files requires a GET paramet ...

Array's Javascript length of 0

I have encountered some strange behavior with the following code. It's displaying an array length of 0 even though I can see a length greater than 0 when printing it right before that: var getTopSelection = function(callback) { var topSelection = ...

The alert feature is triggered when any button is pressed

I am dynamically adding buttons and assigning an event to them: $(document).on("click", ".del-but", remove); Within the remove function, I have a confirm dialog that triggers for each button added (3 buttons => 3 times) function remove() { ...

Converting request.body into a string before building a JSON object

Currently facing a challenge with extracting JSON data from a string. The request body is in string format, but I am having difficulties parsing out the data correctly. This is what I have: String to parse: uniq1.data.data.data 7 bleep\nuniq2.data.d ...

Creating numerous hash codes from a single data flow using Crypto in Node.js

Currently, I am developing a Node.js application where the readable stream from a child process' output is being piped into a writable stream from a Crypto module to generate four hash values (md5, sha1, sha256, and sha512). However, the challenge ari ...

Swap out any terms in a sentence that correspond to words found in a different array

Looking to prefix words in a string that match specific 'filter' words with a # symbol. Here's what I've tried: let wordsArray = ['she', 'smile']; let sentence = 'She has a big smile'; let sentenceArray = ...

The Autocomplete field's label remains visible even after the form is submitted

I am currently developing a feature that allows users to select an option in the Autocomplete component. In the parent component, I pass these props: const filterDropdownConfig: FilterSelectAutocomplete = { data: scenariosList, label: { className: &apos ...

Angular // binding innerHTML data

I'm having trouble setting up a dynamic table where one of the cells needs to contain a progress bar. I attempted using innerHTML for this, but it's not working as expected. Any suggestions on how to approach this? Here is a snippet from my dash ...

Decoding a formatted string

Here is a string that needs parsing: const str = 'map("a")to("b");map("foo")to("bar");map("alpha")to("beta");' The goal is to generate a JSON structure like this: [{id: 'a', map: 'b'}, {id: 'foo', map: 'bar&a ...

Conceal content upon clicking with JavaScript

Showing a form after clicking a link can be achieved using this code: $(function () { $('.msg').on('click', function (e) { e.preventDefault(); $(this).next('.msgarea').show(); }); }); <a href="" cl ...

What steps should I take to repair this array table?

I've created a simple array table that uses 3 user-defined values to determine the value of a variable. Although I've written similar code in the past, I'm having trouble figuring out why this one isn't working. The table is quite large ...

"Bootstrap is functioning properly on my local environment, but it seems to

Utilizing the MVC framework and bootstrap has been successful for optimizing my website locally. However, when I upload it to the server, none of the CSS is being rendered. Additionally, the front page, meant to be a carousel slider, appears as a vertical ...

Is there a way to display the button only when the user is able to enter an email in the input field?

I have a form for users to update their profile and a button to delete their account. I want the delete account button to only be visible if the user enters their email. $(document).ready(function() { var user_email = $('input[name="emp_email"]&a ...

The Signature Pad loses its focus

My HTML code is using JavaScript with Bootstrap and the Signature Pad. The issue I am facing is related to the Bootstrap Collapse feature. When I set the first panel as default, the Signature Pad does not allow me to sign. However, if I set the third panel ...