todoList案例react版本:鼠标移入效果
鼠标移入事项时,事项所在行背景色变为浅灰色,且显示删除按钮。
鼠标移出事项时,事项所在行背景色变为白色,且不显示删除按钮。
对此,有两种实现方式,
- css实现
- js实现
css实现
代码变更涉及的文件有,
- Item/index.jsx
- Item/index.css
Item/index.jsx(Item组件)
变动部分:<button className="btn btn-danger" style={{display:'none'}}>删除</button>
。
import React, { Component } from 'react'
import "./index.css";
export default class Item extends Component {
handleChange = (id) => {
return (event) => {
this.props.checkTodo(id,event.target.checked);
}
}
render() {
const {id,title,done} = this.props;
const {handleChange} = this;
return (
<li>
<label>
<input type="checkbox" defaultChecked={done} onChange={handleChange(id)}/>
<span>{title}</span>
</label>
<button className="btn btn-danger">删除</button>
</li>
)
}
}
Item/index.css(Item组件)
变动部分: li:hover{ background: #ddd; }
和 li:hover button{ display: block!important; }
。
li {
list-style: none;
height: 36px;
line-height: 36px;
padding: 0 5px;
border-bottom: 1px solid #ddd;
}
li label {
float: left;
cursor: pointer;
}
li label li input {
vertical-align: middle;
margin-right: 6px;
position: relative;
top: -1px;
}
li button {
float: right;
display: none!important;
margin-top: 3px;
}
li:before {
content: initial;
}
li:last-child {
border-bottom: none;
}
li:hover{
background: #ddd;
}
li:hover button{
display: block!important;
}
js实现
代码更改涉及的文件有,
- Item/index.jsx,即Item组件
Item/index.jsx(Item组件)
鼠标移入时,状态数据isMouseEnter置为true,li标签背景色设置为浅灰色,显示删除按钮;
鼠标移出时,状态数据isMouseEnter置为false,li标签背景色设置为白色,不显示删除按钮。
import React, { Component } from 'react'
import "./index.css";
export default class Item extends Component {
state = {
isMouseEnter:false
}
handleMouse = (flag) => {
return () => {
this.setState({isMouseEnter:flag})
}
}
handleChange = (id) => {
return (event) => {
this.props.checkTodo(id,event.target.checked);
}
}
render() {
const {isMouseEnter} = this.state;
const {id,title,done} = this.props;
const {handleChange,handleMouse} = this;
return (
<li
onMouseEnter={handleMouse(true)}
onMouseLeave={handleMouse(false)}
style={{background:isMouseEnter?'#ddd':'white'}}
>
<label>
<input type="checkbox" defaultChecked={done} onChange={handleChange(id)}/>
<span>{title}</span>
</label>
<button className="btn btn-danger" style={{display:isMouseEnter?"block":"none"}}>删除</button>
</li>
)
}
}
相关链接
todoList案例(react版本)之搭建静态页面
todoList案例(react版本)之初始化列表
todoList案例(react版本)之添加todo
todoList案例(react版本)之勾选/去勾选todo
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfhefj
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01