【网页复习】4道大题

🎊专栏【 前端易错合集】
🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。
🎆音乐分享【如愿】
大一同学小吉,欢迎并且感谢大家指出我的问题🥰

文章目录

  • 🍔实现如图的导航栏
    • ⭐代码
    • 🎄注意
  • 🍔事件代理
    • ⭐效果
    • ⭐代码
    • 🎄分析
      • 🤖先看前一段代码
    • ⭐添加点击后框框变成红色的效果
  • 🍔轮播图
    • 🎄分析
  • 🍔效果如图

在这里插入图片描述

🍔实现如图的导航栏

在这里插入图片描述

⭐代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;}li {box-sizing: border-box;float: left;display: block;line-height: 50px;width: 100px;height: 50px;text-align: center;font-weight: bold;list-style: none;color:black;border: 1px solid;text-decoration: none;}div{border: 1px solid black;margin: 0 auto;width: 300px;height: 50px;}</style></head>
<body><div><ul><li>1</li><li>2</li><li>3</li></ul></div>
</body>
</html>

🎄注意

  • 一定要给边框设置为border: 1px solid;而不是border: solid,要指定大小
  • 因为外盒子是300px,三个内盒子都是100px,而且边框也有1px,为了防止冲突,要设置为box-sizing: border-box;,这样子可以自动调整大小

🍔事件代理

⭐效果

在这里插入图片描述

⭐代码


