优秀网站下载中国企业商标网

web/2025/10/8 4:38:12/文章来源:
优秀网站下载,中国企业商标网,网站用asp还是php,wordpress火车头采集器一、文章内容 TodoList结构搭建HTML代码 TodoList样式编写Css代码 TodoList行为表现JavaScript代码 二、项目展示 项目介绍 Todolist是一个基于B/S模式开发的待办事项软件#xff0c;主要功能是离线记录用户的待办事项和已经完成的事情#xff0c;基于htmlcssjs实现主要功能是离线记录用户的待办事项和已经完成的事情基于htmlcssjs实现涉及到的知识主要是事件监听和数据缓冲技术. 项目展示GIF 图1 项目功能展示 项目中的亮点: 点击代办事项可以让输入框获取焦点,我愿称之为:梦幻联动效果.在输入框里按下回城键调用add()函数自动判断自动检测.在左下角有一个“我要到上面”的标签点击就可以快速回到顶部,我称为一键返航. 三、代码细节 Html部分 相信大家在学习过前导课的基础上我们学习下面代码会轻松很多不过我也会一行一行给大家解释的。 我们讲html页面分为顶部和内容部分也就是header和section部分,第一个header包裹的内容就是todolist的头部,如图2所示. 图2 todolist顶部 夹在header和footer中间的section为页面主题部分也就是项目展示的地方里面包含了todo和done列表如图3所示. 图3 网页中心界面 html框架搭建总体比较简单所以大家可以根据自己的想法设计或者跟着我这个框架敲一遍.下面是所有的html代码: headersectiondiv idformlabel fortitletodo/labelinput typetext idtitle placeholder输入todolist/div/section/headersectionh2需要进行的事情span idtodocount0/span/h2ol idtodolist classdemo-box/olh2已经完成的事情span iddonecount0/span/h2ul iddonelist/ul/sectionfootera href#top idmao我要到上面/a/footerCss样式代码 当然要让css和html联动必须在html中引入自己的css文件语法如下link relstylesheet hrefmain.css因为我的css样式新建了文件并且跟index.html在同根目录下所以可以这样引入路径不同的读者可以自己修改src的属性值. 如果自己有设计的同学可以直接看下面JavaScript逻辑代码了这块主要负责美化样式. body{}选择器是将body标签选中将内外边距都设置为0方便后期开发如果不设置该属性会默认有偏移.剩下俩个是整个网页的字体大小跟背景色全局生效. html,body{}这个选择器里的属性只有一个scroll-behavior这个在前导课里讲过功能使得页面滑动平滑. header{}这个选择器设置了顶部的高度和背景色. section{}选择器设置了主要内容居中显示margin:0 auto;auto是关键. #mao{}id选择器主要通过浮动设置了一键返航的位置. label{}选择器是待办事项这几个字的位置也是使用了浮动这是左浮动通过line-hight设置垂直方向的字体位置如果跟父级元素高度一样里面的字就可以实现垂直居中了.cursor:pointer;设置了鼠标悬浮的样式我记得有6种样式大家可以自己尝试. header input{}组合选择器主要负责的是输入框的内容这里设置了右浮动同时设置了宽度50%,意思是只占父级元素的一半宽度text-indent是输入框的缩进单位像素自己可以测试一个合适的value我选择10个像素,border-radius: 5px; 这个属性是输入框的圆角值越大越⚪.box-shadow: 0 1px 0 rgba(255,255,255,0.24), 0 1px 6px rgba(0,0,0,0.45) inset; 这个属性设置了输入框的盒子阴影,具体参数大家可以去看看CSS box-shadow 属性 (w3school.com.cn).bordernone; 这样设置输入框的外边框就没了. input:focus{}伪类选择器中outline-width: 0; 设置了输入框的边框也就是当输入框获取焦点默认是有边框的这样设置就可以解决这个问题. h2{}选择器标签只加了一个定位属性原因是为了span可以很好的定位. span{}选择器是todolist和donelist的个数也就是最左边哪个圆点,line-height: 20px; text-align: center;是让文字水平和垂直居中的其他属性都在上面介绍过所以不一一介绍了. ol,ul{}选择器是todolist和donelist列表外部标签list-style: none; 该属性可以让有序列表和无序列表的数字和圆点消失加强了美观. li input{}选择器是每个任务item的选择框样式设置了positionabsolute进行了元素定位然后设置了鼠标悬浮的样式. li{}选择器设置了相对的位置border-radius: 3px; border-left: 6px solid #FFB800; border-right : 6px solid #FFB800; 分别设置了选择框的左右边框和item的圆角. li:hover{}伪类选择器设置了todolist和donelist中item触摸上去颜色变为蓝色color:#01AAED; ul li{}组合选择器设置了完成item的透明色和左右边框的颜色border-left: 5px solid #c2c2c2; border-right: 5px solid #c2c2c2; opacity: 0.5; 最后使用media screen and (min-width){}选择器设置了自适应布局. 下面是css的所有代码: body{padding: 0;margin: 0;font-size: 16px;background:#dddddd; } html,body{scroll-behavior: smooth ; } header{height: 50px;background: #333; } section{margin: 0 auto; } #mao{float:right;margin-right: 40px;margin-bottom: 20px; } label{float: left;width: 100px;line-height: 50px;color: #DDD;font-size: 24px;cursor:pointer; } header input{float: right;width: 50%;height: 25px;margin-top: 12px;/* 所经 text_indent */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; }input:focus{outline-width: 0; } h2{position: relative ; } span{position: absolute;top: 10px;right: 5px;display: inline-block;padding: 0 5px;height: 20px;border-radius: 20px;background-color: seagreen;line-height: 20px;text-align: center;color:whitesmoke;font-size: 14px; } ol,ul{padding: 0;list-style: none; } li input{position:absolute;top:2px;left: 10px;width: 22px;height: 22px;cursor: pointer; } li{height: 32px;line-height: 32px;background-color: #fff;position: relative;margin-bottom: 10px;padding: 0 45px;border-radius: 3px;border-left: 6px solid #FFB800;border-right : 6px solid #FFB800; } li:hover {color:#01AAED; }ul li{border-left: 5px solid #c2c2c2;border-right: 5px solid #c2c2c2;opacity: 0.5;} media screen and (max-device-width: 620px) {section{width:96%;padding:0 2%;}} media screen and (min-width: 620px) {section{width:600px;padding:0 10px;}} JavaScript逻辑代码 站在产品经理角度分析如何在完成基本需求的基础上使得用户体验更好? 答案1.点击todolist待办事务输入框自动获取焦点. 2.在输入框里回车即可提交事务不必加button.3.在任务数量较多的时候提供一家返回功能. 当然在满足上述功能后我们需要弄清楚JavaScript的逻辑代码其实只有todolist和donelist需要我们更新只要2者发生变化我们就需要load()加载一次所以load()需要写为一个函数多次调用,再其次就是将add()按键触发也写为一个函数方便在里边修改规则这是简单的解耦最后我门将pd()和pd2()封装为俩个函数分别将不同checkbox发出的按键逻辑进行代码编写方便修改对应逻辑. 在明白需求后开始写代码,每个函数都写了一个小标题进行了函数解释最后将文末的俩行监控代码加进去组成js代码引入到html页面里即可. 图4 简易框架图 只要打开页面就要启用监听事件将load()加载这样做的好处是无论你是第一次打开网站还是第二次都可以准确无误的加载item.语法是:**window.addEventListener(“load”, load); //页面加载完毕调用load函数 ** 然后监听输入框按键语法规则document.addEventListener(“keyup”, add); 然后编写对应的add()函数即可. 函数解释load() 第一行和第二行是获取todolist和donelist个数的元素小圆点,方便下面对数量进行更新,使用localStorage.todo读取本地缓存中的todo数据如果有数据进行数据解析将缓冲解析为JavaScript的数组然后声明一个todohtml变量保存item数据》然后根据todo的长度for循环根据规则加li标签最后使用JavaScript操作dom找到todolist的元素将innerhtml赋值为todohtml即可将todolist渲染完成.最后简单判断一下todo的长度如果有长度将控制item数量的元素找到然后修改value如果没长度也就是第一次打开默认为0todolist和donelist渲染方式一样我就不多解释了请认真结合文字读这段代码.你一定可以读懂. function load(){todocount document.getElementById(todocount);donecount document.getElementById(donecount);if(localStorage.todo){todo JSON.parse(localStorage.todo);var todohtml ;for(var i 0 ; i todo.length; i){todohtml liinput typecheckbox cheched onclickpd(this) value i name todo[i] todo[i] /li;}document.getElementById(todolist).innerHTML todohtml;if(todo.length!0) {todocount.innerHTML todo.length;} else{todocount.innerHTML 0;}}if(localStorage.done){done JSON.parse(localStorage.done);var donehtml ;for(var i 0 ; i done.length; i){donehtml liinput typecheckbox cheched onclickpd2(this) value i name done[i] done[i] /li;}document.getElementById(donelist).innerHTML donehtml;if(done.length!0){donecount.innerHTML done.length;}else{donecount.innerHTML 0 ;} } } 函数解释add() add()函数是当回车键触发且判断加入的事件不为空更新本地缓冲的一个函数并且load(). 函数第一行使用JavaScript操作dom获取到input输入框元素然后判断按键是否为13也就是回车键的Unicode码13 并且输入框的内容不为空然后将todo使用堆栈操作添加输入框的内容接着更新本地缓冲需要json变为字符串然后将输入框内容置为空,然后就可以加载load函数更新页面了.如果不满足条件弹出alert信息框. 完整代码如下 function add(e){info document.getElementById(title) ;if(e.keyCode 13 info.value ! ){todo.push(info.value);localStorage.todo JSON.stringify(todo);info.value ;load();}else if(e.keyCode 13 info.value ){alert(输入内容提交);} } 函数解释pd() 细心的读者一定发现这个函数在todolist的每一个item里有个checkbox然后绑定了一个onclicked的事件,当你选择该选择框的时候就会调用pd函数该函数是将todolist里的元素删除并且添加到donelist的. done.push(e.name)将本元素的name加到donelist里为什么可以这样操作 因为在load()函数里写了 liinput typecheckbox cheched onclickpd(this) value i name todo[i] todo[i] /li; 看到name属性的值是todo[i]item的值所以可以直接push,然后在todolist里删除该item使用splice函数该函数专门为数组设计的用法挺多详细了解的读者可以自行百度因为input的value记录的是该item的index下标所以可以直接pareint转换,既然todo和done都更新了我们接着将浏览器缓冲更新一下就是**localStorage.done JSON.stringify(done); localStorage.todo JSON.stringify(todo);** 这样接着在列表改动后继续load()重载一下下面是代码:function pd(e){done.push(e.name);todo.splice(parseInt(e.value),1);localStorage.done JSON.stringify(done);localStorage.todo JSON.stringify(todo);load(); }函数解释pd2() 既然有pd()肯定页有pd2()一个操作todo里面的checkbox一个操作done里面的checkbox,好了言归正传pd2()和pd()操作逻辑一样但是实体却不一样一个是todo数组push一个是done数组push读者可以自行比较这段代码相对简单在todo和done数组修改完毕接着就是更新本地缓冲了然后load()函数. function pd2 (e){done.splice(parseInt(e.value),1);todo.push(e.name);localStorage.done JSON.stringify(done);localStorage.todo JSON.stringify(todo);load(); }将上述代码和下面这俩行代码组合成一个js文件就是JavaScript所有代码了. window.addEventListener(load, load); //页面加载完毕调用load函数 document.addEventListener(keyup, add); //按键监听能读到这里的小伙伴属实不容易相信你能坚持这么久你一定可以自己独立开发todolist程序了,恭喜你呀. 四、参照文献 CSS 简介 (w3school.com.cn) JavaScript 教程 | 菜鸟教程 (runoob.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ppt模板大全免费下载网站什么网站做h5

