Vue TodoList 解析 2.编辑完成状态和删除

一、completed编辑状态

设置todo数组内completed状态,CSS设置完成状态

1、增加一个判断的样式

<li> 标签内增加属性 :class="{completed:todo.completed}"
给当前的todo list 增加一个completed类,当todo.completed值为true该类生效;在methods方法中,新增一个todo list时todo.completed值都是false。

2、增加checkbox

在li内增加一个checkbox,勾选代表完成。该checkbox的双向绑定v-model="todo.completed"

3、label元素包裹{{todo.title}},最终CSS用于label
completed代码
4、设置CSS
.todo-list li.completed label {
    color: #d9d9d9;
    text-decoration: line-through;
}

当todo.completed为true时,既匹配到以上CSS,效果生效。

二、删除

1、 增加删除按钮

在<li>中增加button按钮,定义样式名称为destroy,@click="removeTodo(todo)"

2、定义methods方法
removeTodo(todo):function(){
this.todos.splice(this.todos.indexOf(todo),1)

3、定义destroy的样式

.todo-list li .destroy {
    display: none;
    position: absolute;
    top: 0;
    right: 10px; #af5b5e;
    bottom: 0;
    width: 40px;
    height: 40px;
    margin: auto 0;
    font-size: 30px;
    color: #cc9a9a;
    margin-bottom: 11px;
    transition: color 0.2s ease-out;
}

.todo-list li .destroy:hover {
    color: #af5b5e;
}

.todo-list li .destroy:after {
    content: '×';
}

.todo-list li:hover .destroy {
    display: block;
}
最终效果截图
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一节:初识Angular-CLI第二节:登录组件的构建第三节:建立一个待办事项应用第四节:进化!模块化你的应用第...
    接灰的电子产品阅读 13,715评论 64 25
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,805评论 1 92
  • 这是vue官网的一个例子,挺适合作为vue应用的入门的。通过这个应用,我们能学到vue的【双向绑定】,【v-for...
    进击的前端阅读 10,090评论 3 33
  • 我们最好的盟友并不是一直支持我们的人,而是那些一开始反对我们,然后转向支持我们的人。 很多孕妈妈说,我要顺产,我不...
    小纯说阅读 371评论 0 1
  • 1.13a+b procedure 手续,流程;手术(surgical procedure) proceed 进行...
    03ba3a5b361c阅读 77评论 0 0