javaScript蓝桥杯----阅读吧

news2024/11/27 18:51:30

目录

  • 一、介绍
  • 二、准备
  • 三、目标
  • 四、代码
  • 五、完成


一、介绍

“读万卷书,行万里路”,无论你现在贫穷或富有,身和心一定要有一个在路上。那么,在快节奏的今天,人们是如何利用碎片化的时间去阅读的呢?没错,那就是电子书了。有了它,我们就可以随时随地,想读就读~

本题需要在已提供的基础项目中使用 Vue 2.x 完善代码,最终实现一个简易的电子书阅读器。

二、准备

开始答题前,需要先打开本题的项目文件夹,目录结构如下:

├── effect.gif
├── index.html
├── css
└── js
    └── vue.js

其中:

effect.gif 是最终实现的效果图。
index.html 是主页面。
css 是样式文件夹。
js/vue.js 是 Vue 2.x 文件。

在浏览器中预览 index.html 页面,显示如下所示:
在这里插入图片描述

三、目标

请在 index.html 文件中补全代码,最终实现以下功能:

  1. 实现头部工具栏显隐功能。
    • 头部工具栏中的关闭图标和页面右上侧的设置图标,可以进行头部工具栏的显隐切换。效果如下:
      在这里插入图片描述
      在这里插入图片描述
  2. 实现设置阅读主题功能。
    • 点击头部工具栏阅读主题后面任意一个圆形色块,该色块显示勾选状态(即 .icon-selected),同时阅读区的背景色修改为该色块对应颜色。效果如下:
      在这里插入图片描述
    • 当阅读区的背景色为黑色时,阅读区的字体色为白色(即 #ffffff),其它背景色对应的字体颜色为黑色(即 #333333)。
    • 在这里插入图片描述
  3. 实现设置字体大小功能。
    • 点击工具栏中 “A-” 或 “A+” 按钮,阅读区的字体大小呈 2px 递减或递增,并将字号同步更新到 “A-” 和 “A+” 之间的元素(即 .lang**)中,需要注意的是:字体最小为 12px,最大为 48px,且阅读区的行高(即 **line-height CSS 属性)始终比其字体大小多 10px。
    • 在这里插入图片描述

完成gif
在这里插入图片描述

四、代码

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>阅读吧</title>
    <link rel="stylesheet" href="./css/iconfont/iconfont.css" />
    <link rel="stylesheet" type="text/css" href="./css/index.css" />
  </head>
  <body>
    <div id="app">
      <!-- TODO:请在下面实现需求 -->
      <!-- 设置按钮图标 -->
      <a class="iconfont icon-setting"></a>
      <!-- 头部工具栏 -->
      <transition name="fade">
        <div class="header">
          <ul class="tools">
            <li class="container">
              <div class="left">阅读主题</div>
              <!-- 设置主题的圆形色块 -->
              <div class="right" id="setBG">
                <a
                  style="background-color: #f6edd4"
                  class="iconfont icon-selected"
                ></a>
                <a style="background-color: #ebf4ea"></a>
                <a style="background-color: #e9f2f5"></a>
                <a style="background-color: #f6e8e4"></a>
                <a style="background-color: #000000"></a>
              </div>
            </li>
            <li class="container">
              <div class="left">字体大小</div>
              <!-- 设置字体大小的按钮 -->
              <div class="set-font">
                <a class="prev">A-</a><b></b> <span class="lang">18</span
                ><b></b>
                <a class="next">A+</a>
              </div>
            </li>
            <li class="container">
              <!-- 关闭 x 图标 -->
              <a class="iconfont icon-close"></a>
            </li>
          </ul>
        </div>
      </transition>

      <!-- 阅读区 -->
      <p
        class="text-content"
        style="
          background-color: #f6edd4;
          color: #000000;
          font-size: 18px;
          line-height: 28px;
        "
      >
        汪淼觉得,来找他的这四个人是一个奇怪的组合:两名警察和两名军人,如果那两个军人是武警还算正常,但这是两名陆军军官。<br /><br />

        汪淼第一眼就对来找他的警察没有好感。其实那名穿警服的年轻人还行,举止很有礼貌,但那位便衣就让人讨厌了。这人长得五大三粗,一脸横肉,穿着件脏兮兮的皮夹克,浑身烟味,说话粗声大嗓,是最令汪淼反感的那类人。<br /><br />

        “汪淼?”那人问,直呼其名令汪淼很不舒服,况且那人同时还在点烟,头都不抬一下。不等汪淼回答,他就向旁边那位年轻人示意了一下,后者向汪淼出示了警官证,他点完烟后就直接向屋里闯。<br /><br />

        “请不要在我家里抽烟。”汪淼拦住了他。<br /><br />

        “哦,对不起,汪教授。这是我们史强队长。”年轻警官微笑着说,同时对姓史的使了个眼色。<br /><br />

        “成,那就在楼道里说吧。”史强说着,深深地吸了一大口,手中的烟几乎燃下去一半,之后竟不见吐出烟来。“你问。”他又向年轻警官偏了一下头。<br /><br />

        “汪教授,我们是想了解一下,最近你与‘科学边界’学会的成员有过接触,是吧?”<br /><br />

        “‘科学边界’是一个在国际学术界很有影响的学术组织,成员都是著名学者。这样一个合法的学术组织,我怎么就不能接触了呢?”<br /><br />

        “你看看你这个人!”史强大声说,“我们说它不合法了吗?我们说不让你接触了吗?”他说着,刚才吸进肚子里的烟都喷到汪淼脸上。<br /><br />

        “那好,这属于个人隐私,我没必要回答你们的问题。”<br /><br />

        “还啥都成隐私了,像你这样一个著名学者,总该对公共安全负责吧。”史强把手中的烟头扔掉,又从压扁了的烟盒里抽出一根。<br /><br />

        “我有权不回答,你们请便吧。”汪淼说着要转身回屋。<br /><br />

        “等等!”史强厉声说,同时朝旁边的年轻警官挥了一下手,“给他地址和电话,下午去走一趟。”<br /><br />

        “你要干什么!”汪淼愤怒地质问,这争吵引得邻居们也探出头来,想看看出了什么事。<br /><br />

        “史队!你说你――”年轻警官生气地将史强拉到一边,显然他的粗俗不止是让汪淼一人不适应。<br /><br />

        <label>————— 文章摘自著名科幻小说《三体》</label>
      </p>
    </div>
    <script type="text/javascript" src="./js/vue.js"></script>
    <script type="text/javascript">
      // TODO:请在下面实现需求
      new Vue({
        // 注意:请勿修改 data 选项中已提供的数据!!!
        el: "#app",
        data: {
          bgList: ["#f6edd4", "#ebf4ea", "#e9f2f5", "#F6E8E4", "#000000"], // 阅读主题色列表(与设置主题的圆形色块一一对应)
        },
      });
    </script>
  </body>
</html>

五、完成

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>阅读吧</title>
    <link rel="stylesheet" href="./css/iconfont/iconfont.css" />
    <link rel="stylesheet" type="text/css" href="./css/index.css" />
  </head>
  <body>
    <div id="app">
      <!-- TODO:请在下面实现需求 -->
      <!-- 设置按钮图标 -->
      <a @click="showTools" class="iconfont icon-setting"></a>
      <!-- 头部工具栏 -->
      <transition v-if="isShowTools" name="fade">
        <div class="header">
          <ul class="tools">
            <li class="container">
              <div class="left">阅读主题</div>
              <!-- 设置主题的圆形色块 -->
              <div class="right" id="setBG">
                <a
                  @click="changeColor(index)"
                  v-for="(item,index) in bgList"
                  :style="{'background-color':item}"
                  :class="{'iconfont':true,'icon-selected':index==isActiveColor}"
                ></a>
              </div>
            </li>
            <li class="container">
              <div class="left">字体大小</div>
              <!-- 设置字体大小的按钮 -->
              <div class="set-font">
                <a @click="updateFontSize(false)" class="prev">A-</a><b></b>
                <span class="lang">{{fontSize}}</span><b></b>
                <a @click="updateFontSize(true)" class="next">A+</a>
              </div>
            </li>
            <li class="container">
              <!-- 关闭 x 图标 -->
              <a @click="showTools" class="iconfont icon-close"></a>
            </li>
          </ul>
        </div>
      </transition>

      <!-- 阅读区 -->
      <p
        class="text-content"
        :style="{
          'background-color': `${bgList[isActiveColor]}`,
          'color': isActiveColor === 4 ? '#ffffff' : '#333333',
          'font-size': `${fontSize}px`,
          'line-height': '28px',}
        "
      >
        汪淼觉得,来找他的这四个人是一个奇怪的组合:两名警察和两名军人,如果那两个军人是武警还算正常,但这是两名陆军军官。<br /><br />

        汪淼第一眼就对来找他的警察没有好感。其实那名穿警服的年轻人还行,举止很有礼貌,但那位便衣就让人讨厌了。这人长得五大三粗,一脸横肉,穿着件脏兮兮的皮夹克,浑身烟味,说话粗声大嗓,是最令汪淼反感的那类人。<br /><br />

        “汪淼?”那人问,直呼其名令汪淼很不舒服,况且那人同时还在点烟,头都不抬一下。不等汪淼回答,他就向旁边那位年轻人示意了一下,后者向汪淼出示了警官证,他点完烟后就直接向屋里闯。<br /><br />

        “请不要在我家里抽烟。”汪淼拦住了他。<br /><br />

        “哦,对不起,汪教授。这是我们史强队长。”年轻警官微笑着说,同时对姓史的使了个眼色。<br /><br />

        “成,那就在楼道里说吧。”史强说着,深深地吸了一大口,手中的烟几乎燃下去一半,之后竟不见吐出烟来。“你问。”他又向年轻警官偏了一下头。<br /><br />

        “汪教授,我们是想了解一下,最近你与‘科学边界’学会的成员有过接触,是吧?”<br /><br />

        “‘科学边界’是一个在国际学术界很有影响的学术组织,成员都是著名学者。这样一个合法的学术组织,我怎么就不能接触了呢?”<br /><br />

        “你看看你这个人!”史强大声说,“我们说它不合法了吗?我们说不让你接触了吗?”他说着,刚才吸进肚子里的烟都喷到汪淼脸上。<br /><br />

        “那好,这属于个人隐私,我没必要回答你们的问题。”<br /><br />

        “还啥都成隐私了,像你这样一个著名学者,总该对公共安全负责吧。”史强把手中的烟头扔掉,又从压扁了的烟盒里抽出一根。<br /><br />

        “我有权不回答,你们请便吧。”汪淼说着要转身回屋。<br /><br />

        “等等!”史强厉声说,同时朝旁边的年轻警官挥了一下手,“给他地址和电话,下午去走一趟。”<br /><br />

        “你要干什么!”汪淼愤怒地质问,这争吵引得邻居们也探出头来,想看看出了什么事。<br /><br />

        “史队!你说你――”年轻警官生气地将史强拉到一边,显然他的粗俗不止是让汪淼一人不适应。<br /><br />

        <label>————— 文章摘自著名科幻小说《三体》</label>
      </p>
    </div>
    <script type="text/javascript" src="./js/vue.js"></script>
    <script type="text/javascript">
      // TODO:请在下面实现需求
      new Vue({
        // 注意:请勿修改 data 选项中已提供的数据!!!
        el: "#app",
        data: {
          bgList: ["#f6edd4", "#ebf4ea", "#e9f2f5", "#F6E8E4", "#000000"],
          // 阅读主题色列表(与设置主题的圆形色块一一对应)
          //是否显示头部工具栏
          isShowTools: true,
          //现在激活的颜色
          isActiveColor: 0,
          fontSize: 18,
        },
        methods: {
          showTools() {
            this.isShowTools = !this.isShowTools;
          },
          changeColor(value) {
            this.isActiveColor = value;
          },
          updateFontSize(flag) {
            if (flag) {
              console.log(123)
              //增加
              if (this.fontSize < 48) {
                this.fontSize += 2;
              }
            } else {
              if (this.fontSize > 12) {
                this.fontSize -= 2;
              }
            }
          },
        },
      });
    </script>
  </body>
