赞
踩
第19次修改了可删除可持久保存的前端html备忘录:换了一个特别的倒计时时钟
- <!DOCTYPE html>
- <html lang="zh">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>与妖为邻的文本备忘录</title>
- </head>
- <style>
- * {
- list-style-type: none;
- /* 外边距 */
- margin: 0;
- /* 内边距区域 */
- padding: 0;
- /* 盒子模型:元素的宽度和高度将包括内容区、内边距和边框,但不包括外边距 */
- box-sizing: border-box;
- }
- body {
- min-height: 100vh;
- }
- input,
- button {
- /* 字体大小 */
- font-size: 18px;
- /* 鼠标变小手 */
- cursor: pointer;
- /* 圆角*/
- border-radius: 5px;
- /* 内边距上下0 左右5 */
- padding: 0px 5px;
- }
- /* 标题区布局开始************************** */
- .hdiv {
- width: 100%;
- height: 65px;
- /* position: relative; */
- position: fixed;
- dfn {
- position: fixed;
- top: 10px;
- left: 0;
- /* 内边距上下0 左右5 */
- padding: 0px 5px;
- /* 圆角*/
- border-radius: 50px;
- }
- b {
- position: fixed;
- top: 10px;
- left: 116px;
- /* 圆角*/
- border-radius: 50%;
- /* 内边距上下0 左右5 */
- padding: 0px 5px;
- }
- #link {
- position: fixed;
- height: 45px;
- top: 10px;
- left: 210px;
- /* 外边距 */
- margin: 0 15px;
- font-size: 30px;
- }
- /* 当前时间布局开始************************** */
- .newtime {
- width: 495px;
- height: 65px;
- position: fixed;
- top: 0px;
- left: 358px;
- /* 圆角*/
- border-radius: 20%;
- #clock {
- position: fixed;
- top: 10px;
- left: 365px;
- /* 字体大小 */
- font-size: 30px;
- }
- /* 翻盘时间显示开始************************** */
- .show {
- display: flex;
- top: -5px;
- left: 295px;
- width: 200px;
- height: 75px;
- position: relative;
- .time {
- display: flex;
- flex: 1;
- font-size: 40px;
- text-align: center;
- line-height: 75px;
- padding: 0 10px;
- overflow: hidden;
- position: absolute;
- top: 0px;
- left: 5px;
- right: 5px;
- }
- .beforeTime {
- z-index: 100;
- }
- .time li:nth-child(2n) {
- flex: 1;
- }
- .time li:nth-child(2n+1) {
- flex: 4;
- position: relative;
- height: 50px;
- line-height: 50px;
- margin: auto 0px;
- border-radius: 10px;
- }
- .time li:nth-child(2n+1) .upBox,
- .time li:nth-child(2n+1) .downBox {
- position: absolute;
- left: 0;
- right: 0;
- }
- .time li:nth-child(2n+1) .upBox {
- top: 0;
- bottom: 50%;
- box-sizing: border-box;
- transform-origin: bottom;
- border-radius: 5px 5px 0 0;
- }
- .time li:nth-child(2n+1) .downBox {
- top: 50%;
- bottom: 0;
- line-height: 0;
- box-sizing: border-box;
- overflow: hidden;
- transform-origin: top;
- border-radius: 0 0 5px 5px;
- }
- /* 翻盘时间显示结束************************** */
- }
- /* 当前时间布局结束************************** */
- }
- .gap {
- position: fixed;
- top: 2px;
- left: 855px;
- font-size: 30px;
- border-radius: 50%;
- /* 内边距上下10 左右15 */
- padding: 10px 15px;
- }
- /*************************倒计时开始********************************/
- #countdown {
- padding: 0 5px;
- width: 483px;
- /* position: fixed; */
- position: relative;
- top: 0px;
- left: 1008px;
- display: flex;
- gap: 5px;
- /* 角 */
- border-radius: 20%;
- .circle {
- position: relative;
- width: 75px;
- height: 75px;
- border-radius: 50%;
- display: flex;
- justify-content: center;
- align-items: center;
- box-shadow: 0 5px 5px rgba(216, 189, 189, 0.363);
- &::before {
- content: '';
- position: absolute;
- border-radius: 50%;
- inset: 0;
- border: 5px solid #000000;
- }
- &::after {
- content: '';
- position: absolute;
- width: 50px;
- height: 50px;
- border-radius: 50%;
- background: #05a388;
- box-shadow: inset 0 1px 1px rgba(204, 150, 150, 0.694);
- }
- & svg {
- width: 75px;
- height: 75px;
- position: relative;
- transform: rotate(270deg);
- & circle {
- width: 100%;
- height: 100%;
- fill: transparent;
- stroke-width: 4;
- stroke: var(--clr);
- stroke-linecap: round;
- transform: translate(2.5px, 2.5px);
- stroke-dasharray: 220;
- stroke-dashoffset: 220;
- }
- }
- & div {
- position: absolute;
- text-align: center;
- font-weight: 1000;
- color: #ffff;
- z-index: 5000;
- color: var(--clr);
- font-size: 30px;
- line-height: 0.6;
- }
- }
- .tsfm {
- position: relative;
- top: 14px;
- left: -1px;
- font-size: 35px;
- }
- /*************************倒计时结束********************************/
- }
- /* 标题区布局结束************************** */
- }
- /* 备忘信息区布局开始************************** */
- #oContent {
- margin: 65px 0;
- /* 复选框样式开始 */
- input[type="checkbox"] {
- margin: 0px 10px;
- -webkit-appearance: none;
- appearance: none;
- width: 25px;
- height: 25px;
- position: relative;
- border-radius: 50%;
- }
- input[type="checkbox"]::after {
- content: "";
- width: 100%;
- height: 100%;
- border: 2px solid #e9f504;
- position: absolute;
- left: -3px;
- top: -3px;
- border-radius: 50%;
- /* 复选框样式开始 */
- }
- /* 设置复选框点击之后的样式*/
- input[type="checkbox"]:checked::after {
- height: 15px;
- width: 25px;
- border-top: none;
- border-right: none;
- border-radius: 0;
- transform: rotate(-45deg);
- transition: all 0.5s ease-in-out;
- /* 设置复选框点击之后的样式结束*/
- }
- span {
- border-radius: 20px;
- padding: 0 10px;
- }
- /* 备忘信息区布局结束************************** */
- }
- /* 隐藏的文本操作框布局开始 ***************************/
- .login {
- display: none;
- width: 650px;
- position: fixed;
- left: 70%;
- top: 50%;
- border-radius: 15px 15px 0 0;
- z-index: 9999;
- transform: translate(-90%, -90%);
- border-radius: 15px;
- .login-title {
- border-radius: 15px 15px 0 0;
- width: 100%;
- line-height: 40px;
- height: 40px;
- font-size: 20px;
- position: relative;
- cursor: move;
- .cl1ose-login {
- margin: 0 10px;
- }
- #closeBtn {
- padding: 0px 10px 0px 10px;
- /*设置X靠右*/
- float: right;
- /*设置边框圆角*/
- /*设置文字大小*/
- font-size: 38px;
- top: -2px;
- right: 5px;
- /*设置绝对定位*/
- position: absolute;
- /*设置去掉斜体文字属性*/
- font-style: normal;
- /*设置鼠标悬停时显示小手*/
- cursor: pointer;
- &:hover {
- color: #6b6b6b;
- }
- }
- }
- .up-div {
- display: flex;
- /*设置主轴方向 垂直显示*/
- flex-direction: column;
- border-radius: 10px;
- height: 205px;
- margin: 10px;
- #myForm {
- display: flex;
- /*设置主轴方向 垂直显示*/
- flex-direction: column;
- box-sizing: border-box;
- border-radius: 10px;
- margin: 10px;
- padding: 5px;
- background-color: #c4a32c;
- & input[type="file"] {
- margin: 10px;
- background-color: #11b711;
- border-radius: 10px;
- }
- & textarea {
- font-size: 20px;
- /* 高 */
- height: 32px;
- border-radius: 5px;
- /* 居中 */
- display: flex;
- justify-content: center;
- margin: 0 10px;
- &::placeholder {
- font-size: 22px;
- }
- }
- div {
- margin: 10px;
- display: flex;
- /*设置主轴方向 垂直显示
- flex-direction: center;*/
- /*设置 居中排列。*/
- justify-content: center;
- gap: 80px;
- }
- }
- .up-div1 {
- margin: 10px;
- display: flex;
- justify-content: space-between;
- }
- }
- sub {
- /* 居中 */
- display: flex;
- justify-content: center;
- border-radius: 5px;
- margin: 10px;
- }
- .site {
- border-radius: 10px;
- margin: 10px;
- button {
- margin: 5px;
- }
- }
- /* 隐藏的文本操作框布局结束 ***************************/
- }
- /* 背景颜色布局******************************************************** */
- body {
- background: radial-gradient(at 60% 0%, #5190b0, #235746);
- }
- .hdiv {
- background: linear-gradient(0.25turn, rgb(110, 123, 108), rgb(204, 232, 207), #f7d6d6);
- }
- button,
- b,
- dfn {
- background-color: #ff0000;
- }
- #countdown,
- .newtime {
- background-color: #48603f;
- }
- input,
- .gap {
- background-color: rgb(171, 5, 5);
- }
- input:hover,
- button:hover,
- textarea,
- sub,
- #oContent {
- background: #303745;
- }
- /*3D背景样式*/
- sub,
- #countdown,
- input,
- .site,
- .up-div,
- .gap,
- button,
- b,
- .newtime,
- button {
- background-image: linear-gradient(to top left,
- rgba(0, 0, 0, 0.2),
- rgba(0, 0, 0, 0.2) 30%,
- rgba(0, 0, 0, 0));
- box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6),
- inset -4px -4px 5px rgba(0, 0, 0, 0.6);
- border: 0px solid black;
- }
- /* 凹进去的样式 */
- #myForm,
- #oContent span,
- dfn,
- button:active,
- input:active {
- box-shadow: inset -2px -2px 3px rgba(255, 255, 255, 0.6),
- inset 2px 2px 3px rgba(0, 0, 0, 0.6);
- }
- .time li:nth-child(2n+1) {
- box-shadow: 0px 0px 1px 1px rgb(1, 0, 0);
- }
- .time li:nth-child(2n+1) .upBox,
- .time li:nth-child(2n+1) .downBox {
- background-color: #3b3d3b;
- ;
- /* 删除线 加颜色*/
- text-decoration: line-through;
- text-decoration-color: #3b3d3b;
- ;
- }
- /* 文本颜色布局***************************************** */
- input,
- ::placeholder,
- textarea,
- sub,
- .cl1ose-login,
- .login-title,
- a,
- .gap,
- button,
- b,
- dfn {
- color: #fff;
- text-shadow: 1px 1px 1px #000;
- }
- input:hover,
- button:hover,
- .delete {
- color: #f0e80a;
- text-shadow: 1px 1px 1px #000;
- }
- b {
- text-shadow: 0px 1px 0px #999,
- 0px 2px 0px #888,
- 0px 3px 0px #777,
- 0px 4px 0px #666,
- 0px 5px 0px #555,
- 0px 6px 0px #444,
- 0px 7px 0px #333,
- 0px 8px 7px #001135;
- }
- .show {
- color: #ffffff;
- }
- .tsfm,
- #clock {
- color: #ff0000;
- text-shadow: 1px 1px 1px #000;
- }
- a {
- color: #5190b0;
- text-shadow: 1px 1px 1px #000;
- }
- span {
- color: #75c6b2;
- text-shadow: 1px 1px 1px #000;
- }
- .finish {
- /* 下划线 */
- text-decoration: underline;
- text-decoration-color: rgb(255, 0, 0);
- background-color: rgb(191, 210, 255);
- color: rgb(255, 250, 250);
- text-shadow: 1px 1px 1px #030303;
- box-shadow:
- inset -2px -2px 3px rgba(255, 255, 255, 0.6),
- inset 2px 2px 3px rgba(0, 0, 0, 0.6);
- }
- .login {
- background-color: #cce7cc;
- border: #ebebeb solid 1px;
- }
- .login-title {
- background-color: #b5c7b5;
- }
- .site,
- .up-div {
- background-color: rgba(173, 17, 17, 0.5);
- }
- </style>
- <!-- <body background="yyds6.jpg" style="background-repeat:no-repeat;
- background-attachment:fixed;
- background-size:100% 100%; "> -->
- <body>
- <div class="hdiv">
- <h1>
- <dfn>memo</dfn>
- <b>备忘录</b>
- </h1>
- <button id="link" href="javascript:;">文本操作</button>
- <!-- 当前时间 -->
- <div class="newtime">
- <div id="clock"></div>
- <!-- 翻盘时间显示开始 -->
- <div class="show">
- <ul class="time">
- <li>
- <div class="upBox beforeTime"></div>
- <div class="downBox beforeTime"></div>
- <div class="upBox afterTime"></div>
- <div class="downBox afterTime"></div>
- </li>
- <li>:</li>
- <li>
- <div class="upBox beforeTime"></div>
- <div class="downBox beforeTime"></div>
- <div class="upBox afterTime"></div>
- <div class="downBox afterTime"></div>
- </li>
- <li>:</li>
- <li>
- <div class="upBox beforeTime"></div>
- <div class="downBox beforeTime"></div>
- <div class="upBox afterTime"></div>
- <div class="downBox afterTime"></div>
- </li>
- </ul>
- <!-- 翻盘时间显示结束 -->
- </div>
- <!-- 当前时间结束 -->
- </div>
- <div class="gap">距离五一</div>
- <!-- 倒计时 -->
- <div id="countdown">
- <div class="circle" style="--clr:#18e3c1;">
- <svg>
- <circle cx="35" cy="35" r="35" id="dd"></circle>
- </svg>
- <div id="days">00</div>
- </div>
- <div class="tsfm">天</div>
- <div class="circle" style="--clr:#41cb35;">
- <svg>
- <circle cx="35" cy="35" r="35" id="hh"></circle>
- </svg>
- <div id="hours">00</div>
- </div>
- <div class="tsfm">时</div>
- <div class="circle" style="--clr:#98aafc;">
- <svg>
- <circle cx="35" cy="35" r="35" id="mm"></circle>
- </svg>
- <div id="minutes">00</div>
- </div>
- <div class="tsfm">分</div>
- <div class="circle" style="--clr:#ec1313;">
- <svg>
- <circle cx="35" cy="35" r="35" id="ss"></circle>
- </svg>
- <div id="seconds">00</div>
- </div>
- <div class="tsfm">秒</div>
- <!-- 倒计时结束 -->
- </div>
- <!-- ----文本操作框-------------------------------- -->
- <div id="login" class="login">
- <div id="title" class="login-title">
- <span class="cl1ose-login">文本操作</span>
- <i href="javascript:void(0);" id="closeBtn">×</i>
- </div>
- <div class="up-div">
- <form id="myForm">
- <input type="file" name="inputfile" accept="text/plain, text/css, text/html, text/javascript, text/markdown"
- class="background3D" />
- <textarea class="up-textarea" name="uptextarea" rows="1" cols="30%"
- placeholder="请选择txt、js、css或html文件,文件内容会被自动读取"></textarea>
- <div>
- <button type="text" class="up-button">添加</button>
- <input type="reset" value="重置">
- </div>
- </form>
- <hr>
- <div class="up-div1">
- <button id="openButton">打开URL</button>
- <button class="a-href"><a href="https://blog.csdn.net/lulei5153?spm=1011.2415.3001.5343"
- target="_blank">与妖为邻</a></button>
- <button class="a-href"> <a href="https://www.bilibili.com/" target="_blank"> 哔哩哔哩 </a> </button>
- <button id="up-button1" class="delete">对选择删除</button>
- </div>
- </div>
- <sub> <button class="a-href">
- <a href="输入网站地址" target="_blank">
- 输入网站名称
- </a> </button>
- </sub>
- <div class="site">
- <button class="a-href"> <a href="https://www.runoob.com/" target="_blank"> 菜鸟教程 </a> </button>
- <button class="a-href"> <a href="https://cn.vuejs.org/" target="_blank"> JavaScript 框架vue </a></button>
- <button class="a-href"> <a href="https://www.w3ccoo.com/" target="_blank"> w3schools 教程 </a> </button>
- <button class="a-href"><a href="https://www.baidu.com/s" target="_blank">百度一下</a></button>
- <button class="a-href"> <a href="https://zh.javascript.info/" target="_blank"> 现代 JavaScript 教程 </a> </button>
- <button class="a-href"> <a href="https://www.dedexuexi.com/" target="_blank"> 建站学习网 </a></button>
- <button class="a-href"> <a href="https://www.dedexuexi.com/tool/3D/" target="_blank"> CSS3D字体 </a></button>
- <button class="a-href"><a href="https://element-plus.org/zh-CN/" target="_blank">Vue3组件库</a></button>
- </div>
- </div>
- </div>
- <hr>
- <!-- ----备忘录内容容器--------------------------- -->
- <div id="oContent">
- </div>
- </body>
- </body>
- <script>
- /* **************************当前时间函数********************************** */
- function showTime(clock) {
- var now = new Date();
- var year = now.getFullYear();
- var month = now.getMonth();
- var day = now.getDate();
- month = month + 1;
- var arr_work = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
- var week = arr_work[now.getDay()];
- // var time = year+"年"+month+"月"+day+"日 "+ week+" "+hour+":"+minu+":"+second;
- var time = year + "年" + month + "月" + day + "日 " + week;
- clock.innerHTML = time;
- }
- window.onload = function () {
- var clock = document.getElementById("clock");
- window.setInterval("showTime(clock)", 1000);
- var text = document.getElementsByName('uptextarea')[0],
- inputFile = document.getElementsByName('inputfile')[0];
- //上传文件
- inputFile.onchange = function () {
- console.log(this.files);
- var reader = new FileReader();
- reader.readAsText(this.files[0], 'UTF-8');
- reader.onload = function (e) {
- // urlData就是对应的文件内容
- var urlData = this.result;
- text.value = urlData;
- };
- };
- }
- /* **************************翻盘时间函数***********************************/
- //格式化时间
- const formatTime = (time) => {
- if (time < 10) time = '0' + time
- return time
- }
- //翻转前面下面的盒子向上180deg
- const rotateUp = (ele, time, n) => {
- //传入的为一开始翻转的元素,即前面下面的盒子,以及新时间,以及第几个li盒子
- let rotateDeg = 0;
- ele.style.zIndex = 50;
- //这个是所有上面的盒子
- const allUpBox = document.querySelector(`li:nth-child(${n})`).querySelectorAll('.upBox');
- //所有前面的盒子
- const beforeTime = document.querySelector(`li:nth-child(${n})`).querySelectorAll('.beforeTime');
- // 让上面后面的盒子先不可见,然后设置为270°
- allUpBox[1].style.display = 'none';
- allUpBox[1].transform = `rotateX(270deg)`;
- const animation = () => {
- rotateDeg += 3;
- ele.style.transform = `perspective(500px) rotateX(${rotateDeg}deg)`;
- if (rotateDeg == 90) {
- //让它更新为最近时间后隐藏
- ele.innerHTML = time
- ele.style.zIndex = -1;
- //让刚刚上面隐藏的盒子重新显示出来并且完成90°-180°的旋转
- allUpBox[1].style.display = 'block';
- allUpBox[0].style.zIndex = 1;
- rotateDown(allUpBox[1])
- allUpBox[1].style.zIndex = 1;
- }
- if (rotateDeg == 150) {
- beforeTime[0].innerHTML = time
- }
- if (rotateDeg < 180) {
- requestAnimationFrame(animation);
- }
- }
- animation()
- }
- const rotateDown = (ele) => {
- let rotateDeg = 270;
- const animation = () => {
- rotateDeg += 3;
- ele.style.transform = `perspective(500px) rotateX(${rotateDeg}deg)`;
- if (rotateDeg < 360) {
- requestAnimationFrame(animation);
- }
- }
- animation()
- }
- let time = new Date();
- let oldHour = time.getHours();
- var oldMinute = time.getMinutes();
- var oldSecond = time.getSeconds();
- document.querySelector('li:nth-child(1)').querySelectorAll('.beforeTime').forEach(ele => ele.innerHTML = formatTime(oldHour));
- document.querySelector(' li:nth-child(3)').querySelectorAll('.beforeTime').forEach(ele => ele.innerHTML = formatTime(oldMinute));
- document.querySelector(' li:nth-child(5)').querySelectorAll('.beforeTime').forEach(ele => ele.innerHTML = formatTime(oldSecond));
- const changeTime = () => {
- let time = new Date();
- let hour = time.getHours();
- let minute = time.getMinutes();
- let second = time.getSeconds();
- const setHourBox = document.querySelector('li:nth-child(1)').querySelectorAll('.afterTime');
- if (!setHourBox[0].innerHTML || setHourBox[0].innerHTML != formatTime(hour)) {
- if (setHourBox[0].innerHTML) rotateUp(document.querySelector('li:nth-child(1)').querySelectorAll('.beforeTime')[1], formatTime(hour), 1);
- setHourBox.forEach(ele => ele.innerHTML = formatTime(hour));
- }
- const setMinuteBox = document.querySelector('li:nth-child(3)').querySelectorAll('.afterTime');
- if (!setMinuteBox[0].innerHTML || setMinuteBox[0].innerHTML != formatTime(minute)) {
- if (setMinuteBox[0].innerHTML) rotateUp(document.querySelector('li:nth-child(3)').querySelectorAll('.beforeTime')[1], formatTime(minute), 3);
- setMinuteBox.forEach(ele => ele.innerHTML = formatTime(minute));
- }
- const setSecondBox = document.querySelector('li:nth-child(5)').querySelectorAll('.afterTime')
- setSecondBox.forEach(ele => ele.innerHTML = formatTime(second));
- rotateUp(document.querySelector('li:nth-child(5)').querySelectorAll('.beforeTime')[1], formatTime(second), 5)
- setTimeout(changeTime, 1000);
- }
- changeTime();
- /*************************倒计时********************************/
- let days = document.getElementById('days');
- let hours = document.getElementById('hours');
- let minutes = document.getElementById('minutes');
- let seconds = document.getElementById('seconds');
- let dd = document.getElementById('dd');
- let hh = document.getElementById('hh');
- let mm = document.getElementById('mm');
- let ss = document.getElementById('ss');
- let enDate = '05/1/2024 00:00:00';
- let x = setInterval(function () {
- let now = new Date(enDate).getTime();
- let countDown = new Date().getTime();
- let distance = now - countDown;
- let d = Math.floor(distance / (1000 * 60 * 60 * 24));
- let h = Math.floor(distance % (1000 * 60 * 60 * 24) / (1000 * 60 * 60));
- let m = Math.floor(distance % (1000 * 60 * 60) / (1000 * 60));
- let s = Math.floor(distance % (1000 * 60) / 1000);
- days.innerHTML = d;
- hours.innerHTML = h;
- minutes.innerHTML = m;
- seconds.innerHTML = s;
- dd.style.strokeDashoffset = 220 - (220 * d) / 365;
- hh.style.strokeDashoffset = 220 - (220 * h) / 24; // 24
- mm.style.strokeDashoffset = 220 - (220 * m) / 60; // 60
- ss.style.strokeDashoffset = 220 - (220 * s) / 60; // 60
- })
- /**************************备忘录********************************/
- var uptext = document.querySelector(".up-textarea");
- var addto = document.querySelector(".up-button");
- var text = document.querySelector("#oContent");
- /*************添加事件*****************/
- addto.onclick = function () {
- inserhtml(uptext.value, '');
- // 添加后清空输入框
- uptext.value = '';
- // 焦点放回输入框
- uptext.focus();
- savetodo();
- }
- /*************savetodo函数****************/
- var savetodo = function () {
- let todoarr = [];
- let todojs = {};
- var econtent = document.querySelectorAll('.content');
- for (let index = 0; index < econtent.length; index++) {
- todojs.name = econtent[index].innerHTML;
- todojs.finish = econtent[index].classList.contains('finish');
- todoarr.push(todojs);
- todojs = {};
- }
- save(todoarr);
- }
- var loadtodo = function () {
- let todoarr = load();
- for (let index = 0; index < todoarr.length; index++) {
- inserhtml(todoarr[index].name, todoarr[index].finish ? 'finish' : '');
- }
- }
- /**********************本地持久储存(localStorage)函数*****************************/
- var save = function (arr) {
- /**JSON.stringify(arr) 先将数组转换为字符串
- *localStorage.todotext 然后将字符串保存到本地的todotext中*/
- localStorage.todotext = JSON.stringify(arr);
- }
- /**
- *读取函数,把todotext转成数组
- *然后返回数组*/
- var load = function (arr) {
- var arr = JSON.parse(localStorage.todotext);
- return arr;
- }
- /**********************finish样式函数*****************************/
- /**********************按钮点击事件*****************************/
- text.onclick = function () {
- var tg = event.target;
- // 获取父元素下的所有子元素
- var tgkids = tg.parentElement.children;
- /*******************************对复选框的点击事件******************************/
- if (tgkids[0].checked) {
- tgkids[1].classList.add("finish");
- }
- else {
- tgkids[1].classList.remove("finish");
- }
- // 保存更改的样式
- savetodo();
- /*******************************对选择的进行删除********************************************/
- var Select = document.getElementById("up-button1");
- Select.onclick = function () {
- if (confirm("是否删除所选?")) {
- var check = document.getElementsByName("checkbox");
- for (var i = 0; i < check.length; i++) {
- if (check[i].checked) {
- check[i].parentElement.remove();
- i--;
- // 删除后保存
- savetodo();
- }
- }
- }
- }
- }
- var inserhtml = function (val, cls) {
- text.insertAdjacentHTML("beforeend",
- `<div>
- <input type="checkbox" name='checkbox'>
- <span class='content ${cls}'>${val}</span>
- </div>`
- )
- }
- loadtodo();
- /********************文本操作框*****************************************/
- // 1. 获取元素
- var login = document.querySelector('.login');
- var mask = document.querySelector('#oContent');
- // 2. 点击弹出层这个链接link,让mask和login显示出来
- link.addEventListener('click', function () {
- mask.style.display = 'block';
- login.style.display = 'block';
- });
- // 3. 点击closeBtn就隐藏mask和login
- closeBtn.addEventListener('click', function () {
- // mask.style.display = 'none';
- login.style.display = 'none';
- });
- // 4. 开始拖拽
- //(1)当我们鼠标按下,就获得鼠标在盒子内的坐标
- title.addEventListener('mousedown', function (e) {
- var x = e.pageX - login.offsetLeft;
- var y = e.pageY - login.offsetTop;
- //(2)鼠标移动的时候,把鼠标在页面中的坐标,减去鼠标在盒子内的坐标就是模态框的left和top值
- document.addEventListener('mousemove', move);
- function move(e) {
- login.style.left = e.pageX - x + 'px';
- login.style.top = e.pageY - y + 'px';
- }
- //(3)鼠标弹起,就让鼠标移动事件移除
- document.addEventListener('mouseup', function () {
- document.removeEventListener('mousemove', move);
- });
- });
- /*****************************提示弹窗无需点击的函数**********************************************/
- function displayAlert(type, data, time) {
- var prompt = document.createElement("div");
- if (type == "success") {
- prompt.style.width = "200px";
- prompt.style.backgroundColor = "#009900";
- } else if (type == "error") {
- prompt.style.width = "280px";
- prompt.style.backgroundColor = "#990000";
- } else if (type == "info") {
- prompt.style.backgroundColor = " #e6b800";
- prompt.style.width = "600px";
- } else {
- return;
- }
- prompt.id = "prompt";
- prompt.style.textAlign = "center";
- prompt.style.position = "absolute";
- prompt.style.height = "60px";
- prompt.style.marginLeft = "-100px";
- prompt.style.marginTop = "-30px";
- prompt.style.left = "30%";
- prompt.style.top = "5%";
- prompt.style.color = "white";
- prompt.style.fontSize = "25px";
- prompt.style.borderRadius = "20px";
- prompt.style.textAlign = "center";
- prompt.style.lineHeight = "60px";
- if (document.getElementById("") == null) {
- document.body.appendChild(prompt);
- prompt.innerHTML = data;
- setTimeout(function () {
- document.body.removeChild(prompt);
- }, time);
- }
- }
- /**************************打开URL按钮的JavaScript******************************************/
- // 获取打开URL按钮元素
- var openBtn = document.getElementById("openButton");
- // 添加点击事件处理程序
- openBtn.addEventListener('click', function () {
- // 获取文件路径
- // 这里假设您已经有一个函数来获取文件路径,例如 prompt('请输入文件路径', 'D:/前端学习', '_blank');
- var filePath = prompt("请输入网站地址或者本地文件路径", "D:/备忘录信息");
- if (filePath) {
- // 使用window.location对象的assign()方法导航到指定文件
- // window.location.assign(filePath);
- // 或者使用window.open()方法打开新窗口导航到指定文件
- window.open(filePath);
- } else {
- displayAlert('info', '未提供有效的文件路径!', 1500);
- // alert("未提供有效的文件路径!");
- }
- });
- /**************************本地文件读取的函数******************************************/
- /**************************复制文本******************************************/
- var oContent = document.getElementById('oContent');
- oContent.ondragend = function () {
- document.execCommand("Copy");
- // alert("复制成功")
- displayAlert('error', '复制成功!', 1500);
- };
- </script>
- </html>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。