Har*_*iya 7 javascript css css-animations reactjs material-ui
我想删除按钮上的波纹效果并在 MUI 按钮中实现我的自定义效果。我已经使用disableRipple删除了波纹。我尝试在用户单击某个元素时应用阴影,但不知何故它不起作用。
\nimport * as React from "react";\nimport Button from "@mui/material/Button";\nimport { alpha } from "@mui/material/styles";\n\nexport default function DefaultProps() {\n return (\n <Button\n variant="outlined"\n // className=\'Mui-focusVisible\'\n disableRipple\n sx={{\n "&:hover": {\n boxShadow: `0px 0px 0px 0px ${alpha("#000", 0.16)}`\n },\n "&.Mui-focusVisible": {\n boxShadow: `0px 0px 0px 50px ${alpha("#000", 0.16)}`\n },\n "&.Mui-active": {\n boxShadow: `0px 0px 0px 8px ${alpha("#000", 0.16)}`\n }\n }}\n >\n Change default props\n </Button>\n );\n}\n
Run Code Online (Sandbox Code Playgroud)\n我已经使用 Mui-focusVisible 在单击时应用阴影,如此处提到的是文档
\n\n\ndisableRipple bool false
\n
\n如果为 true,则禁用波纹效果。\n\xe2\x9a\xa0\xef\xb8\x8f 如果没有波纹,则默认情况下没有 :focus-visible 样式。请务必通过使用 .Mui-focusVisible 类应用单独的样式来突出显示该元素。
我的主要目的是实现和Ant Design一样的点击效果。检查此处的按钮: https: //ant.design/components/button/
\n沙箱:https://codesandbox.io/s/defaultprops-material-demo-forked-rhggn? file=/demo.js
\n谁能帮我吗?
\nRok*_*nko 15
disableRipple
通过添加以下内容来禁用波纹效果:
<Button disableRipple>Text</Button>
Run Code Online (Sandbox Code Playgroud)
魔法发生在style.css
文件内部。请参阅分叉的CodeSandbox 片段。
编辑
由于您希望代码位于内部,因此sx
我将代码从style.css
文件移动到App.js
文件并将其放置在sx
. 请参阅 StackBlitz 片段。
应用程序.js
import React from 'react';
import Button from '@mui/material/Button';
import './style.css';
export default function App() {
return (
<Button
variant="outlined"
disableRipple
sx={{
borderRadius: '5px',
'&::after': {
content: '""',
display: 'block',
position: 'absolute',
left: 0,
top: 0,
width: '100%',
height: '100%',
opacity: 0,
transition: 'all 0.5s',
boxShadow: '0 0 10px 10px rgba(0, 123, 255, 0.5)',
},
'&:active::after': {
boxShadow: '0 0 0 0 rgba(0, 123, 255, 0.5)',
position: 'absolute',
borderRadius: '5px',
left: 0,
top: 0,
opacity: 1,
transition: '0s',
},
}}
>
Change default props
</Button>
);
}
Run Code Online (Sandbox Code Playgroud)
索引.js
import React from "react";
import ReactDOM from "react-dom";
import App from "./App";
ReactDOM.render(<App />, document.getElementById("root"));
Run Code Online (Sandbox Code Playgroud)
索引.html
<div id="root"></div>
Run Code Online (Sandbox Code Playgroud)
样式.css
// Empty
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17807 次 |
最近记录: |