蓝桥杯练习题

<1>搜一搜呀——filter

目标

请完善 index.html 文件,让页面具有如下所示的效果:

图片描述

题解 

  computed: {
          filteredList() {
            // TODO: 请补充代码
           return this.postList.filter(post=>{
              return post.title.match(this.search)
            })
          },
        },

过滤器filter

定义和用法

filter用于对数组进行过滤。
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

语法
array.filter(function(currentValue,index,arr), thisValue)

 

实例1. 对数组进行过滤,筛选出年龄大于 18岁的数据 

const arr = [
	{
        name: 'tom1',
        age: 23
    },
    {
        name: 'tom2',
        age: 42
    },
    {
        name: 'tom3',
        age: 17
    },
    {
        name: 'tom4',
        age: 13
    },
]
const res = arr.filter(item => item.age > 18);
console.log(res);  //[{name: 'tom1',age: 23},{name: 'tom2',age: 42}]
console.log(arr);

(2)关于你的欢迎语

目标

请修复 index.js 文件中存在的 bug,修复完成后,在表单的对应输入框中输入以下内容:

图片描述

页面效果如下所示:

图片描述

 result = `欢迎用户${subject.value}在${event2.value}学习${event1.value}课程!`;
    document.getElementById("result").value = result;

 (3)卡片化标签页——排他思想

目标

请在 index.js 文件中根据现有 DOM 结构(页面布局部分不能做任何修改操作)实现选项卡动态切换功能。

页面效果如下所示:

最终效果图

题解

// 实现选项卡功能
function init() {
  // TODO 待补充代码
  let tabs=document.querySelectorAll('.tabs div')
  let contents=document.querySelectorAll('#content div')
  console.log(contents);
  for(let i=0;i<tabs.length;i++){
    tabs[i].addEventListener('click',function(){
      for(let j=0;j<tabs.length;j++){
        tabs[j].classList.remove('active')
        contents[j].classList.remove('active')
      }
      tabs[i].classList.add('active')
      contents[i].classList.add('active')
    })
  }
}
init();

 (4)水果摆盘

考试要求

提示
align-self 值 :
  flex-start flex-end center baseline stretch

order:<整数>(... -1, 0 (default), 1, ..)

在需要修改部分的代码有相关提示,请仔细阅读之后,使用 flex 布局中的 align-self 和 order 完善 index.css 中的代码, 把对应的水果放在对应的盘子里面,最终效果如下

图片描述

题解

/* 菠萝 TODO 待补充代码 */
.yellow {
	align-self: flex-end;
	order: 1;
}

 (5)新年贺卡——生成随机数

目标

请仔细阅读需要完善代码部分的提示,之后完善 index.js 样式文件中的 TODO 部分,点击书写贺卡,卡片随机展示已经写好的祝福语:

图片描述

题解

// 随机数函数 从 greetings 随机取一个值并返回
function writeGreeting() {
	// TODO 带补充代码  
	let ran = Math.floor(Math.random()*5);
    console.log(ran);

	return greetings[ran]
}

/*
 * @param {*} greetingDisplay  要显示内容的dom元素
 */
//  show 将 writeGreeting 函数中返回的内容显示在 greetingDisplay 元素中
function show(greetingDisplay) {
	// TODO 待补充代码
	// greetingDisplay.innerHTML=greetings
	greetingDisplay.innerText = writeGreeting();
}

(6)让时钟转起来

测试效果

可通过如下步骤测试效果:

  1. 右键 01/index.html,选择 Open with Live Server
  2. 点击右侧的 Web 服务。

具体操作参考下图:

01_03

上述操作会在浏览器中打开新的标签页,如下图所示,请点击 01 文件夹:

01_04

之后,你将看到如下效果:

01_05

请根据下述挑战要求,通过修改 01/index.js 文件,达到让秒针转动起来的效果。

01_06

挑战需求

  1. 秒针的旋转方向应为顺时针。
  2. 秒针每次旋转的角度为 6deg,且需与当前时间对应。
  3. 切勿改动源代码中已写好的部分。

题解

oHoure.style.transform="rotate("+ (nowHoure * 30+houreDeg) + "deg)";
    oMinute.style.transform="rotate("+ (nowMinute * 6+ minuteDeg) + "deg)";
    // 请勿删除上方代码
    // 请在下方补充代码,使得时钟的秒针可以转动起来
    oSecond.style.transform="rotate("+ (nowSecond * 6+ minuteDeg) + "deg)";

 (7)由文本溢出引发的“不友好体验”

测试效果

可通过如下步骤测试效果:

  1. 右键 03/index.html,选择 Open with Live Server
  2. 点击右侧的 Web 服务。

具体操作参考下图:

图片描述

上述操作会在浏览器中打开新的标签页,如下图所示,请点击 03 文件夹:

图片描述

之后,你将看到如下效果:

图片描述

请通过下述挑战要求,修改 03/index.html 文件,解决文本溢出的问题,最终达到如下效果:

图片描述

挑战需求

请打开 03/index.html 文件,该文件中有一段代码需要你补充,用以处理文本超出溢出的情况。

图片描述

  1. 本节挑战需使用 CSS3 的处理方式解决该问题,其他方式无效。
  2. 要求溢出 2 行时进行处理。
  3. 切勿改动源代码中已写好的部分。

题解 

// 请在下方补充代码,使得文本溢出 2 行时使用省略号
        let item=document.querySelector('.more2_info_name')
        item.style='overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;';
        // item.style.textOverflow='ellipsis'
        console.log(item);

上一篇:DSP笔记6-C2000的中断机制