第20次修改了可删除可持久保存的前端html备忘录:重新布局

第20次修改了可删除可持久保存的前端html备忘录:重新布局

 

<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>与妖为邻备忘录</title>
</head>
<style>
  * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    list-style: none;
    /* 文本禁止选中 */
    user-select: none;
  }
  body {
    /* 相对定位 */
    position: relative;
    width: 100%;
    height: 100vh;
    color: #fffbfb;
    text-shadow: 1px 1px 1px #000;
  }
  input,
  button {
    /* 鼠标变小手 */
    cursor: pointer;
    /* 圆角 */
    border-radius: 5px;
    font-size: 18px;
    border: 1px solid rgb(134, 133, 133);
    color: rgb(252, 223, 4);
    text-shadow: 1px 1px 1px #000;
    background-color: #ff02029c;
  }
  /*  */
  /* ***********************************************页面背景样式:.Page_background */
  .Page_background {
    /* 绝对定位 */
    position: absolute;
    object-fit: contain;
    min-width: 100%;
    min-height: 100%;
    /* 视频不显示控制栏 */
    object-fit: cover;
    /* 视频定位方式设为固定 */
    position: fixed;
    /* //视频位置 */
    right: 0;
    bottom: 0;
    /* 不会因视频尺寸造成页面需要滚动 */
    width: auto;
    height: auto;
    /* z轴定位 */
    z-index: -100;
    /* 添加灰度蒙版,如果设定为100%则视频显示为黑白 */
    filter: grayscale(20%);
  }
  /* ***********************************************页面背景样式:.Page_background*****结束 */
  /*  */
  /* **************************页面总结区:.Page_summary_area *****开始 */
  .Page_summary_area {
    /* 规定段落中的文本不进行换行: */
    white-space: nowrap;
    /* line-height: 30px; */
    max-width: 1450px;
    margin: 0 auto;
    /* 当前时间 #current_time*/
    #current_time {
      color: #ffea00;
      text-shadow: 1px 1px 1px #000;
      /* 粘性定位 */
      /* position: sticky; */
      /* 固定定位 */
      position: fixed;
      top: 20px;
      left: 50%;
    }
  }
  /* **************************页面总结区:.Page_summary_area ***结束 */
  /*  */
  /* **************************页面标题区:.Page_title_area *****开始 */
  .Page_title_area {
    max-width: 1500px;
    margin: 0 auto;
    /* 页面导航.Page_navigation */
    .Page_navigation {
      /* 固定定位 */
      position: fixed;
      top: 40px;
      left: 12%;
      a {
        margin: 0 20px;
      }
    }
    /* 首页 .homepage */
    .homepage {
      color: #df7a0d;
      /* 鼠标变小手 */
      cursor: pointer;
    }
    a {
      color: #faea05;
      text-shadow: 1px 1px 1px #000;
    }
  }
  /* **************************页面标题区:.Page_title_area *****结束 */
  /*  */
  /* **************************常用网站 .frequently_used_websites开始  */
  .frequently_used_websites {
    position: fixed;
    top: 75px;
    right: 0;
    width: 170px;
    /* 文本居中 */
    text-align: center;
    a {
      text-decoration: none;
      margin: 20px 0px;
      color: #ff814b;
      /* 排列 */
      display: flex;
      /* 居中对齐 */
      justify-content: center;
    }
  }
  /* **************************常用网站 .frequently_used_websites结束 */
  /*  */
  /* **************************备忘内容区:.memo_content_area *****开始 */
  .memo_content_area {
    border: 1px solid rgb(134, 133, 133);
    max-width: 1300px;
    margin: 0 auto;
    /* 文字大小 */
    font-size: 20px;
    .a_button {
      color: rgb(252, 181, 181);
      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);
      padding: 0 130px;
      /* 解除文本禁止选中 */
      user-select: text;
      border-radius: 20px;
    }
    span {
      /* 解除文本禁止选中 */
      user-select: text;
      color: #99ff7d;
      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);
    }
    a {
      text-decoration: none;
      color: #ebf704;
    }
  }
  /* **************************备忘内容区:.memo_content_area *****结束 */
  /* 
  /* 
  /* ****************编辑文本区 .edit_text 开始 */
  .edit_text {
    /* 固定定位 */
    position: fixed;
    /* 距离顶部80px,距离左侧0px */
    top: 70px;
    left: 0;
    /* 宽高 */
    width: 170px;
    background-color: #9bed9b85;
    input[type="file"] {
      margin: 3px;
      width: 160px;
      height: 30px;
      background-color: #11b711a7;
    }
    textarea {
      /* 文字大小 */
      font-size: 20px;
      margin: 3px;
      width: 160px;
      height: 100px;
      color: #ffffff;
      text-shadow: 1px 1px 1px #000;
      background-color: #11b711a7;
      &::placeholder {
        font-size: 20px;
        color: #ffffff;
      }
    }
    .up-button,
    input[type="reset"] {
      margin: 3px 22px;
    }
  }
  /* **********************编辑文本区 .edit_text 结束 */
