Material UI 上的 IconButton 悬停效果

IconButton Hovering Effect on Material UI

下面我有与 material UI 不同的图标,目前,每当我将鼠标悬停在其中任何一个上时,它都会显示一个灰色圆圈,我想删除这个灰色圆圈,并且我希望每个图标都发生变化每当我将鼠标悬停在特定颜色上时,我查看了 material ui 中的文档,但找不到任何解释它的内容,感谢您的反馈。

<Box className={classes.socialmedia}>
            <IconButton aria-label="twitter">
              <TwitterIcon />
            </IconButton>
            <IconButton aria-label="facebook">
              <FacebookIcon />
            </IconButton>
            <IconButton aria-label="instagram">
              <InstagramIcon />
            </IconButton>
            <IconButton aria-label="Youtube">
              <YouTubeIcon />
            </IconButton>
            <IconButton aria-label="Apple">
              <AppleIcon />
            </IconButton>
          </Box>

定义一个钩子。从 '@material-ui/core/styles'.

导入 makeStyle
const useStyles = makeStyle(() => ({
  styleRed: {
    '&:hover': {
      backgroundColor: '#f00'
    }
  },
  styleBlue: {
    '&:hover': {
      backgroundColor: '#00f'
    }
  }
}));

然后在你的组件中:

// using our hook
const {styleRed, styleBlue} = useStyles();

// some more code

return (
  <>
    <IconButton aria-label="twitter" classes={styleRed}>
      <TwitterIcon />
    </IconButton>
    <IconButton aria-label="facebook" classes={styleBlue}>
      <FacebookIcon />
    </IconButton>
  </>
)

为了移除悬停时背景中显示的灰色圆圈,您可以在 IconButton 组件中使用 disableFocusRipple & disableRipple 属性并设置 style={{ backgroundColor: 'transparent' }}。 例如:

<IconButton
    disableFocusRipple
    disableRipple
    style={{ backgroundColor: "transparent" }}
    aria-label="twitter"
  >
    <TwitterIcon className={classes.twitter} />
  </IconButton>

要更改鼠标悬停时图标的颜色,请使用 hover 选择器。 例如:

    const useStyles = makeStyles({
  twitter: {
    "&:hover": {
      color: "#00acee"
    }
  }
});

我创建了一个快速示例来说明 codesandbox 中的解决方案:

https://codesandbox.io/s/elegant-ramanujan-wnj9fw?file=/index.js:948-961