jjzjj

2022年第十三届蓝桥杯web大学组题解

前端小白在前进 2024-03-26 原文

第十三届蓝桥杯web大学组题解

这段时间有部分小伙伴在问有没有什么好的刷题网站
在这里给大家推荐一款刷题网站点击访问牛客网
牛客网支持多种编程语言的学习,各大互联网大厂面试真题,从基础到拔高,快来体验一下吧!

1.水果拼盘

/* TODO:待补充代码 */
#pond {
  flex-direction: column;
  flex-wrap: wrap;
  /* display: flex; */
}

第一道题就是送分题,简单的flex布局中的属性
本题考点:flex布局属性

2.展开你的扇子

/*TODO:请补充 CSS 代码*/
#box:hover>#item1  {
  transform: rotate(-60deg);
}
#box:hover>#item2  {
  transform: rotate(-50deg);
}
#box:hover>#item3  {
  transform: rotate(-40deg);
}
#box:hover>#item4  {
  transform: rotate(-30deg);
}
#box:hover>#item5  {
  transform: rotate(-20deg);
}
#box:hover>#item6  {
  transform: rotate(-10deg);
}
#box:hover>#item7  {
  transform: rotate(10deg);
}
#box:hover>#item8  {
  transform: rotate(20deg);
}
#box:hover>#item9  {
  transform: rotate(30deg);
}
#box:hover>#item10  {
  transform: rotate(40deg);
}
#box:hover>#item11  {
  transform: rotate(50deg);
}
#box:hover>#item12  {
  transform: rotate(60deg);
}

这道题其实也是送分题,可惜我的css没有复习旋转,给忘记了rotate属性,并且旋转角度的单位是deg,导致了这道题白给了,难受啊,唉!!!
本题考点:transform中的rotate属性,这道题非常简单

3.和手机相处的时光

/*TODO:ECharts 的配置中存在错误,请改正*/
    var option = {
      title: {
        text: "一周的手机使用时长",
      },
      xAxis: {
        type: "category",
        data: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"],
      },
      yAxis: {
        
        type: "value",
      },
      series: [
        {
          data: [2.5, 2, 2.6, 3.2, 4, 6, 5],
          type: "line",
        },
      ],
    };
    myChart.setOption(option);

第三道题其实也不难,只要你学习了echarts的基本属性这道题就可以做出来,只需将xAxis和yAxis中的属性互换一下就可以实现效果啦!
本题考点:echarts的相关属性

4.灯的颜色变化

// TODO:完善此函数 显示红色颜色的灯
function red() {
        // console.log(123);
        document.querySelector('#defaultlight').style.display = 'none'
        document.querySelector('#redlight').style.display = 'inline-block'
}

// TODO:完善此函数  显示绿色颜色的灯
function green() {
        document.querySelector('#defaultlight').style.display = 'none'
        document.querySelector('#redlight').style.display = 'none'
        document.querySelector('#greenlight').style.display = 'inline-block'
}

// TODO:完善此函数
function trafficlights() {
    setInterval(function(){
        red()
        setInterval(function(){
            green()
        },3000)
    },3000)
}

trafficlights();

本题其实难度也不大,根据题中的要求,封装函数,主要是使用定时器以及使用js操作dom
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
本题考点:setInterval()方法的使用,以及使用js操作dom

5.东奥大抽奖

// TODO:请完善此函数
function rolling() {
  time++; // 转动次数加1
  clearTimeout(rollTime);
  rollTime = setTimeout(() => {
    window.requestAnimationFrame(rolling); // 进行递归动画
  }, speed);
  // 当前li
  let liClass = '.li' +  (time <= 8 ? time % 9 :(time - 1) % 8 + 1)
  // 清除所有的li的active
  $('li').removeClass('active')
  // 添加当前li
  $(liClass).addClass('active')
  //获取当前li的文本
  let text = $(liClass).text()
  // time > times 转动停止
  if (time > times) {
    clearInterval(rollTime);
    $("#award").text(`恭喜你中奖${text}!!`);
    time = 0;
    return;
  }
}

这道题参考了一位大佬的解题思路,这道题的重点是找出来当前li,我考试中使用了遍历去做,但是并没有做出来,觉得是当前li获取的有问题
本题考点,使用jquery实现功能,对样式类名的修改,灵活获取当前的小li

6.蓝桥知识网

本题是布局题目,实现效果有很多办法,这里就不给大家上代码了,考试中我使用的是flex布局