</html>

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

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

相关文章

【MySQL高级篇笔记-事务基础知识(中) 】

此笔记为尚硅谷MySQL高级篇部分内容 目录 一、数据库事务概述 1、存储引擎支持情况 2、基本概念 3、事务的ACID特性 1.原子性&#xff08;atomicity&#xff09; 2.一致性&#xff08;consistency&#xff09; 3.隔离型&#xff08;isolation&#xff09; 4.持久性&a…

卷积编码和维特比译码

文章目录 卷积编码维特比译码 卷积编码 卷积码是一种非分组码&#xff0c;通常适用于前向纠错。在分组码中&#xff0c;编码器产生的 n 个码元的一个码组&#xff0c;完全决定于这段时间中 k 比特输入信息。这个码组中的监督位仅监督本码组中 k 个信息位。卷积码在编码时虽然也…

Calico介绍

Calico 是一个基于 BGP 的纯三层的网络方案&#xff0c;与 OpenStack 、Kubernetes 、AWS 、GCE 等云平台都能够良好地集成 。 Calico 在每个计算节点都利用 Linux Kernel 实现了一个高效的 vRouter 来负责数据转发 。每个 vRouter 都通过 BGP 协议把在本节点上运行的容器的路由…

msf渗透练习-php后门反弹

说明&#xff1a; 本章内容&#xff0c;仅供学习&#xff0c;不要用于非法用途&#xff08;做个好白帽&#xff09; &#xff08;一&#xff09;后门反弹是什么 后门反弹是指攻击者在成功入侵一台计算机后&#xff0c;在目标计算机上安装一个“后门程序”&#xff0c;将该程序…

