第一个作业

-----------------------------------------------------------------------------------------html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>前端作业</title>
    <link rel="stylesheet" href="index.css">
    <script src="./vue.js"></script>
</head>
<body>
    <div class="page-top">
        <div class="top-bg">
            <h2 id="hideshow">前端作业一个</h2>
        </div>
    </div>
    <div class="main">
        <h3 class="big-title">添加:</h3>
        <input 
            placeholder="写下你的作业宣言吧" 
            class="task-input" 
            type="text"
            v-model="todo"
            v-on:keyup.13="addTodo"
        />
        <ul class="task-count" v-show="list.length">
            <li>{{noCheckeLength}}吃饭睡觉打豆豆,点击Enter添加</li>
        </ul>
        <h3 class="big-title">你的作业:</h3>
        <div class="tasks">


            <span class="no-task-tip" v-show="!list.length">没作业</span>
            <ul class="todo-list">
                <li class="todo" :class="{completed: item.isChecked,editing: item === edtorTodos}" v-for="item in list" >
                    <div class="view">
                        <input class="toggle" type="checkbox" v-model="item.isChecked" />
                        <label @dblclick="edtorTodo(item)">{{ item.title }}</label>
                        <button class="destroy" @click="deleteTodo(item)"></button>
                    </div>
                    <input 
                        v-foucs="edtorTodos === item" 
                        class="edit" 
                        type="text" 
                        v-model = "item.title"
                        @blur="edtorTodoed(item)"
                        @keyup.13="edtorTodoed(item)"
                        @keyup.esc="cancelTodo(item)"
                    />
                </li>
            </ul>
        </div>
    </div>
    <script src="./app.js"></script>


</body>
</html>

-----------------------------------------------------------------------------------------css:

body {
    margin:0;
    background-color: #fafafa;
background:url(team.png) no-repeat 50px center;


    font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif;
}




.todo:nth-child(odd){background:#0C9}
.todo:nth-child(even){background:#63C}


h2{
    margin:0;
    font-size: 12px;
    background:url(logo.png) no-repeat 0 center;

}
a {
    color:#000;
    text-decoration: none;
}


input {
    outline: 0;
}


button {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    font-size: 100%;
    vertical-align: baseline;
    font-family: inherit;
    font-weight: inherit;
    color: inherit;
    outline: 0;
}


ul {
    padding:0;
    margin:0;
    list-style: none;
}


.page-top {
    width: 100%;
    height: 78px;
    background-color: #000;

}


.top-bg {
    width: 50%;
    margin: 0px auto;
}


.top-bg h2{
    line-height: 40px;
    font-size: 26px;
    color: #F96;
line-height:78px;
padding-left:181px;
}


.main {
    width: 50%;
    margin: 0px auto;
    box-sizing:border-box;
}


.task-input {
    width: 99%;
    height:30px;
    outline: 0;
    border: 1px solid #ccc;
background-color:#F93;
}


.task-count{
    display: flex;
    margin:10px 0;
}


.task-count li {
    padding-left: 10px;
    flex: 1;
    color: #dd4b39;
}


.task-count li:nth-child(1){
    padding: 5px 0 0 10px;
font-size:18px;
color:#30F;
}


.action {
    text-align: center;
    display: flex;
}
.action a {
    margin: 0px 10px;
    flex: 1;
    padding: 5px 0;
    color: #777;


}


.action a:nth-child(3){
    margin-right: 0;
}


.active {
    border: 1px solid rgba(175, 47, 47, 0.2);
}


.tasks {
    background-color: #fff;
}
.no-task-tip {
    padding:10px 0 10px 10px;
    display: block;
    border-bottom: 1px solid #ededed;
    color:#777;
}


.big-title {
    color: #222;
}




.todo-list {
    margin: 0;
    padding: 0;
    list-style: none;
}


.todo-list li {
    position: relative;
    font-size: 16px;
    border-bottom: 1px solid #ededed;
}


.todo-list li:hover {
    background-color: #fafafa;
}




.todo-list li.editin


-----------------------------------------------------------------------------------------JS:


var list = [

{
title:"今天交作业",
isChecked:false
},
{
title:"不想写作业",
isChecked: true
},
{
title:"想写作业了",
isChecked:true
},
{
title:"不会写作业",
isChecked:true
},
{
title:"会写作业了",
isChecked:true
},
{
title:"交作业了",
isChecked:true
},
{
title:"祝贺一下",
isChecked:false
}

];


new Vue({
el:".main",
data:{
list:list,
todo:"",
edtorTodos:'',   
beforeTitle:''  
},
computed:{
noCheckeLength:function(){
return this.list.filter(function(item){
                return !item.isChecked
            }).length
}
},
methods:{
addTodo(){this.list.push({title:this.todo,isChecked:false});
alert('不写作业就睡觉')
this.todo = '';
},
deleteTodo(todo){ 
var index = this.list.indexOf(todo);
this.list.splice(index,1);alert('你要写作业了?')
},
edtorTodo(todo){  
console.log(todo);

this.beforeTitle = todo.title;


this.edtorTodos = todo;




},
edtorTodoed(todo){
this.edtorTodos = '';
},
cancelTodo(todo){ 


todo.title = this.beforeTitle;


this.beforeTitle = '';



this.edtorTodos = '';
}
},
directives:{
"foucs":{
update(el,binding){
if(binding.value){
el.focus();
}
}
}
}
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值