文章目录链表介绍应用示例链表介绍 链表是有序的列表,但是它在内存中是存储是不连续的,如下: 链表是以节点的方式来存储,是链式存储: ①每个节点包含data域存储数据,next域指向下一个节点 ②链表的各个节点…

网站建设知名网站信息抽查评估 短信

上一篇文章我们学习了如何使用GDB进行软件断点调试和硬件断点调试:【软件开发底层知识修炼】十五 快速学习GDB调试二 使用GDB进行断点调试本篇文章继续上一篇文章的学习,如何使用GDB的数据断点监测内存中的变量是否被改变 文章目录1 GDB的数据断点1.1 利…

邵阳网站建设优化做网站建设的技巧

项目介绍 libcurl是一个跨平台的网络协议库,支持http、https、ftp等多种协议。 项目地址 https://github.com/curl/curl/releases 影响版本 7.69.0-8.3.0 漏洞分析 漏洞成因在于使用SOCKS5代理过程中造成的溢出。当Curl程序使用 SOCKS5代理时,设置…

作风建设 宣讲家网站万户网络技术有限公司官网

使用Python Django框架制作一个音乐网站, 本篇主要是后台对歌曲类型、歌单功能原有功能进行部分功能实现和显示优化。 目录 歌曲类型功能优化 新增编辑 优化输入项标题显示 父类型显示改为下拉菜单 列表显示 父类型显示名称 过滤器增加父类型 歌单表功能优化…