</style>
<body>
  <!-- -------------************************************************ 页面背景 .Page_background -->
  <div class="Page_background">
    <video autoplay loop muted width="100%" height="100%">
      <source src="file:///D:\My homepage\Video\泰国普吉岛卡伦海滩.mp4" type="video/mp4">
    </video>
  </div>
  <!-- -----------***************************************************页面背景 .Page_background -->
  <!--  -->
  <!-- ------------***********************************************页面总结区 .Page_summary_area-->
  <div class="Page_summary_area">
    <div class="summary">浏览器主页,整理本地资源!备忘日常生活、各类教程、网页素材!第20次更改:0.0.0</div>
    <p id="current_time">当前时间</p>
  </div>
  <!--  *-----------********************************************页面总结区 .Page_summary_area 结束-->
  <!--  -->
  <div class="Page_title_area">
    <h1>备忘录</h1>
    <!-- *****----------------*******************页面导航 .Page_navigation-->
    <span class="Page_navigation">
      <a href="file:///C:/Users/90917/Desktop/%E5%A4%87%E5%BF%98%E5%BD%95/%E5%A4%87%E5%BF%98%E5%BD%95.html"
        class="current_page_item" title="首页" style="color:#df7a0d"><b>首页</b></a>
      <a class="JS-colla">我的收藏</a>
      <a class="JS-colla">我的图片</a>
      <a class="JS-colla">更多</a>
    </span>
  </div>
  <!-- ***********------**************************页面导航 .Page_navigation结束-->
  <!--  -->
  <!-- ***********------**************************常用网站 .frequently_used_websites开始-->
  <div class="frequently_used_websites">
    <span>常用网站</span>
    <hr />
    <a href="https://cn.bing.com/search?q=%E7%BF%BB%E8%AF%91&qs=
      n&form=QBRE&sp=-1&lq=0&sm=csrmain&pq=%E7%BF%BB%E8%AF%91&sc
      =10-2&sk=&cvid=08CF7C75398B4C3C97E7AEC5D3D0921F&ghsh=0&ghacc=0&ghpl=" title="在线翻译" class=""
      target="_blank">在线翻译</a>
    <a href="https://www.bilibili.com/" title="bilibili" class="" target="_blank">哔哩哔哩</a>
    <a href="https://www.baidu.com/" title="百度一下" class="" target="_blank">百度一下</a>
    <a href="https://blog.csdn.net/lulei5153?spm=1011.2415.3001.5343" title="与妖为邻CSDN博客" class="">与妖为邻的CSDN博客</a>
  </div>
  <!-- ***********------**************************常用网站 .frequently_used_websites结束-->
  <hr>
  <!-- ------------备忘内容区:.memo_content_area *****开始 ----------------------------------------------->
  <div class="memo_content_area" id="memo">
    <span class="a_button"> &lt;button class="a-href"&gt;
      &lt;a href="输入网站地址" target="_blank"&gt;
      输入网站名称
      &lt;/a&gt; &lt;/button&gt;
    </span>
  </div>
  <!-- ------------备忘内容区:.memo_content_area *****结束 ------------------------------------------------>
  <!-- ------------------编辑文本区 .edit_text 开始-->
  <div class="edit_text">
    <form id="myForm">
      <input type="file" name="inputfile" accept="text/plain, text/css, text/html, text/javascript, text/markdown"
        class="background3D" />
      <br>
      <textarea class="up-textarea" name="uptextarea" rows="1" cols="30%"
        placeholder="选择本地txt、js、css或html文件,文件内容会被自动读取"></textarea>
      <br>
      <button type="text" class="up-button">添加</button>
      <input type="reset" value="重置">
      <!--  -->
      <button id="openButton">打开URL</button>
      <button id="up-button1" class="delete">对选择删除</button>
      <!--  -->
    </form>
  </div>
  <!-- ------------------编辑文本区 .edit_text 结束-->
