【问题标题】:MatRipple Continues To Show No Matter WhatMatRipple 继续显示无论如何
【发布时间】:2021-01-11 13:03:04
【问题描述】:

mat-radio-button 元素周围的空间非常有限,所以我想禁用它。它被禁用了一半,但是在hover 操作中,它的“幽灵”继续在hover 上显示,如下所示;

这是我的mat-radio-button

<mat-radio-button  [disableRipple]="true" [checked]="element == expandedElement"(change)="ShowDetail(element)" ></mat-radio-button>

需要明确的是,[disableRipple] 会禁用 onclick 上显示的效果,但不会禁用 hover 上的效果。任何人都有可能对我有帮助的解决方案?

这是我尝试过但不起作用的,它位于组件的styles.css 处(在执行document.querySelectorAll() 时,这会产生幽灵部分);

span.mat-ripple-element.mat-radio-persistent-ripple{
  display: none !important;
}

显示disableRipple 的Stakblitz 仅移除onlick 事件上显示的波纹:example(自动是具有disableRipple 属性的那个)

【问题讨论】:

  • 你能分享一个关于stackblitz的可行演示吗?这真的很有帮助:)
  • 只有当你点击按钮而不是悬停时,波纹才会出现。
  • @DarioPiotrowicz 我用 stackblitz 示例编辑了这个问题
  • @Vimal Patel 不幸的是,情况并非如此:\
  • @oividiosCaeremos 你的 stackblitz 示例不起作用。

标签: html css angular angular-material


【解决方案1】:

要消除涟漪效应,您只需将以下内容添加到您的 styles.scss 文件中:

.mat-radio-ripple {
  display: none;
}

如您所见:https://stackblitz.com/edit/angular-ehgpd2-2hvt7s?file=src/styles.scss

这消除了材质单选按钮的波纹。

要为所有垫子元素删除它,您可以这样做:

.mat-ripple { display: none; }

如果仅用于复选框,则删除:

.mat-checkbox-ripple { display: none; }

等等……

如您所见:https://github.com/angular/components/issues/17404

(另请注意,正如guthub问题中提到的那样,焦点/点击的涟漪是为了可访问性,这就是它们难以摆脱的原因,我认为你应该记住这一点并在一个垫子收音机,如果激活或有焦点)

【讨论】:

  • Seni seviyorum Dario
【解决方案2】:

在悬停时移除背景颜色。在您的 style.css/style.scss 文件中添加下面的 css。

.mat-radio-container:hover .mat-radio-persistent-ripple {
  opacity: 0 !important;
}

【讨论】:

  • 嗨@Vimal Patel,...And to be clear, [disableRipple] disables the effect that shows on onclick but not the effect on hover...我不认为这个问题是错误的或需要更新,但谢谢你的建议:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 1970-01-01
相关资源
最近更新 更多