内网安全:横向传递攻击(SMB || WMI 明文或 hash 传递)

内网安全&#xff1a;横向传递攻击. 横向移动就是在拿下对方一台主机后&#xff0c;以拿下的那台主机作为跳板&#xff0c;对内网的其他主机再进行后面渗透&#xff0c;利用既有的资源尝试获取更多的凭据、更高的权限&#xff0c;一步一步拿下更多的主机&#xff0c;进而达到控…

解决语言障碍:如何将Axure变为中文版?

Axure 是一款备受称赞的原型设计工具&#xff0c;被誉为 "交互神器"。然而&#xff0c;在国内&#xff0c;一些设计师对于使用 Axure 有所犹豫&#xff0c;其中语言环境不适应是主要的顾虑之一。在本文中&#xff0c;我们将探讨一种更适合国内设计师的 Axure 中文版即…

网工内推 | 国企专场,补贴福利多,CCNP认证以上优先

01 凯盛数智信息技术科技&#xff08;上海&#xff09;有限公司 &#x1f537;招聘岗位&#xff1a;网络工程师&#xff08;IT工程师&#xff09; &#x1f537;职责描述&#xff1a; 1、负责公司数据中心机房、服务器及网络设备的管理和维护工作&#xff1b; 2、负责公司基础…