</body>
<script>
  /* *********当前时间*current_time********************************************************* */
  var current_time = document.getElementById("current_time");
  function showTime(time) {
    var now = new Date();
    var year = now.getFullYear();
    var month = now.getMonth();
    var day = now.getDate();
    var hour = now.getHours();
    var minu = now.getMinutes();
    var second = now.getSeconds();
    month = month + 1;
    var arr_work = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
    var week = arr_work[now.getDay()];
    month = month < 10 ? "0" + month : month;//时间月份个位补0
    day = day < 10 ? "0" + day : day;
    hour = hour < 10 ? "0" + hour : hour;
    minu = minu < 10 ? "0" + minu : minu;
    second = second < 10 ? "0" + second : second;
    var time = year + "年" + month + "月" + day + "日 " + week + " " + hour + ":" + minu + ":" + second;
    current_time.innerHTML = time;
  }
  window.setInterval("showTime(current_time)", 1000);
  /* *********************当前时间结束*current_time***************************************************** */
  /* 
/***********************备忘内容区:.memo_content_area *****开始*******************************/
  var uptext = document.querySelector(".up-textarea");
  var addto = document.querySelector(".up-button");
  var text = document.querySelector(".memo_content_area");
  /*************添加事件*****************/
  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();
  /**************************打开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("未提供有效的文件路径!");
    }
  });
  /**************************本地文件读取的函数******************************************/
  window.onload = function () {
    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;
      };
    };
  };
</script>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

苍穹外卖——项目搭建

一、项目介绍以及环境搭建 1.苍穹外卖项目介绍 1.1项目介绍 本项目&#xff08;苍穹外卖&#xff09;是专门为餐饮企业&#xff08;餐厅、饭店&#xff09;定制的一款软件产品&#xff0c;包括 系统管理后台 和 小程序端应用 两部分。其中系统管理后台主要提供给餐饮企业内部员…

4 万字全面掌握数据库、数据仓库、数据集市、数据湖、数据中台

如今&#xff0c;随着诸如互联网以及物联网等技术的不断发展&#xff0c;越来越多的数据被生产出来-据统计&#xff0c;每天大约有超过2.5亿亿字节的各种各样数据产生。这些数据需要被存储起来并且能够被方便的分析和利用。 随着大数据技术的不断更新和迭代&#xff0c;数据管…

【瑞萨RA6M3】1. 基于 vscode 搭建开发环境

基于 vscode 搭建开发环境 1. 准备2. 安装2.1. 安装瑞萨软件包2.2. 安装编译器2.3. 安装 cmake2.4. 安装 openocd2.5. 安装 ninja2.6. 安装 make 3. 生成初始代码4. 修改 cmake 脚本5. 调试准备6. 仿真 1. 准备 需要瑞萨仓库中的两个软件&#xff1a; MDK_Device_Packs.zipse…

Dockerd的使用

端口映射 存储卷 类似于mount&#xff0c;把真机的某个目录映射都容器里面 -v 选项可以有多个 利用存储卷修改配置文件 容器间网络模式 共享网络为 --networkcontainer&#xff1a;容器名 微服务架构 一种由容器为载体&#xff0c;使用多个小型服务组合来构建复杂的架构为…

Jupyter Notebook安装使用(一)

1. 简介 Jupyter Notebook 是一个非常强大的工具&#xff0c;它允许用户创建和共享包含实时代码、方程式、可视化和叙事文本的文档。这种工具特别适合数据清理和转换、数值模拟、统计建模、数据可视化、机器学习等多种应用领域。 2. 安装Jupyter Notebook 2.1. 使用 Anaconda…

【学习总结】Linux tmux 使用

1. 使用背景 本地连接服务器 AutoDL 训练模型时&#xff0c;使用 ssh 连接时&#xff1a; ssh -p xxxxx rootconnect.westc.gpuhub.com输入密码登录成功后 为了训练过程中本地和服务器始终连接&#xff0c;可以使用 tmux 终端复用工具开启后台训练 2. 安装 ~# sudo apt-ge…

苹果cmsV10 MXProV4.5自适应PC手机影视站主题模板苹果cms模板mxone pro

演示站&#xff1a;http://a.88531.cn:8016 MXPro 模板主题(又名&#xff1a;mxonepro)是一款基于苹果 cms程序的一款全新的简洁好看 UI 的影视站模板类似于西瓜视频&#xff0c;不过同对比 MxoneV10 魔改模板来说功能没有那么多,也没有那么大气&#xff0c;但是比较且可视化功…

JVM专题——内存结构

本文部分内容节选自Java Guide和《深入理解Java虚拟机》, Java Guide地址: https://javaguide.cn/java/jvm/memory-area.html &#x1f680; 基础&#xff08;上&#xff09; → &#x1f680; 基础&#xff08;中&#xff09; → &#x1f680;基础&#xff08;下&#xff09;…

Day82:服务攻防-开发组件安全Solr搜索Shiro身份Log4j日志本地CVE环境复现

