这是一个小小的网页记忆便签,长这个样子。

一、怎么用

可以用它来记录自己的待办事项,首先在任务栏输入要添加的事项名称,点击添加事项就会自动加入待办列表里。

然后在事件列表里。可以对该事件进行操作,如果已经完成了这件事,点击事件名,事件就会被划掉(再次点击取消划线)。点击事件右侧的小叉,这个事件就会被完全删掉。

二、如果实现

HTML结构:

<div id="todoList"><div class="todoList-header"><h2>待办事项</h2><div class="todoList-operation"><input type="text" id="add-task-input" placeholder="任务名称"><button id="js-add-task" type="button">添加任务</button></div></div><ul class="todoList-content"><li class="task checked"><p class="text">观看《我不是药神》</p><span class="close">x</span></li><li class="task"><p>准备工作汇报资料</p><span class="close">x</span></li><li class="task"><p>背十个英文单词</p><span class="close">x</span></li><li class="task"><p>三组腹肌撕裂者训练</p><span class="close">x</span></li></ul></div>

CSS:

* {box-sizing: border-box;
}ul, li, p{margin: 0;padding: 0;list-style: none;
}#todoList {width: 80%;max-width: 460px;margin: 20px auto;
}.todoList-header {background-color: #c7eb62;padding: 10px 30px 30px;color: #434343;text-align: center;
}.todoList-operation {position: relative;padding-right: 110px;
}.todoList-header input {width: 100%;padding: 10px;font-size: 16px;vertical-align: middle;
}.todoList-header button {position: absolute;right: 0;top: 0;width: 110px;border: none;background: #d9d9d9;text-align: center;font-size: 16px;padding: 10px;
}.todoList-header button:hover {background-color: #bbb;
}.todoList-content  li {cursor: pointer;position: relative;padding: 12px 8px 12px 50px;background: #eee;font-size: 18px;transition: 0.2s;
}.todoList-content li:hover {background: #ddd;
}.todoList-content li.checked {text-decoration: line-through;
}.todoList-content li.checked::before {content: '';position: absolute;border-color: #0eb312;border-style: solid;border-width: 0 4px 4px 0;top: 10px;left: 16px;transform: rotate(45deg);height: 16px;width: 7px;
}.todoList-content .close {position: absolute;color: #000;right: 0;top: 0;padding: 12px 15px 12px 15px;
}.todoList-content .close:hover {background-color: #f44336;color: white;
}

Javascript

(一) 添加待办事项

主要流程是: 点击添加任务按钮——将预先设置的HTML模板及输入框里的文字,添加进事件列表里。最后再清空输入框里的文字。

        var addTask = document.getElementById('js-add-task');var taskInput = document.getElementById('add-task-input');var task = document.getElementsByClassName('task');var close = document.getElementsByClassName('close');var todolist = document.querySelector('.todoList-content');addTask.onclick = function (){if(taskInput.value.length > 0){var cont = '<li class="task">' + '<p>' + taskInput.value + '</P>' + '<span class="close">x</span>'; var elem = document.createElement('li');var newElem = todolist.appendChild(elem);newElem.outerHTML = cont;taskInput.value = '';} else {alert('请输入任务名称');}};

(二)事项列表

已经处理的事项分为两种:1、点击添加划线。 2、点击取消划线。

点击事件项,对事件项<li>元素的class属性进行判定如果已经被打上checked的标记,取消划线;如果没有,则添加check标记。

由于事件处理器里的事件对象使用的是实际点击对象(event.target),就会造成点击到<li>元素的子元素,为此再额外增加一条判断,如果是子元素(由于<span>也是<li>的子元素,所以要先确定点击的目标是<p>),就找到它的父元素,再执行点击事件项的判断。

最后,判断点击如果是<span>,则删掉这一条事件项。

大功告成!

        todolist.addEventListener('click', function(event){switch(event.target.className){case 'task checked':event.target.setAttribute('class', 'task');break;case 'task':event.target.setAttribute('class', 'task checked');break;}if(event.target.nodeName == 'P'){switch(event.target.parentNode.className){case 'task checked':event.target.parentNode.setAttribute('class', 'task');break;case 'task':event.target.parentNode.setAttribute('class', 'task checked');break;}} else if(event.target.nodeName == 'SPAN') {this.removeChild(event.target.parentNode);}}, false);

转载于:https://www.cnblogs.com/pine-cone/p/9311108.html