微信小程序实用工具——渐变色按钮(二)

今日推荐&#x1f481;‍♂️ 今年的国美毕业展已经开始了&#x1f9d1;‍&#x1f3a8;&#x1f9d1;‍&#x1f3a8;在杭州的小伙伴可以快速出击了&#x1f3c3;‍♂️&#x1f3c3;‍♂️ 这里我想推荐其中的一副版画作品《突围》 在众多版画系作品中被它所吸引 文章目录 今…

【linux离线升级gcc版本---gcc4.8.5-->gcc12.2.0】

【linux离线升级gcc版本---gcc4.8.5--&#xff1e;gcc12.2.0】 &#x1f53b; 一、gcc简介&#x1f53b; 二、gcc下载上传&#x1f53b; 三、查看和安装gcc-12.2.0需要的依赖3.1 &#x1f341; 查看gcc-12.2.0所需依赖库3.2 &#x1f341; 安装gmp、mpfr、mpc、isl &#x1f53…

DJ4-8 抖动与工作集

目录 4.8 抖动与工作集 1、缺页率对有效访问时间的影响 2、CPU 利用率急剧下降的原因 3、抖动 4、工作集模型 5、抖动的预防 4.9 请求分段存储管理方式 4.9.1 请求分段中的硬件支持 4.9.2 分段的共享与保护 4.8 抖动与工作集 1、缺页率对有效访问时间的影响 有…