目录 J2EE-组件Solr-本地demo&CVE 命令执行&#xff08;CVE-2019-17558&#xff09; 远程命令执行漏洞(CVE-2019-0193) Apache Solr 文件读取&SSRF (CVE-2021-27905) J2EE-组件Shiro-本地demo&CVE CVE_2016_4437 Shiro-550Shiro-721(RCE) CVE-2020-11989(身…

《Java面试自救指南》(专题二)计算机网络

文章目录 力推的计网神课get请求和post请求的区别在浏览器网址输入一个url后直到浏览器显示页面的过程常用状态码session 和 cookie的区别TCP的三次握手和四次挥手七层OSI模型&#xff08;TCP/IP协议模型&#xff09;各种io模型的知识http协议和tcp协议的区别https和http的区别…

软件杯 深度学习乳腺癌分类

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度&#xff0c;召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

【正点原子探索者STM32F4】TFTLCD实验学习记录:FSMC控制 TFTLCD的寄存器配置

FSMC控制 TFTLCD的寄存器配置 异步模式 A控制 TFTLCDFSMC寄存器配置ILI9341电平持续时间要求 参考 异步模式 A控制 TFTLCD LCD以ILI9341为例 FSMC寄存器配置 对于异步突发访问方式&#xff0c; FSMC 主要设置 3 个时间参数&#xff1a;地址建立时间(ADDSET)、 数据 建立时间…

docker的安装及入门指令

目录 一、将docker安装到云服务器步骤 1.更新系统yum版本 2.安装所需依赖 3.添加docker仓库设置(使用的是阿里云) 4.安装docker引擎 5.启动docker并开启自动启动 6. 检查是否安装成功&#xff0c;成功会显示相应版本&#xff0c;否则安装失败 二、docker常用命令 1.从…

使用LIO-SAM进行点云赋色 与 激光雷达和相机的精细化标定(防止自己忘记的博客)----- 激光雷达和相机的精细化标定

目录 1 标定相机 2 激光雷达、相机粗标定 3 精细化标定激光雷达和相机 1 标定相机 使用Kaliber标定D435i相机&#xff0c;本次标定的分辨率为1920*1080&#xff0c;相机的内参如下&#xff1a; FX&#xff1a;1439.96402547 FY&#xff1a;1442.82612329 CX&#xff1a;979.0…

Hadoop-MapReduce

一、MapReduce 概述 1.1 MapReduce 定义 MapReduce 是一个分布式运算程序的编程框架&#xff0c;是用户开发“基于 Hadoop 的数据分析应用”的核心框架。 MapReduce 核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序&#xff0c;并发运行在…

需求分析及设计定义

背景 经过不断的折腾&#xff0c;一切过程都是为了呈现输出&#xff0c;这个阶段就是要交付需求和方案的环节了&#xff0c;很多失败的项目就是上来就到这个环节&#xff0c;倒着捣鼓&#xff0c;先写个文档&#xff0c;做个原型&#xff0c;甚至提出方案&#xff0c;然后再和…

KeyguardClockSwitch的父类

KeyguardClockSwitch 定义在KeyguardStatusView中, mClockView findViewById(R.id.keyguard_clock_container);KeyguardClockSwitch的父类为&#xff1a; Class Name: LinearLayout Class Name: KeyguardStatusView Class Name: NotificationPanelView Class Name: Notificat…

设计模式总结-简单工厂模式

简单工厂模式 创建型模式创建型模式概述创建型模式种类 简单工厂模式模式定义模式动机模式结构模式分析模式实例与解析实例一&#xff1a;简单电视机工厂实例二&#xff1a;权限管理 模式优缺点简单工厂模式的优点简单工厂模式的缺点 模式适用环境模式扩展 小结 创建型模式 创…

redis进阶入门主从复制与哨兵集群

一、主从复制 1.1背景 一般来说&#xff0c;要将 Redis用于工程项目中&#xff0c;只使用一台 Redist是万万不能的&#xff0c;原因如下&#xff1a; 从结构上&#xff0c;单个 Redist服务器会发生单点故障&#xff0c;井且一台服务器需要处理所有的请求负載&#xff0c;压力…

ABBYY FineReader15免费电脑OCR图片文字识别软件

产品介绍&#xff1a;ABBYY FineReader 15 OCR图片文字识别软件 ABBYY FineReader 15是一款光学字符识别&#xff08;OCR&#xff09;软件&#xff0c;专门设计用于将扫描的文档、图像和照片中的文本转换成可编辑和可搜索的格式。这款软件利用先进的OCR技术&#xff0c;能够识别…