<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Document</title><style>.menu {width: 100px;padding: 0;list-style: none;}.menu li {margin: 10px 0;text-align: center;background-color: #ccc;cursor: pointer;}</style>
</head><body><input type="button" value="添加列表项" onclick="addLi()"><ul class="menu"><li>第1项</li><li>第2项</li><li>第3项</li><li>第4项</li></ul><script>function addLi() {var ll = document.createElement("li");ll.innerHTML = "新增的列表项";document.querySelector(".menu").appendChild(ll);}//事件委托:将事件监听委托给祖先元素(一般委托给父元素)//事件委托实现的原理是利用事件冒泡//1.先获取到ulvar ul = document.querySelector('.menu');//2.为ul添加click事件ul.onclick = function (e) {if (e.target.nodeName == 'LI')e.target.style.backgroundColor = 'red';};</script>
</body></html>

🎄分析

对于这样子的代码,特别是js
我的建议是
分开来看

🤖先看前一段代码

在这里插入图片描述

⭐添加点击后框框变成红色的效果

在这里插入图片描述

if (e.target.nodeName == ‘LI’)
这个LI必须大写

🍔轮播图


<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>轮播图效果演示</title><style>.wrapper {width: 100%;height: 400px;margin: 10px auto;border: 1px solid red;position: relative;/*父元素使用相对定位的目的:(1)保持父元素不动;(2)绝对定位的子元素偏移量是相对父元素*/overflow: hidden;}.wrapper img {width: 100%;height: 100%;}.links {position: absolute;left: 50%;bottom: 5px;transform: translate(-50%);}.links a {display: inline-block;width: 150px;height: 20px;line-height: 20px;/*文字垂直居中*/font-size: 14px;text-align: center;/*文字水平居中*/text-decoration: none;}.a1 {/*没有选中的样式*/color: #FFF;background-color: red;}.a2 {/*选中的样式*/color: #000;background-color: yellow;}</style></head><body><!-- 网页开发中,书写css常用class选择器 --><div class="wrapper"><div class="container"><img src="1.jpg" id="img1" /><img src="2.jpg" id="img2" style="display:none;" /><img src="3.jpg" id="img3" style="display:none;" /><img src="4.jpg" id="img4" style="display:none;" /></div><div class="links"><a href="javascript:;" class="a2" id="btn1" onmouseover="show(1)" onmouseout="star()">1</a><a href="javascript:;" class="a1" id="btn2" onmouseover="show(2)" onmouseout="star()">2</a><a href="javascript:;" class="a1" id="btn3" onmouseover="show(3)" onmouseout="star()">3</a><a href="javascript:;" class="a1" id="btn4" onmouseover="show(4)" onmouseout="star()">4</a></div></div><script>var NowImg=2;var MaxImg=4;var timer;var imgs=document.querySelectorAll(".container img");var links=document.querySelectorAll(".links a");function show(){if(arguments.length>0){NowImg=arguments[0];window.clearInterval(timer);}for(var i=1;i<=MaxImg;i++){if(i==NowImg){imgs[i-1].style.display="block";links[i-1].className="a2";}else{imgs[i-1].style.display="none";links[i-1].className="a1";}}if(NowImg==MaxImg) NowImg=1;else NowImg++;}timer=setInterval(show,1500);function star(){timer=setInterval(show,1500);}</script>
</body></html>

🎄分析

arguments.length
  • 是传入的参数
  • arguments[0]表示函数调用时传入的第一个参数
imgs[i-1].style.display="block";
links[i-1].className="a2";
  • 通过将图片元素的显示样式设置为 “block”,该图片元素将变为可见状态,并在页面上显示出来。同时,将链接元素的类名设置为 “a2”,可以应用相应的样式,以突出显示当前选中的链接。
这段代码中, links[i-1].className="a2";有什么用
  • 在这段代码中,.a1 类名定义了非选中状态的样式,而 .a2 类名定义了选中状态的样式。
  • 在这段代码中,.a1 类名定义了非选中状态的样式,而 .a2 类名定义了选中状态的样式。
timer=setInterval(show,1500);
function star(){timer=setInterval(show,1500);
}
  • 使用setInterval函数创建一个定时器,每1500毫秒(1.5秒)调用一次show()函数,实现图片的自动轮播效果。
  • star()函数用于重新启动定时器,当鼠标离开时重新开始自动轮播
onmouseover="show(1)"有什么用
  • 具体来说,在链接元素上使用 onmouseover 属性,当鼠标悬停在链接元素上时,会触发 show() 函数,并将相应的参数(例如 1、2、3 或 4)传递给它。这样做的目的是在鼠标悬停在链接上时,切换到对应索引的图片和链接的显示状态,以提供与用户交互的反馈。
  • 在这段代码中,οnmοuseοver=“show(4)” 表示当鼠标悬停在具有 id=“btn4” 的链接元素上时,会调用 show() 函数,并将参数值 4 传递给它。这样,当鼠标悬停在该链接上时,会显示第四张图片,并将该链接的类名设置为 “a2”,表示当前选中状态。
onmouseout="star()"有什么用
  • onmouseout 是一个事件属性,用于在鼠标移出元素时触发相应的事件处理程序。在给定的代码中,onmouseout 用于调用名为 star() 的函数,这样做的目的是在鼠标移出链接时重新开始轮播图的自动播放。

🍔效果如图

在这里插入图片描述

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Document</title><style>.shape {width: 100px;height: 100px;margin: 20px;background-color: blue;border: 6px double red;}.circle {border-radius: 50%;}</style>
</head>
<body><input type="button" value="复制形状" onclick="cloneShape();"><input type="button" value="更改形状" onclick="changeShape();"><div class="shape" id="div"></div>
</body>
<script>function cloneShape() {var originalShape = document.getElementById("div");var clonedShape = originalShape.cloneNode(true);document.body.appendChild(clonedShape);}function changeShape() {var shapes = document.getElementsByClassName("shape");for (var i = 0; i < shapes.length; i++) {shapes[i].classList.toggle("circle");}}
</script>
</html>

🥰如果大家有不明白的地方,或者文章有问题,欢迎大家在评论区讨论,指正🥰

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java安全——安全管理器

Java安全 安全管理器 Java安全管理器是一个Java安全模型中的一个组件&#xff0c;主要的作用是提高Java应用程序的安全性。Java应用程序中的每个线程都会对安全管理器进行检查&#xff0c;在执行代码之前&#xff0c;会先经过安全管理器的核验&#xff0c;安全管理器根据代码来…

445端口是啥?445端口怎么关闭?

445端口是Windows系统中的SMB协议&#xff0c;用于文件共享和网络打印功能。然而&#xff0c;这个端口也是黑客攻击的重要入口之一。那么&#xff0c;如何关闭445端口&#xff0c;保护自己的计算机安全呢&#xff1f; 关闭445端口的方法 1.在“控制面板”中打开“管理员工具”…

Unity 中的旋转、targetFrameRate、 vSyncCount、Time

1. 旋转&#xff1a; Unity 中的旋转用eulerAngle 表示&#xff0c;但在内部是以quaternion存储。欧拉角旋转围绕三个轴进行三次独立旋转&#xff0c;依次是z、x、y。To convert from Euler angles to quaternions, you can use the Quaternion.Euler function.To convert a q…

android 如何分析应用的内存(九)——libc回调

android 如何分析应用的内存&#xff08;九&#xff09; 接上文&#xff0c;在前面文章中&#xff0c;介绍了bionic库提供的各种功能&#xff0c;其中包括&#xff1a; 自定义的mallocmalloc hookmalloc debug 接下来&#xff0c;介绍的是bionic库提供的libc回调功能&#x…

Docker学习笔记7

启动一个运行httpd服务的容器&#xff1a; docker run -it --namec3 centos:latest /bin/bash 在容器中安装apache服务&#xff1a; yum install -y httpd 在这个过程中遇到一个问题&#xff1a; Error: Failed to download metadata for repo appstream: Cannot prepare …

【Vue】axios发请求下载excel--20230630

1.关键点&#xff1a; blob乱码传参 2.参考资料&#xff1a;处理blob文件流和乱码问题 https://blog.csdn.net/qq_41512902/article/details/125680531 https://blog.csdn.net/qq_38804584/article/details/109238794 3.我的代码&#xff1a;axios发请求下载excel js代…

python 深度学习 解决遇到的报错问题

目录 一、解决报错ModuleNotFoundError: No module named ‘tensorflow.examples 二、解决报错ModuleNotFoundError: No module named ‘tensorflow.contrib‘ 三、安装onnx报错assert CMAKE, ‘Could not find “cmake“ executable!‘ 四、ImportError: cannot import na…

ARM-SWI 和未定义指令异常中断处理程序的返回(七)

文章目录 处理流程示例代码实现SWI未定义指令 附录源码 处理流程 SWI 和未定义指令异常中断是由当前执行的指令自身产生的&#xff0c;当 SWI 和未定义指令异常中断产生时&#xff0c;程序计数器的 PC 的值还未更新&#xff0c;它指向当前指令后面第 2 条指令&#xff08;对于…

【算法题】动态规划中级阶段之最长回文子串、括号生成、跳跃游戏

动态规划中级阶段 前言一、最长回文子串1.1、思路1.2、代码实现 二、括号生成2.1、思路2.2、代码实现 三、跳跃游戏 II3.2、思路3.2、代码实现 总结 前言 动态规划&#xff08;Dynamic Programming&#xff0c;简称 DP&#xff09;是一种解决多阶段决策过程最优化问题的方法。…

香港大学推出创新科技教育基金,拟支持Web3和生成式AI等领域教学

区块链技术是近年来备受关注的领域之一,其应用范围已经涵盖了金融、医疗、物流等众多行业。而随着区块链技术的不断发展和完善&#xff0c;越来越多的企业和机构开始将其应用到实际生产和业务中。作为其中一个重要的应用领域&#xff0c;金融领域也成为了区块链技术的重要应用场…

3-css高级特效-1

01-平面转换 简介 作用&#xff1a;为元素添加动态效果&#xff0c;一般与过渡配合使用 概念&#xff1a;改变盒子在平面内的形态&#xff08;位移、旋转、缩放、倾斜&#xff09; 平面转换也叫 2D 转换&#xff0c;属性是 transform 平移 transform: translate(X轴移动距…

Linux——进程通信之共享内存

目录 一. 回顾上文 二.共享内存 1.定义 2.特点&#xff1a; 3.实现步骤&#xff1a; 如下为成功链接共享内存使用权的完整步骤&#xff1a; 4.函数介绍 4.1shmget函数 4.1.2参数介绍 4.2ftok函数&#xff1a; 4.2.1参数介绍 关于ftok(); shmget();函数的代码实验…