如何让 'Reactjs Modal' 出现在屏幕上从右到中飞
How to make 'Reactjs Modal' appearing in screen flying from right to centre
我有一个反应模式。调用时,它会在浏览器中心打开 window。我想对 Modal 打开样式进行一些更改。
调用 Modal 时,它应该从右侧飞到中心。我不知道 property/attribute 可以实现这样的外观。有人可以帮忙吗?
这是我目前的造型:
customStyles = {
overlay: {
position: 'fixed',
top: 0,
left: 0,
right: 0,
bottom: 0,
backgroundColor: 'rgba(255,255,255,0.75)'
},
content: {
display: 'relative',
position: 'absolute',
textAlign: 'Center',
top: '20%',
left: '20%',
right: '20%',
bottom: '4%',
border: '6px solid #ccc',
background: '#fff',
overflow: 'auto',
WebkitOverflowScrolling: 'touch',
borderRadius: '4px',
outline: 'none',
padding: '20px',
paddingLeft: '40px'
}};
添加
transform: 'translate(-50%, -50%)'
给你的 Content
class.
另一种选择是使用不同的 React 模态组件,例如 https://www.npmjs.com/package/react-modal-slider
添加这个class名字
示例:
.modal-center{
animation: left-to-center linear 1s;
animation-iteration-count: 1;
transform-origin: 50% 50%;
-webkit-animation: left-to-center linear 1s;
-webkit-animation-iteration-count: 1;
-webkit-transform-origin: 50% 50%;
-moz-animation: left-to-center linear 1s;
-moz-animation-iteration-count: 1;
-moz-transform-origin: 50% 50%;
-o-animation: left-to-center linear 1s;
-o-animation-iteration-count: 1;
-o-transform-origin: 50% 50%;
-ms-animation: left-to-center linear 1s;
-ms-animation-iteration-count: 1;
-ms-transform-origin: 50% 50%;
}
@keyframes left-to-center{
0% {
transform: translate(250px,0px) ;
}
100% {
transform: translate(0px,0px) ;
}
}
@-moz-keyframes left-to-center{
0% {
-moz-transform: translate(250px,0px) ;
}
100% {
-moz-transform: translate(0px,0px) ;
}
}
@-webkit-keyframes left-to-center {
0% {
-webkit-transform: translate(250px,0px) ;
}
100% {
-webkit-transform: translate(0px,0px) ;
}
}
@-o-keyframes left-to-center {
0% {
-o-transform: translate(250px,0px) ;
}
100% {
-o-transform: translate(0px,0px) ;
}
}
@-ms-keyframes left-to-center {
0% {
-ms-transform: translate(250px,0px) ;
}
100% {
-ms-transform: translate(0px,0px) ;
}
}
我有一个反应模式。调用时,它会在浏览器中心打开 window。我想对 Modal 打开样式进行一些更改。 调用 Modal 时,它应该从右侧飞到中心。我不知道 property/attribute 可以实现这样的外观。有人可以帮忙吗? 这是我目前的造型:
customStyles = {
overlay: {
position: 'fixed',
top: 0,
left: 0,
right: 0,
bottom: 0,
backgroundColor: 'rgba(255,255,255,0.75)'
},
content: {
display: 'relative',
position: 'absolute',
textAlign: 'Center',
top: '20%',
left: '20%',
right: '20%',
bottom: '4%',
border: '6px solid #ccc',
background: '#fff',
overflow: 'auto',
WebkitOverflowScrolling: 'touch',
borderRadius: '4px',
outline: 'none',
padding: '20px',
paddingLeft: '40px'
}};
添加
transform: 'translate(-50%, -50%)'
给你的 Content
class.
另一种选择是使用不同的 React 模态组件,例如 https://www.npmjs.com/package/react-modal-slider
添加这个class名字
示例:
.modal-center{
animation: left-to-center linear 1s;
animation-iteration-count: 1;
transform-origin: 50% 50%;
-webkit-animation: left-to-center linear 1s;
-webkit-animation-iteration-count: 1;
-webkit-transform-origin: 50% 50%;
-moz-animation: left-to-center linear 1s;
-moz-animation-iteration-count: 1;
-moz-transform-origin: 50% 50%;
-o-animation: left-to-center linear 1s;
-o-animation-iteration-count: 1;
-o-transform-origin: 50% 50%;
-ms-animation: left-to-center linear 1s;
-ms-animation-iteration-count: 1;
-ms-transform-origin: 50% 50%;
}
@keyframes left-to-center{
0% {
transform: translate(250px,0px) ;
}
100% {
transform: translate(0px,0px) ;
}
}
@-moz-keyframes left-to-center{
0% {
-moz-transform: translate(250px,0px) ;
}
100% {
-moz-transform: translate(0px,0px) ;
}
}
@-webkit-keyframes left-to-center {
0% {
-webkit-transform: translate(250px,0px) ;
}
100% {
-webkit-transform: translate(0px,0px) ;
}
}
@-o-keyframes left-to-center {
0% {
-o-transform: translate(250px,0px) ;
}
100% {
-o-transform: translate(0px,0px) ;
}
}
@-ms-keyframes left-to-center {
0% {
-ms-transform: translate(250px,0px) ;
}
100% {
-ms-transform: translate(0px,0px) ;
}
}