7.布局切换

渲染页面代码:

    <div id="app" v-cloak>
      <!-- TODO:请在下面实现需求 -->
      <div class="bar">
        <a :class=" isActive ? 'grid-icon active' : 'grid-icon' " @click="one"></a>
        <a :class="isActive ? 'list-icon' : 'list-icon active'" @click="two"></a>
      </div>
      <ul v-for="(item,index) in goodsList" :key="index" :class="isActive ? 'grid' : 'list'">
        <li>
          <a href="#/3814" target="_blank">
            <img :src="item.image.large" alt="">
          </a>
          <p v-if="!isActive">{{item.title}}</p>
        </li>
      </ul>
    </div>

功能实现代码:

<script type="text/javascript">
  var vm = new Vue({
    el: "#app",
    data: {
      isActive: true,
      goodsList: [],
    },
    mounted() {
      // TODO:补全代码实现需求
      axios.get('./goodsList.json').then(res=>{
        this.goodsList = res.data
        console.log(this.goodsList);
      })
    },
    methods: {
      one() {
        this.isActive = true
      },
      two() {
        this.isActive = false
      }
    }
  });
</script>

这道题主要是去考察vue中的一些操作dom的方法,比如动态class,以及考察了vue-axios去获取数据进行渲染,只要多去思考一下这道题就可以做出来了
本题考点:使用vue中的一些常用指令去实现功能

8.购物车

            addToCart(goods){
                // TODO:修改当前函数,实现购物车加入商品需求
                let index = this.cartList.findIndex(item => item.name == goods.name)
                if(index == -1) {
                  goods.num = 1;
                  this.cartList.push(goods);
                }
                else {
                  this.cartList[index].num +=1
                }
                this.cartList = JSON.parse(JSON.stringify(this.cartList));
            },
            removeGoods(goods){
                // TODO:补全代码实现需求
                let index = this.cartList.findIndex(item => item.name == goods.name)
                if(this.cartList[index].num>1) {
                  this.cartList[index].num--
                }
                else {
                  this.cartList.splice(index,1)
                }
                this.cartList = JSON.parse(JSON.stringify(this.cartList));
            }

这道题说多了都是泪,这道题做了快一个小时没给弄出来,导致后两题都没有时间看了,我在做题中犯了一个非常大的错误,就是使用了indexOf()去判断goods,这样的结果是并不能解决点击购物车还会出现新的重复商品的问题,这样就直接导致了这道题的失败
本题考点:使用es6中的数组方法findIndex()去做一个类似于filter()的过滤,返回的是根据条件所找到对应对象的索引,然后根据索引进行相关操作

9.寻找小狼人

// 返回条件为真的新数组
Array.prototype.myarray = function (cb) {
  // TODO:待补充代码
  const arr = Object.create(this)
    const filterArr = [] // 没有符合条件的返回空数组
    for (let i = 0; i < arr.length; i++) {
        const res = cb(arr[i])
        if (res) {
            filterArr.push(arr[i])
        }
    }
  return filterArr
};

这道题就是让考生手写一个过滤函数,想写出来必须要理解filter()的实现原理,博客中有许多大佬发布了手写filter()函数的原生源码,非常值得大家去学习,这道题我没有怎么去看(主要是时间被耽误了),但是从这道题看出来js中封装的一些函数,必须要搞清楚它实现的原理
本题考点:手写一个filter()

10.课程列表

let pageNum = 1; // 当前页码,默认页码1
let maxPage; // 最大页数
let list = []
// TODO:待补充代码
let nameDom = document.querySelectorAll('.mb-1')[0]
let descriptionDom = document.querySelectorAll('.mb-1')[1]
let priceDom = document.querySelector('small')
let paginationDom = document.querySelector('#pagination')
let data;
function changeText(obj) {
  nameDom.innerText = obj.name 
  descriptionDom.innerText = obj.description
  priceDom.innerText = obj.price + '元'
  paginationDom.innerHTML = `${maxPage} 页,当前第 ${pageNum}`
}
axios.get('./js/carlist.json').then(res => {
  maxPage = res.data.length
  data = res.data
  if(maxPage) {
    changeText(res.data[0])
  } 
  paginationDom.innerHTML = `${maxPage} 页,当前第 ${pageNum}`
})
// 点击上一页
let prev = document.getElementById("prev");
prev.onclick = function () {
  // TODO:待补充代码
  console.log(pageNum);
  if(pageNum <= 1) {
    prev.className = 'page-item disabled'
    return 
  } 
  pageNum--
  if(pageNum < maxPage) {
    next.classList.remove('disabled')
  }
  changeText(data[pageNum - 1])
};
// 点击下一页
let next = document.getElementById("next");
next.onclick = function () {
  // TODO:待补充代码
  console.log(pageNum);
  if(pageNum >= maxPage) {
    next.className = 'page-item disabled'
    return
  } 
  pageNum++
  if(pageNum > 1) {
    prev.classList.remove('disabled')
  }
  changeText(data[pageNum - 1])
};

