离线记事本

这是一个笔记应用,不需要联网,也不需要数据库,可以直接把数据储存在本地.方便易用! ^_^

  1. <!DOCTYPE html> 

  2. <html> 

  3. <head> 

  4. <meta charset="UTF-8"> 

  5. <title>记事本</title> 

  6. <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> 

  7. <style> 

  8. *{ margin: 0; padding: 0; box-sizing: border-box; font-family: 'Microsoft Yahei'; font-size: 14px; box-sizing: border-box;} 

  9. h1{text-align: center; font-size: 26px; line-height: 60px;color: #ff8140;} 

  10. .main{margin: 10px auto;width: 1000px; overflow: hidden; height: 500px;padding: 1%;border: 1px solid #ddd; border-radius: 5px;} 

  11. input{ width: 92%; padding: 5px; outline: none;border: 1px solid #eee;} 

  12. textarea{ width: 100%; overflow: hidden; padding: 5px; outline: none; resize:none; } 

  13. textarea:focus,input:focus { border-color: #f77c3d; } 

  14. .write{padding: 10px; border-radius: 3px; background: #eee; overflow: hidden; float: left;width: 48%;} 

  15. .send{ background: #ff8140; border: 1px solid #f77c3d; color: #fff; box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.25); 

  16. width: 80px; height: 30px; text-align: center; line-height: 30px; border-radius: 3px; float: right; cursor: pointer; } 

  17. .list{padding: 10px; float: left;width: 50%;} 

  18. .item{padding: 10px;border: 1px solid #eee;border-radius: 3px;margin-bottom: 10px;} 

  19. .item .content{padding: 20px 10px;word-break:break-all;background: #fff; display: none;} 

  20. .title{padding-bottom: 5px;border-bottom: 1px solid #eee;cursor: pointer;} 

  21. .title span{color: #999; font-size: 12px;float: right;} 

  22. #noteList{overflow-y: scroll;height: 350px;box-shadow: 0 0 3px #ddd;} 

  23. </style> 

  24. </head> 

  25. <body> 

  26. <h1>记事本</h1> 

  27. <div class="main"> 

  28. <div class="write" id="write"> 

  29. 标题: <input id="title" type="text" placeholder="请输入标题"><br><br> 

  30. 分类: <select id="type"> 

  31. <option value="默认" selected>-请选择-</option> 

  32. <option value="美食">美食</option> 

  33. <option value="代码">代码</option> 

  34. <option value="生活">生活</option> 

  35. </select> 

  36. <br><br> 

  37. <textarea name="" id="cont" cols="30" rows="10" placeholder="今天想说点啥..."></textarea> 

  38. <div class="send" id="add">添加</div> 

  39. </div> 

  40. <div class="list" id="list"> 

  41. 标题: <input id="title1" type="text" placeholder="查询标题"><br><br> 

  42. 分类: <select id="type1"> 

  43. <option value="默认" selected>-请选择-</option> 

  44. <option value="美食">美食</option> 

  45. <option value="代码">代码</option> 

  46. <option value="生活">生活</option> 

  47. </select> 

  48. <div id="search" class="send">查询</div><br><br> 

  49. <div id="noteList"></div> 

  50. </div> 

  51. </div> 

  52. <script type="template" id="temp"> 

  53. <div class="item"> 

  54. <div class="title">@title<span>@type: @date</span></div> 

  55. <div class="content">@cont</div> 

  56. </div> 

  57. </script> 

  58. <script> 

  59. $(function(){ 

  60. var init = {title:'这是标题', 

  61. date:new Date().toLocaleString(), 

  62. type:'示例', 

  63. cont:'这是一个笔记应用,不需要联网,也不需要数据库,可以直接把数据储存在本地.方便易用!^_^'}; 

  64. function show(notes){ 

  65. var temp = $('#temp').html(); 

  66. var tempStr= ''; 

  67. //如果不是数组,变成数组 

  68. if(!Array.isArray(notes)){ 

  69. notes = [notes]; 



  70. for(var i=notes.length-1;i>-1;i--){ 

  71. var note = notes[i]; 

  72. tempStr += temp.replace('@title',note.title) 

  73. .replace('@date',note.date) 

  74. .replace('@type',note.type) 

  75. .replace('@cont',note.cont); 



  76. $('#noteList').html(tempStr); 




  77. //读取所有数据 

  78. function showList(){ 

  79. var notes = localStorage.getItem('notes'); 

  80. if(!notes){ 

  81. show(init); 

  82. }else{ 

  83. notes = JSON.parse(notes); 

  84. show(notes); 



  85. //第一个展开 

  86. $('#noteList .item:first').find('.title').trigger('click'); 




  87. $('#add').click(function(){ 

  88. var title = $('#title').val(); 

  89. var cont = $('#cont').val(); 

  90. var type = $('#type').val(); 

  91. if(title == ''){ 

  92. alert('标题不能为空!'); 

  93. return; 



  94. var data = {title:title,cont:cont,type:type,date:new Date().toLocaleString()}; 

  95. var notes = localStorage.getItem('notes'); 

  96. if(!notes){ 

  97. notes = []; 

  98. }else{ 

  99. notes = JSON.parse(notes); 



  100. notes.push(data); 

  101. localStorage.setItem('notes',JSON.stringify(notes)); 

  102. showList(); 

  103. }); 


  104. $('#search').click(function(){ 

  105. var title = $('#title1').val(); 

  106. var type = $('#type1').val(); 

  107. var notes = localStorage.getItem('notes'); 

  108. if(!notes){ 

  109. alert('没有本地笔记数据!'); 

  110. return; 

  111. }else{ 

  112. notes = JSON.parse(notes); 



  113. var note = []; 

  114. for(var i=0;i<notes.length;i++){ 

  115. //notes[i] json对象 

  116. var flag = false; 

  117. if(!title){ 

  118. flag = notes[i].type==type; 

  119. }else if(!type){ 

  120. flag = notes[i].title.indexOf(title)>-1; 

  121. }else{ 

  122. flag = notes[i].title.indexOf(title)>-1 && notes[i].type==type; 



  123. if(flag){ 

  124. note.push(notes[i]); 





  125. if(note.length == 0){ 

  126. alert('抱歉~没有对应的笔记!'); 

  127. }else{ 

  128. show(note); 



  129. }); 


  130. $('body').on('click','#noteList .title', function(){ 

  131. $(this).next().slideToggle(); 

  132. }); 


  133. showList(); 

  134. }) 

  135. </script> 

  136. </body> 

  137. </html> 

html5离线记事本的更多相关文章

  1. 1分钟快速制作漂亮的Html5本地记事本

    大家好,以前给大家分享过一个五步骤制作精美的HTML5时钟的文章,点击回顾<五步教你制作漂亮精致的HTML时钟>,还有<一分钟教你如何实现唯美的文字描边>:今天给大家分享一个用 ...

  2. HTML5离线缓存(Application Cache)

    HTML5离线缓存又名Application Cache,是从浏览器的缓存中分出来的一块缓存区,要想在这个缓存中保存数据,可以使用一个描述文件(manifest file),列出要下载和缓存的资源. ...

  3. HTML5 离线缓存管理库

    一.HTML5离线缓存技术 支持离线缓存是HTML5中的一个重点,离线缓存就是让用户即使在断网的情况下依然可以正常的运行应用.传统的本地存储数据的方式有 localstorage,sessionsto ...

  4. HTML5离线Web应用实战:五步创建成功

    [IT168 技术]HTML5近十年来发展得如火如荼,在HTML 5平台上,视频,音频,图象,动画,以及同电脑的交互都被标准化.HTML功能越来越丰富,支持图片上传拖拽.支持localstorage. ...

  5. 吓哭原生App的HTML5离线存储技术,却出乎意料的容易!【低调转载】

    吓哭原生App的HTML5离线存储技术,却出乎意料的容易![WeX5低调转载] 2015-11-16 lakb248 起步软件 近几天,WeX5小编编跟部分移动应用从业人士聊了聊,很多已经准备好全面拥 ...

  6. html5 离线存储

    在html页面中引入manifest文件 <html manifest="sample.appcache"> 在服务器添加mime-type text/cache-ma ...

  7. HTML5离线缓存问题

    HTML5离线缓存问题 1.应用程序缓存 什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问. ...

  8. Manifesto – HTML5 离线应用程序缓存校验工具

    Manifesto 是一个 HTML5 离线应用程序缓存校验工具,提供了快速校验 HTML5 manifest 文件有效性的方法.离线应用程序缓存在使用中最困难的部分之一就是无法正常工作的时候没有明显 ...

  9. HTML5离线存储原理

    找到一篇介绍离线缓存的,感觉比之前看到的解释的更透彻,新的知识点记录如下: 大家都知道Web App是通过浏览器来访问的,所以离线状态下是无法使用app的.其中web app中的一些资源并不经常改变, ...

随机推荐

  1. Java 中的悲观锁和乐观锁的实现

    一.定义 1.悲观锁:即很悲观,每次拿数据的时候都觉得数据会被人更改,所以拿数据的时候就把这条记录锁掉,这样别人就没法改这条数据了,一直到你的锁释放. 2.乐观锁:即很乐观,查询数据的时候总觉得不会有 ...

  2. Spring_AOP 实现原理与 CGLIB 应用

    转自:https://www.ibm.com/developerworks/cn/java/j-lo-springaopcglib/index.html AOP(Aspect Orient Progr ...

  3. Hortonworks官网文档怎么找?

    Hortonworks官网文档怎么找? 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 俗话说,授人予鱼不如授人予渔,网上部署HDP的部署方式的博客有很多,看得你是眼花缭乱的.其实万 ...

  4. 【leetcode-66】 加一

    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 1: 输入 ...

  5. Openresty 学习笔记(四)lualocks包管理器安装使用

    Luarocks是一个Lua包管理器,基于Lua语言开发,提供一个命令行的方式来管理Lua包依赖.安装第三方Lua包等,社区比较流行的包管理器之一,另还有一个LuaDist,Luarocks的包数量比 ...

  6. Java - 网络编程完全总结

    本文主要是自己在网络编程方面的学习总结,先主要介绍计算机网络方面的相关内容,包括计算机网络基础,OSI参考模型,TCP/IP协议簇,常见的网络协议等等,在此基础上,介绍Java中的网络编程. 一.概述 ...

  7. luogu 2827 蚯蚓 单调队列/优先队列

    易知可利用优先队列选取最大值: 但是通过分析可知,先取出的蚯蚓分开后仍然要比后分的长,所以可直接利用单调队列找队头即可,分三个单调队列,分别找未切割,切割,切割2三种情况 #include<bi ...

  8. python基础 range()与np.arange()

    range()返回的是range object,而np.nrange()返回的是numpy.ndarray() range尽可用于迭代,而np.nrange作用远不止于此,它是一个序列,可被当做向量使 ...

  9. PHP文件系统管理

    文件概念: 第一个是windows的文件,另一个php根据LINUX的文件,两者是有所不同的,我们说的页面基于windows的文件可以是是文件夹(也就是目录)或是文件,而php两者都必须有,它包含目录 ...

  10. aspnetpager使用介绍

    AspNetPager分页控件解决了分页中的很多问题,直接采用该控件进行分页处理,会将繁琐的分页工作变得简单化, 效果如下: 下面是我如何使用AspNetPager控件进行分页处理的详细代码: 1.首 ...