总建面64万平,配3所幼儿园+54班九年制学校,坪山江岭竹元规划

近日&#xff0c;坪山区城市更新和土地整备局发布&#xff0c;关于《坪山区马峦街道江岭竹元片区城市更新单元规划》已通过深圳市城市规划委员会法定图则委员会审批。现予以公告。 项目位于坪山区马峦街道&#xff0c;南邻南坪快速路&#xff0c;北邻比亚迪路&#xff0c;东西两…

一种新型智能优化算法—鼠群优化(RSO)算法

目录 一、RSO理论基础 二、RSO数学模型 2.1 追逐猎物 2.2 攻击猎物 三、RSO流程图 四、运行结果 鼠群优化(Rat Swarm Optimizer&#xff0c;RSO)算法是由Dhiman G等人于2020年提出&#xff0c;主要启发于老鼠追逐和攻击猎物的种群行为。该优化算法具有结构简单&#xf…

DJ4-2 程序的装入和链接

目录 4.2.1 程序的装入 一、绝对装入方式 二 、可重定位装入方式 三、动态运行时装入方式 4.2.2 程序的链接 一、静态链接 二、装入时动态链接 三、运行时动态链接 在多道程序环境下&#xff0c;如果程序要运行&#xff0c;那么必须为之创建进程。而创建进程的第一件…

六级备考8天|CET-6|阅读强化2|19:30~21:00

目录 正确选项两大标准 练习 问题一 问题二 问题三 问题四​ 问题五 ​ 正确选项两大标准 1. 定位准确 2. 改写正确 举例&#xff1a; 练习 问题一 immediate vicinity oftoo close unprecedented 前所未有的&#xff1b; 问题二 主语&#xff1a;a global campaign 谓…

解决问题 Could not obtain transaction-synchronized Session for current thread

一、问题现象 在使用Hibernate的项目中&#xff0c;在一个定时任务中&#xff0c;执行某段代码&#xff0c;满足条件后&#xff0c;更新表数据。 程序在执行到更新表数据的时候&#xff0c;报错如下&#xff1a; Could not obtain transaction-synchronized Session for cur…

chatgpt赋能python:用Python优化微信群SEO

用Python优化微信群SEO 随着微信群的普及&#xff0c;越来越多的人开始将其作为社交媒体和个人品牌的重要推广渠道之一。然而&#xff0c;想要让你的微信群在搜索引擎中排名靠前&#xff0c;就需要进行一些有效的SEO技巧&#xff0c;以吸引更多的目标用户。 在本文中&#xf…

黏糊糊的菜单

先看效果&#xff1a; 再看代码&#xff1a; <!--黏糊糊的菜单 可融合--> <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-s…

【pytorch】维度变换

【pytorch】维度变换 View操作unSqueeze操作图片处理的一个案例squeeze 维度删减操作维度扩展-expand维度扩展-repeat矩阵的转置操作-transpose View操作 将一个四维的张量&#xff08;b x c x h x w&#xff09;转换成一个二维的张量 对于四张图片 将每一张图像用一行向量进…

阿里内部秀出新天际的SpringBoot实战笔记,让开发像搭积木一样简单

​什么是 Spring Boot Java (面向对象编程语言)经过 30 多年的发展&#xff0c;产生了非常多的优秀框架。Spring (为解决企业应用程序开发的复杂性而创建的框架)曾是最受欢迎的 Java 框架之一&#xff0c; 但随着 Node、Ruby、Groovy、PHP 等脚本语言的蓬勃发展&#xff0c;使…

行业热点 | Quest 3发布、苹果MR发布在即, 6月初XR大戏即将上演

编者按&#xff1a; 昨夜&#xff0c;朋友圈被Quest3占领&#xff0c;Meta首款消费级MR头显Quest 3在其一年一度的游戏展示会前正式发布&#xff0c;扎克伯格亲自站台&#xff0c;这也侧面透露确实将还有几天就要发布的苹果MR头显视为强有力的竞争对手。 另一边&#xff0c;W…