这道题看了一位大佬的代码,这道题考察的是使用原生js和axios实现分页功能,难度应该是有的,自从使用vue+elementui去开发项目,大多都是封装的分页,又在警示我们必须要搞懂原生实现的原理
本题考点:原生js实现分页功能

本次蓝桥总结:

  1. 本次的考试,让我明白了前端工程师必须要具备原生开发的能力,你的逻辑处理能力必须要具备一个高水平
  2. 蓝桥杯的考察点专注于原生和基础,通过考试我也意识到了自己的原生处理能力存在很大的缺陷,在以后的学习中必须要每天抽出时间用原生写一个小demo
  3. 还是欠缺独立思考的能力,审题也没用认真去审,导致出现了一系列的错误
  4. 整体来说的话,还是自己的知识储备存在较大的差距,还是需要慢慢的认真学习吧,学的东西要经常去回顾经常去看,多去思考,多去探索。

有关2022年第十三届蓝桥杯web大学组题解的更多相关文章

  1. ruby - 如何配置 Ruby Mechanize 代理以通过 Charles Web 代理工作? - 2

    我正在使用Ruby/Mechanize编写一个“自动填写表格”应用程序。它几乎可以工作。我可以使用精彩CharlesWeb代理以查看服务器和我的Firefox浏览器之间的交换。现在我想使用Charles查看服务器和我的应用程序之间的交换。Charles在端口8888上代理。假设服务器位于https://my.host.com。.一件不起作用的事情是:@agent||=Mechanize.newdo|agent|agent.set_proxy("my.host.com",8888)end这会导致Net::HTTP::Persistent::Error:...lib/net/http/pe

  2. 映宇宙2022年营收63亿元:同比下降三成,毛利率提升4.3个百分点 - 2

    3月26日,映宇宙(HK:03700,即“映客”)发布截至2022年12月31日的2022年度业绩财务报告。财报显示,映宇宙2022年的总营收为63.19亿元,较2021年同期的91.76亿元下降31.1%。2022年,映宇宙的经营亏损为4698.7万元,2021年同期则为净利润4.57亿元;期内亏损(净亏损)为1.68亿元,2021年同期的净利润为4.33亿元;非国际财务报告准则经调整净利润为3.88亿元,2021年同期为4.82亿元,同比下降19.6%。 映宇宙在财报中表示,收入减少主要是由于行业竞争加剧,该集团对旗下产品采取更为谨慎的运营策略以应对市场变化。不过,映宇宙的毛利率则有所提升

  3. 蓝桥杯备赛(二) - 2

    目录前言: 一、ASC分析代码实现二、 卡片分析代码实现三、 直线分析代码实现四、货物摆放分析代码实现小结:前言:  在刷题的过程中,发现蓝桥杯的题目和力扣的差别很大。让人有一种不一样的感觉,蓝桥杯题目偏向对于实际问题用编程去的解决,而力扣给人感觉很锻炼自己的编程思维,逻辑能力。两者结合去刷,相信会有不一样的收获。 一、ASC  已知大写字母A的ASCII码为65,请问大写字母L的ASCII码是多少?分析  这道题目看上去很简单,我们需确定自己计算的准确,所以我建议用编程去解决。代码实现publicclassTest8{publicstaticvoidmain(String[]args){Sy

  4. 适用于Web开发的Python还是Ruby? - 2

    Asitcurrentlystands,thisquestionisnotagoodfitforourQ&Aformat.Weexpectanswerstobesupportedbyfacts,references,orexpertise,butthisquestionwilllikelysolicitdebate,arguments,polling,orextendeddiscussion.Ifyoufeelthatthisquestioncanbeimprovedandpossiblyreopened,visitthehelpcenter提供指导。11年前关闭。我是一位精通HTML

  5. ruby-on-rails - Web 应用程序中的 API 版本控制 - 2

    我目前正在为一个新网站设计版本化的API。我了解如何为路由命名空间,但我一直坚持在模型中实现版本化方法的最佳方式。下面的代码示例使用的是rails框架,但是事情的原理在大多数web框架之间应该是一致的。目前的路线看起来像这样:MyApp::Application.routes.drawdonamespace:apidonamespace:v1doresources:products,:only=>[:index,:show]endendend和Controller:classApi::V1::ProductsController很明显,我们只是在此处公开Product上可用的属性,如果

  6. ruby-on-rails - Ruby/Rails 和 Sharepoint Web 服务 - 2

    我正在尝试使用ruby​​来使用Sharepoint网络服务。我基本上已经放弃尝试使用NTLM进行身份验证,并暂时将Sharepoint服务器更改为使用基本身份验证。我已成功使用soap4r获得WSDL,但在尝试使用实际Web服务调用时仍然无法进行身份验证。有没有人有过让ruby​​和Sharepoint对话的经验? 最佳答案 我是个新手。但经过很多时间并在更多经验编码人员的帮助下,我能够让ruby​​与Sharepoint2010一起工作。下面的代码需要“ntlm/mechanize”gem。我已经能够使用列表GUID和ListV

  7. 酷早报:10月21日全球Web3加密行业重大资讯大汇总 - 2

    2022年10月21日星期五【数据指标】加密货币总市值:$0.95万亿BTC市值占比:38.51%恐慌贪婪指数:23极度恐慌 【今日快讯】1、【政讯】1.1.1、美联储布拉德:市场预期美联储11月会加息75个基点1.1.2、美联储哈克:将维持加息一段时间1.2、美国10年期国债收益率触及4.197%,为2008年6月以来最高1.3、法国数字转型部长:政府将专注于DeFi和Web31.4、巴西ATM机将于11月3日起支持USDT1.5、美众议院副议长将于11月初加入a16zCrypto担任政府事务主管1.6、香港数字资产托管机构FirstDigitalTrust首席执行官:香港仍是安全

  8. 蓝桥杯C/C++VIP试题每日一练之报时助手 - 2

    ?作者主页:静Yu?简介:CSDN全栈优质创作者、华为云享专家、阿里云社区博客专家,前端知识交流社区创建者?社区地址:前端知识交流社区?博主的个人博客:静Yu的个人博客?博主的个人笔记本:前端面试题个人笔记本只记录前端领域的面试题目,项目总结,面试技巧等等。接下来会更新蓝桥杯官方系统基础练习的VIP试题,依然包括解题思路,源代码等等。问题描述:给定当前的时间,请用英文的读法将它读出来。时间用时h和分m表示,在英文的读法中,读一个时间的方法是:  如果m为0,则将时读出来,然后加上“o’clock”,如3:00读作“threeo’clock”。  如果m不为0,则将时读出来,然后将分读出来,如5

  9. 阿里云Web应用防火墙-WAF - 2

    WAF可以对网站进行扫描,识别API漏洞。API安全如何设置API安全_Web应用防火墙-阿里云帮助中心API安全如何划分API业务用途?登录认证手机验证码认证数据保存数据查询数据导出数据分享数据更新数据删除数据增加下线注销信息发送信息认证邮件信息发送邮箱验证码认证账号密码认证账号注册API安全支持检测哪些敏感数据?敏感数据级别敏感数据类型非敏感数据(N)不涉及。特级敏感数据(L0)与一级敏感数据(L1)或二级敏感数据(L2)相同。单次响应中一级敏感数据(L1)较多时,升级为特级敏感数据(L0)。单次响应中二级敏感数据(L2)较多时,升级为一级敏感数据(L1)或特级敏感数据(L0)。一级敏感数

  10. IDEA 2022 创建 Spring Boot 项目详解 - 2

    如何用IDEA2022创建并初始化一个SpringBoot项目?目录如何用IDEA2022创建并初始化一个SpringBoot项目?0. 环境说明1.  创建SpringBoot项目 2.编写初始化代码0. 环境说明IDEA2022.3.1JDK1.8SpringBoot1.  创建SpringBoot项目        打开IDEA,选择NewProject创建项目。        填写项目名称、项目构建方式、jdk版本,按需要修改项目文件路径等信息。        选择springboot版本以及需要的包,此处只选择了springweb。        此处需特别注意,若你使用的是jdk1

随机推荐