React 获取元素的style,实现旋转刷新特效
一、功能需求
如下图所示:利用react点击“换一换”实现小图标旋转刷新效果
二、index.js代码:
html:
<SearchInfoSwitch onClick={() => {handleChangePage(page, totalPage, this.spinIcon)}}>
{/* ref==获取元素dom */}
<i ref={(icon) => {this.spinIcon = icon}} className="iconfont spin"></i>
换一批
</SearchInfoSwitch>
ps:这里是利用react的ref 获取dom元素,从而进行修改其样式
css:
export const SearchInfoSwitch = styled.div`
float: right;
font-size: 13px;
color: #969696;
background-color: transparent;
border-width: 0;
padding: 0;
text-decoration: none;
.spin{
float: left;
display: block;
font-size:12px;
margin-right: 5px;
transition: all .2s ease-in;
transform-origin: center center;
}
`
三、功能实现
handleChangePage(page, totalPage, spin) {
// 如果不是0-9的数字,都替换成空
let originAngle = spin.style.transform.replace(/[^0-9]/ig, '');
if (originAngle) {
originAngle = parseInt(originAngle, 10);
} else {
originAngle = 0;
}
spin.style.transform ='rotate('+(originAngle+360)+'deg)';
if(page < totalPage){
dispath(actionCreators.changePage(page+1))
} else {
dispath(actionCreators.changePage(1))
}
}
ps:当点击换一批的时候,dom元素的transform的值发生变化。从而实现点击旋转的效果。(需要点击换一批数据分页效果的可以加QQ找我要)