电子商务网站建设专业主修课程国外h5分享网站

文章目录 前言一、geometry是什么?二、geometry常用函数1.OGC标准函数①管理函数②几何对象关系函数③几何对象处理函数④几何对象存取函数⑤几何对象构造函数 2.PostGIS扩展函数①管理函数②几何操作符③几何量测函数④几何对象输出⑤几何对象创建⑥几何对象编辑⑦…

解决国外网站很慢工业产品设计用什么软件

驱动主要包含两部分,平台驱动和器件驱动。平台驱动主要包括通常在SOC内的GPIO、I2C、SPI等;器件驱动则主要包含通常在SOC外的器件,如 LCD、TP、WLAN等 图1 OpenHarmony 驱动分类 HDF驱动被设计为可以跨OS使用的驱动程序,HDF驱动框…

下载免费网站模板下载安装网站登录界面html

该漏洞因为用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值使用 OGNL 表达式 %{value} 进行解析,然后重新填充到对应的表单数据中。例如注册或登录页面,提交失败后端一般会默认返回之前提交的数据,由于后端使用 %{v…

用记事本做网站纯静态网站开发

连通块记忆性递归的综合运用 这里x,y的设置反我平常的习惯,搞得我有点晕 实际上可以一输入就交换x,y的数据的 如果设置y1为全局变量的话会warning: warning: built-in function y1 declared as non-function 所以我改成p和q了…

茶叶企业网站源码wordpress改了固定链接出现404

jca使用Java密码体系结构(JCA)是一个可扩展的框架,使您能够使用执行加密操作。 JCA还促进实现独立性(程序不应该在乎谁提供加密服务)和实现互操作性(程序不应该与特定加密服务的特定提供者联系在一起&#…

贵州移动端网站建设深圳模板建站多少钱

#!/usr/bin/env python # -*- coding:utf-8 -*- # author:love_cat import cv2 # 接收两个参数,一个是文件名,一个值,如果值为1,接收的是彩色图片,如果值为零,接受的是灰度图片。会有一个返回值&#xff0c…

杭州做网站博客企业所得税优惠政策最新2023规定公告

哈希和unordered系列封装 一、哈希1. 概念2. 哈希函数,哈希碰撞哈希函数(常用的两个)哈希冲突(碰撞)小结 3. 解决哈希碰撞闭散列线性探测二次探测代码实现载荷因子(扩容) 开散列哈希桶代码实现扩…

金融投资网站wordpress 显示指定分类

转自:https://blog.csdn.net/qq_37788067/article/details/79250623概念:集群是个物理形态,分布式是个工作方式。1.分布式:一个业务分拆多个子业务,部署在不同的服务器上2.集群:同一个业务,部署在多个服务器…

温州高端企业网站建设营商环境建设监督局网站

参考引用 C11 14 17 20 多线程从原理到线程池实战代码运行环境:Visual Studio 2019 C多线程学习(一):C11 多线程快速入门 C多线程学习(二):多线程通信和锁 C多线程学习(三&#xff0…

北京个人制作网站有哪些内容网站管理工作是具体应该怎么做

文章目录 普通装饰器decorator0. 万能公式,非常重要1. 便于入门的decorator原理2. 理解函数3. 装饰器的作用:4. 装饰器的语法糖5. 装饰器顺序6. 极简的装饰器7. 装饰器的参数无参 函数装饰器有参 函数装饰器 类装饰器class decorator0. 万能公式,非常重要…

上海网站设计见建设怎样重新安装电脑wordpress

原文链接:赵侠客 前言 枚举类型在开发中是很常见的,有非常多的应用场景,如状态管理、类型分类、权限控制、配置管理、错误码管理、日志级别等。正确合理的使用枚举可以给我们带来非常多的好处: 增强代码可读性:枚举可…

定制企业网站建设制作域名网站怎么打开

1) 新建源文件 打开 CodeBlocks ,在上方菜单栏中选择 “文件 --> 新建 --> 空白文件”,如下图所示: 或者直接按下 Ctrl Shift N 组合键,都会新建一个空白的源文件,如下图所示: 在空白源文件中输入…

柯桥做网站哪家好济南软件开发公司

本文聊一个程序员都会关注的问题:性能。 当大家谈到“性能”时,你首先想到的会是什么? 是每次请求需要多长时间才能返回? 是每秒钟能够处理多少次请求? 还是程序的CPU和内存使用率高不高? 这些问题基本上…

建筑业资质查询网站工信部网站备案用户名

目录 4.通过继承实现员工工资核算打印功能 6.父类和子类中通过this和super都可以调用哪些属性和方法 8.扩展如下的BankAccount类 10.判断测试类中创建的两个对象是否相等 11.向上转型&向下转型 12.equals和的区别 15.什么是多态,多态具体体现有哪些? 16. java的动…

昌平建设网站网站开发选定制还是模板

在C中,->是一个运算符,称为成员访问运算符(Member Access Operator)。它用于通过指针访问对象的成员(变量或函数)。 下面是对->运算符的详细解释: 语法: pointer->member …