Vue实现ToDoList

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title></title>
	<style>
		*{
			margin: 0;
			padding: 0;
		}
		body{
		    margin: 0;
		    padding: 0;
		    font-size: 16px;
		    background: #CDCDCD;
		}
		header{
		    height: 50px;
		    background: #333;
		    background: rgba(47,47,47,0.98);
		}
		section{
    		margin: 0 auto;
		}
		@media screen and (min-width: 620px){
			section{
			    width: 600px;
			    padding: 0 10px;
			}
		}
		label{
		    float: left;
		    width: 100px;
		    line-height: 50px;
		    color: #DDD;
		    font-size: 24px;
		    cursor: pointer;
		    font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
		}
		header input{
		    float: right;
		    width: 60%;
		    height: 24px;
		    margin-top: 12px;
		    text-indent: 10px;
		    border-radius: 5px;
		    box-shadow: 0 1px 0 rgba(255,255,255,0.24), 0 1px 6px rgba(0,0,0,0.45) inset;
		    border: none;
		}
		h2{
			position: relative;
		    display: block;
		    font-size: 1.5em;
		    margin-block-start: 0.83em;
		    margin-block-end: 0.83em;
		    margin-inline-start: 0px;
		    margin-inline-end: 0px;
		    font-weight: bold;
		}
		span{
		    position: absolute;
		    top: 2px;
		    right: 5px;
		    display: inline-block;
		    padding: 0 5px;
		    height: 20px;
		    border-radius: 20px;
		    background: #E6E6FA;
		    line-height: 22px;
		    text-align: center;
		    color: #666;
		    font-size: 14px;
		}
		ol,ul{
		    padding: 0;
		    list-style: none;
		}
		li{
		    height: 32px;
		    line-height: 32px;
		    background: #fff;
		    position: relative;
		    margin-bottom: 10px;
		    padding: 0 45px;
		    border-radius: 3px;
		    border-left: 5px solid #629A9C;
		    box-shadow: 0 1px 2px rgba(0,0,0,0.07);
		}
		li input{
		    position: absolute;
		    top: 6px;
		    left: 10px;
		    width: 22px;
		    height: 22px;
		    cursor: pointer;
		}
		li a{
		    position: absolute;
		    top: 2px;
		    right: 5px;
		    display: inline-block;
		    width: 14px;
		    height: 12px;
		    border-radius: 14px;
		    border: 6px double #FFF;
		    background: #CCC;
		    line-height: 14px;
		    text-align: center;
		    color: #FFF;
		    font-weight: bold;
		    font-size: 14px;
		    cursor: pointer;
		}
	</style>
</head>
<body>
	<div id="app">
		<header>
			<section>
				<label for="title">ToDoList</label>
				<input v-model="value" @keyup="enter($event)" type="text" id="title" name="title" placeholder="添加ToDo" required="required" autocomplete="off">
			</section>
		</header>
		<section>
			<h2>
				正在进行
				<span id="todocount">{{ todoarr.length }}</span>
			</h2>
			<ol id="todolist" class="demo-box">
				<li v-for="(item,index) in todoarr">
					<input type="checkbox" @change="check1(index)" :key="+todo">{{ item }}
					<a @click="del1(index)">-</a>
				</li>
			</ol>
			<h2>
				已经完成
				<span id="donecount">{{ donearr.length }}</span>
			</h2>
			<ul id="donelist">
				<li v-for="(item,index) in donearr">
					<input type="checkbox" checked @change="check2(index)" :key="+done">{{ item }}
					<a @click="del2(index)">-</a>
				</li>
			</ul>
		</section>	
    </div>
</body>
</html>
<script src="https://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script type="text/javascript">
	const vm = new Vue({
		el: "#app",
		data:{
			value: '',
			todoarr: [],
			donearr: [],
		},
		methods:{
			enter: function (e) {
				if(e.keyCode == 13){
					vm.todoarr.push(vm.value);
					vm.value = '';
				}
			},
			check1: function (index) {
				vm.donearr.push(vm.todoarr[index]);
				vm.todoarr.splice(index,1);
			},
			check2: function (index) {
				vm.todoarr.push(vm.donearr[index]);
				vm.donearr.splice(index,1);
			},
			del1: function (index) {
				vm.todoarr.splice(index,1);
			},
			del2: function (index) {
				vm.donearr.splice(index,1);
			}
		}
	})
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值