html5离线记事本

这是一个笔记应用,不需要联网,也不需要数据库,可以直接把数据储存在本地.方便易用! ^_^
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>记事本</title>
- <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
- <style>
- *{ margin: 0; padding: 0; box-sizing: border-box; font-family: 'Microsoft Yahei'; font-size: 14px; box-sizing: border-box;}
- h1{text-align: center; font-size: 26px; line-height: 60px;color: #ff8140;}
- .main{margin: 10px auto;width: 1000px; overflow: hidden; height: 500px;padding: 1%;border: 1px solid #ddd; border-radius: 5px;}
- input{ width: 92%; padding: 5px; outline: none;border: 1px solid #eee;}
- textarea{ width: 100%; overflow: hidden; padding: 5px; outline: none; resize:none; }
- textarea:focus,input:focus { border-color: #f77c3d; }
- .write{padding: 10px; border-radius: 3px; background: #eee; overflow: hidden; float: left;width: 48%;}
- .send{ background: #ff8140; border: 1px solid #f77c3d; color: #fff; box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.25);
- width: 80px; height: 30px; text-align: center; line-height: 30px; border-radius: 3px; float: right; cursor: pointer; }
- .list{padding: 10px; float: left;width: 50%;}
- .item{padding: 10px;border: 1px solid #eee;border-radius: 3px;margin-bottom: 10px;}
- .item .content{padding: 20px 10px;word-break:break-all;background: #fff; display: none;}
- .title{padding-bottom: 5px;border-bottom: 1px solid #eee;cursor: pointer;}
- .title span{color: #999; font-size: 12px;float: right;}
- #noteList{overflow-y: scroll;height: 350px;box-shadow: 0 0 3px #ddd;}
- </style>
- </head>
- <body>
- <h1>记事本</h1>
- <div class="main">
- <div class="write" id="write">
- 标题: <input id="title" type="text" placeholder="请输入标题"><br><br>
- 分类: <select id="type">
- <option value="默认" selected>-请选择-</option>
- <option value="美食">美食</option>
- <option value="代码">代码</option>
- <option value="生活">生活</option>
- </select>
- <br><br>
- <textarea name="" id="cont" cols="30" rows="10" placeholder="今天想说点啥..."></textarea>
- <div class="send" id="add">添加</div>
- </div>
- <div class="list" id="list">
- 标题: <input id="title1" type="text" placeholder="查询标题"><br><br>
- 分类: <select id="type1">
- <option value="默认" selected>-请选择-</option>
- <option value="美食">美食</option>
- <option value="代码">代码</option>
- <option value="生活">生活</option>
- </select>
- <div id="search" class="send">查询</div><br><br>
- <div id="noteList"></div>
- </div>
- </div>
- <script type="template" id="temp">
- <div class="item">
- <div class="title">@title<span>@type: @date</span></div>
- <div class="content">@cont</div>
- </div>
- </script>
- <script>
- $(function(){
- var init = {title:'这是标题',
- date:new Date().toLocaleString(),
- type:'示例',
- cont:'这是一个笔记应用,不需要联网,也不需要数据库,可以直接把数据储存在本地.方便易用!^_^'};
- function show(notes){
- var temp = $('#temp').html();
- var tempStr= '';
- //如果不是数组,变成数组
- if(!Array.isArray(notes)){
- notes = [notes];
- }
- for(var i=notes.length-1;i>-1;i--){
- var note = notes[i];
- tempStr += temp.replace('@title',note.title)
- .replace('@date',note.date)
- .replace('@type',note.type)
- .replace('@cont',note.cont);
- }
- $('#noteList').html(tempStr);
- }
- //读取所有数据
- function showList(){
- var notes = localStorage.getItem('notes');
- if(!notes){
- show(init);
- }else{
- notes = JSON.parse(notes);
- show(notes);
- }
- //第一个展开
- $('#noteList .item:first').find('.title').trigger('click');
- }
- $('#add').click(function(){
- var title = $('#title').val();
- var cont = $('#cont').val();
- var type = $('#type').val();
- if(title == ''){
- alert('标题不能为空!');
- return;
- }
- var data = {title:title,cont:cont,type:type,date:new Date().toLocaleString()};
- var notes = localStorage.getItem('notes');
- if(!notes){
- notes = [];
- }else{
- notes = JSON.parse(notes);
- }
- notes.push(data);
- localStorage.setItem('notes',JSON.stringify(notes));
- showList();
- });
- $('#search').click(function(){
- var title = $('#title1').val();
- var type = $('#type1').val();
- var notes = localStorage.getItem('notes');
- if(!notes){
- alert('没有本地笔记数据!');
- return;
- }else{
- notes = JSON.parse(notes);
- }
- var note = [];
- for(var i=0;i<notes.length;i++){
- //notes[i] json对象
- var flag = false;
- if(!title){
- flag = notes[i].type==type;
- }else if(!type){
- flag = notes[i].title.indexOf(title)>-1;
- }else{
- flag = notes[i].title.indexOf(title)>-1 && notes[i].type==type;
- }
- if(flag){
- note.push(notes[i]);
- }
- }
- if(note.length == 0){
- alert('抱歉~没有对应的笔记!');
- }else{
- show(note);
- }
- });
- $('body').on('click','#noteList .title', function(){
- $(this).next().slideToggle();
- });
- showList();
- })
- </script>
- </body>
- </html>
html5离线记事本的更多相关文章
- 1分钟快速制作漂亮的Html5本地记事本
大家好,以前给大家分享过一个五步骤制作精美的HTML5时钟的文章,点击回顾<五步教你制作漂亮精致的HTML时钟>,还有<一分钟教你如何实现唯美的文字描边>:今天给大家分享一个用 ...
- HTML5离线缓存(Application Cache)
HTML5离线缓存又名Application Cache,是从浏览器的缓存中分出来的一块缓存区,要想在这个缓存中保存数据,可以使用一个描述文件(manifest file),列出要下载和缓存的资源. ...
- HTML5 离线缓存管理库
一.HTML5离线缓存技术 支持离线缓存是HTML5中的一个重点,离线缓存就是让用户即使在断网的情况下依然可以正常的运行应用.传统的本地存储数据的方式有 localstorage,sessionsto ...
- HTML5离线Web应用实战:五步创建成功
[IT168 技术]HTML5近十年来发展得如火如荼,在HTML 5平台上,视频,音频,图象,动画,以及同电脑的交互都被标准化.HTML功能越来越丰富,支持图片上传拖拽.支持localstorage. ...
- 吓哭原生App的HTML5离线存储技术,却出乎意料的容易!【低调转载】
吓哭原生App的HTML5离线存储技术,却出乎意料的容易![WeX5低调转载] 2015-11-16 lakb248 起步软件 近几天,WeX5小编编跟部分移动应用从业人士聊了聊,很多已经准备好全面拥 ...
- html5 离线存储
在html页面中引入manifest文件 <html manifest="sample.appcache"> 在服务器添加mime-type text/cache-ma ...
- HTML5离线缓存问题
HTML5离线缓存问题 1.应用程序缓存 什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问. ...
- Manifesto – HTML5 离线应用程序缓存校验工具
Manifesto 是一个 HTML5 离线应用程序缓存校验工具,提供了快速校验 HTML5 manifest 文件有效性的方法.离线应用程序缓存在使用中最困难的部分之一就是无法正常工作的时候没有明显 ...
- HTML5离线存储原理
找到一篇介绍离线缓存的,感觉比之前看到的解释的更透彻,新的知识点记录如下: 大家都知道Web App是通过浏览器来访问的,所以离线状态下是无法使用app的.其中web app中的一些资源并不经常改变, ...
随机推荐
- centos 6 与 centos 7 服务开机启动、关闭设置的方法
简单说明下 centos 6 与 centos 7 服务开机启动.关闭设置的方法: centos 6 :使用chkconfig命令即可. 我们以apache服务为例: #chkconfig --add ...
- Oracle 数据库分页查询与排序分页查询
一.分页查询 原始查询语句 SELECT * FROM NASLE_WFSHH 修改为分页查询语句,加上 ROWNUM 列.此处为查询第 1 页,每页 9 条数据 SELECT * FROM ( SE ...
- Tomcat、Weblogic、WebSphere、JBoss服务器的选择
一.应用点 Tomcat是Apache基金会提供的Servlet容器,它支持JSP, Servlet和JDBC等J2EE关键技术,所以用户可以用Tomcat开发基于数据库,Servlet和JSP页面的 ...
- springMVC中a标签传递多个参数到后台的应用
1.js页面:返回json填充HTML部分代码 <a class='byCard' href="+path+"/static/toCardView/"+ data. ...
- golang interface
接口定义 Interface类型可以定义一组方法,但是这些不需要实现.并且interface不能 包含任何变量. type Interface interface { test1(a, b int) ...
- Openresty 学习笔记(四)lualocks包管理器安装使用
Luarocks是一个Lua包管理器,基于Lua语言开发,提供一个命令行的方式来管理Lua包依赖.安装第三方Lua包等,社区比较流行的包管理器之一,另还有一个LuaDist,Luarocks的包数量比 ...
- ArcGIS坐标系转换出错:Error 999999执行函数出错 invalid extent for output coordinate system
本文主要介绍在用ArcGIS做坐标系转换过程中可能会遇到的一个问题,并分析其原因和解决方案. 如下图,对一份数据做坐标系转换: 过了一会儿,转换失败了.错误消息如下: “消息”中提示,“执行函数出错 ...
- Impala系列: Impala常用的功能函数
--=======================查看内置的函数--=======================hive 不需要进入什么内置数据库, 即可使用 show functions 命令列出 ...
- cpp 标准库
源:http://bbs.csdn.net/topics/300040713 C++标准库的所有头文件都没有扩展名.C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能.< ...
- python的sys.args使用
一.sys 模块 sys是Python的一个「标准库」,也就是官方出的「模块」,是「System」的简写,封装了一些系统的信息和接口. 官方的文档参考:https://docs.python.org/ ...