javascript——记忆小便签相关推荐

  1. 华为电脑计算机怎么显示在桌面,电脑桌面小便签,华为电脑怎么设置桌面便签...

    原标题:电脑桌面小便签,华为电脑怎么设置桌面便签 电脑上有什么桌面小便签?华为电脑怎么设置桌面便签使用?华为电脑可以使用Windows系统,Windows系统上其实是有自带的桌面小便签工具的,打开电脑 ...

  2. 如何恢复win10小便签中误删的重要信息

    **如何恢复win10小便签中误删的重要信息** 链接: 原文转自百度知道. 1.双击点击桌面上的"计算机". 2.在"计算机"的地址栏输入 %appdata% ...

  3. JavaScript选项卡/页签/Tab的实现

    选项卡,也称页签,英文用Tab(Module-Tabs)表示.Tab将不同的内容重叠放在一个布局块内,重叠的内容区里每次只有其中一个是可见的. Tab可以在相同的空间里展示更多的信息,它把相似的主题分 ...

  4. windowsNote(小便签)

    平常都是把我的plan放在手机的note中,近日想搞个桌面的note,于是就用Qt做了一个,功能比较简单,毕竟便签嘛复杂了就不叫便签了. 功能设计: 1.记录学习或工作计划,与桌面显示以便每日工作有个 ...

  5. 高效工作的法宝推荐,小小便签助你快人一步

    现在不论是什么工作,都十分注重效率.说到提高效率,很多人都十分苦恼,其实现在市面上有很多软件可以称得上为高效工作的法宝,帮助我们摆脱"每天都很忙,却又不知道都忙了些啥"的情况. 敬 ...

  6. JSON实现桌面可移动的小便签

    大多数的管理系统都会有个主程序的桌面,而且上面放置了一个常用的快捷方式或便捷的信息,比如邮件,通知,即丰富了系统内容又能够使用户在第一时间内浏览的信息. 跟XML相比,JSON的优势在于格式简洁短小, ...

  7. 电脑桌面便签小工具_可以直接在桌面上显示内容的便签软件电脑版

    电脑上可以直接在桌面显示内容的便签小工具有很多,比如系统便笺,比如敬业签商务办公云便签,以上班族经常会使用的敬业签桌面工作小便签为例,在电脑桌面上编辑.显示便签内容的主要方法是: 1.点击便签程序顶部 ...

  8. 电脑显示没有被指定在上运行_可以桌面显示的便条便签怎么弄?有没有电脑桌面上的便条贴...

    去采购办公用品时,不难在商店中看到一些方便在工作时记事使用的便签条.便签纸等,便签纸可以用来写留言,便签条可以用来列计划清单,对于工作事务繁杂的上班族来说,利用便签条.便签纸记录工作事项,着实是一个简 ...

  9. vb把窗体嵌入桌面底层_桌面透明便签插件便签软件

    电脑上有哪些可以透明显示的桌面便签小插件吗?Windows电脑上有可以透明显示的便签小插件吗?这篇文章,小编就为大家解答下这个问题. Windows电脑上需要透明的便签小插件,可以打开软件管家搜索安装 ...

最新文章

  1. [导入]Learning.ASP.NET 2.0.with.AJAX.pdf(14.14 MB)
  2. 用python画四叶草代码-python—字符串拼接三种方法
  3. android 发送重启广播,Android实现关机重启的方法分享
  4. 还在使用if else写代码?试试 “策略模式” 吧!
  5. Android TextView多行文本滚动实现
  6. JMETER从数据库获取数据作为脚本参数
  7. 网络基础知识(黑马教程笔记)-4-http请求与响应的处理
  8. java swing 组件渲染过程,swing组件介绍
  9. POJ2545-丑数
  10. idea更新git报错master has no tracked branch
  11. python的小tips
  12. DRF框架(十四)——过滤Filtering,排序
  13. 无线路由器连接无线路由器
  14. adb 连接某个wifi_adb wifi 测试(无需root)
  15. 周浩正:写给编辑人的信 从“紫牛”说起
  16. 华为交换机dhcp获取不到_华为S7706交换机DHCP Server 配置不成功问题
  17. windows按照title开启和关闭进程
  18. OpenCV-颜色通道的分离、合并
  19. 曾做erp开发工程师,谈下自己的经验
  20. 百度地图-新手入门教程

热门文章

  1. Java自学笔记 — 面向对象1
  2. 华为交换机开启 DAI功能
  3. 走楼梯(stairs)
  4. K歌宝全国产化电子元件推荐方案
  5. 学海记录项目测试报告
  6. 38-java-输出图片
  7. BAT将干不过33.cn复杂美?
  8. Python----virtualenv虚拟沙盘
  9. TypeScript+Vue
  10. 易基因-单细胞甲基化测序单细胞转录组测序