Java基础入门day36

day36

js

dom控制css变化

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><p>this is p1</p><p id="p2">this is p2</p><p id="p3">this is p3</p>
​<script>document.getElementById("p2").innerHTML="<font color='red'>this is p2 updated</font>";document.getElementById("p2").style.fontFamily = "楷体";document.getElementById("p2").style.fontSize = "30px";document.getElementById("p3").innerText="<font color='red'>this is p3 updated</font>";</script>
</body>
​
</html>

使用dom可以对于元素的css进行设置

dom事件

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><h1 id="h1">this is h1</h1><button οnclick="document.getElementById('h1').innerHTML='<font color=red>this is h1 updated</font>'">click me</button>
​<script></script>
</body>
​
</html>

使用dom可以对于元素的事件做出反应

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><h1 οnclick="this.innerHTML='<font color=red>this is h1 updated</font>'">this is h1</h1><script></script>
</body>
​
</html>

dom使得JavaScript有能力对于html事件做出反应

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><h1 οnclick="changeText(this)">this is h1</h1><script>function changeText(h){h.innerHTML="<font color=red>this is h1 updated</font>";}</script>
​
</body>
​
</html>

使用dom事件处理器调用一个函数

EventListener

addEventListener函数可以让用户在不同控件上添加事件

语法
element.addEventListener(event, function, useCapture);
参数名描述
event事件的类型
function事件触发后调用的函数
useCapture用于描述事件是冒泡还是捕获

特点:

  • addEventListener函数用于向指定的元素添加事件

  • 添加的事件句柄不会覆盖已存在的事件句柄

  • 可以向一个元素添加多个事件

  • 可以向同一个元素添加多个相同事件

  • 可以向任何dom对象添加事件监听,不一定是html元素,甚至是window对象

  • addEventListener可以更简单地控制事件的冒泡与捕获

  • 使用addEventListener函数,可以是的JavaScript能够将事件从html标记中分离出来,可读性更强

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><button id="btn">click me</button><script>
​document.getElementById("btn").addEventListener("click", btnAlert);document.getElementById("btn").addEventListener("click", displayDate);document.getElementById("btn").addEventListener("mouseover", changeColor);document.getElementById("btn").addEventListener("mouseout", changeColor02);
​function displayDate(){document.getElementById("btn").innerHTML=Date();}
​function btnAlert(){alert("i am clicked.")}
​function changeColor(){document.getElementById("btn").style.backgroundColor = "red";}
​function changeColor02(){document.getElementById("btn").style.backgroundColor = "green";}</script></body>
​
</html>

可以向元素添加多个事件,click,mouseover, mouseout

也可以同时想元素添加多个click事件

各自的事件互相不冲突

操作元素

如需向html中添加元素,dom也可以完成

  • document.createElement();

  • document.appendChild();

js中的定时任务

  • 定义定时器

    • setInterval('调用的函数名', 间隔时间);每间隔指定的间隔时间后自动执行函数

    • setTimeout('调用的函数名', 间隔时间);在固定的时间之后执行异常调用函数

  • 关闭定时器

    • clearInterval(定时器名称);

    • clearTimeout(定时器名称);

小综合案例-点名系统

点名系统

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>count</title><script src="js/count.js" ></script><link href="css/count.css" rel="stylesheet" />
</head>
<body οnlοad="create()"><input type="button" id="btnStart" value="start" οnclick="startCount()" /> <input type="button" id="btnStop" value="stop" οnclick="stopCount()"  /> <p /><div id="par">
​</div>
</body>
</html>

html页面,放了两个按钮,外加一个空的div

.stu{border: 1px solid green;width: 200px;height: 200px;float: left;margin: 10px;text-align: center;line-height: 200px;
}

外部的css文件用来设置每一个学生div的样式

var names = ["王可明",    "左佳慧",    "靳钰萧",    "宋治刚",    "李伟" ,   "韩温昱",    "李博森",    "胡嘉豪",    "陈晓玲",    "冯煜" ,   "赵雪儿",    "刘西阳",    "呼唤" ,   "王鹏展",    "李晨星",    "周晓宇",    "唐润曈",    "陈世钰",    "付梦茹",    "何俊超",    "袁奕鸿",    "张亚绒",    "樊琳杰",    "崔雅静",    "刘彩霞",    "刘芙蓉",    "何佳豪",    "赵博" ,   "田秘" ,   "张恒超",    "何云飞"
];
​
var index = -1;
var select;
var flag;
​
function create(){var par = document.getElementById("par");
​for(var i = 0; i < names.length; i++){var stu = document.createElement("div");
​stu.innerHTML = names[i];stu.className = "stu";stu.style.backgroundColor = "pink";stu.id = "id" + i;
​par.appendChild(stu);}
}
​
function startCount(){document.getElementById("btnStart").disabled = true;flag = setInterval(myStart, 100);
}
​
function myStart(){if(index != -1){select.style.backgroundColor = "pink";}//alert(123);// console.log(new Date());
​index = parseInt((Math.random() * 99999) % names.length);
​// console.log(index);select = document.getElementById("id" + index);
​select.style.backgroundColor = "green";
}
​
function stopCount(){clearInterval(flag);document.getElementById("btnStart").disabled = false;
​if(index != -1){alert("此次的幸运儿是" + names[index]);}
}

外部的js文件,用来处理各种事件

浏览器的bom模型

概念:

bom: browser object model:浏览器对象模型,使得JavaScript可以与浏览器”对话“

  • window

    • 所有浏览器都支持window对象,表示浏览器窗口

    • 所有的js对象、函数以及变量均自动成为window对象的成员

    • 全局变量都是window对象的属性,比如alert,document

  • status

    • 浏览器的状态栏

    • 用来显示一些状态信息

  • history

    • back是后退一次

    • forward是前进一次

    • go(num),num为正数,则前进num次,如果为负数,后退num次

  • screen

    • window.screen.availWidth

    • window.screen.availHeight

  • location

    • 可以获取当前页的url地址,并把浏览器重定向到新的 页面

    • location.hostname:主机名

    • location.pathname: 路径或者文件名

    • location.port: 端口

    • location.protocal,协议,http,https

    • location.href:返回当前页的url

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body>hello<a href="js10.html">js10</a><button οnclick="history.back()">back</button><button οnclick="history.forward()">forward</button><button οnclick="history.go(-1)">指定地址</button><script>
​</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var h = window.screen.availHeight;var w = window.screen.availWidth;
​alert(w + ", " + h);</script>
</body>
</html>

screen的availHeight和availWidth可以分别拿到屏幕的可用尺寸

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var h = window.location.hostname;var href = window.location.href;alert(href)window.location.href = "http://www.baidu.com";</script>
</body>
</html>

location定位:可以获取主机名,端口,链接等信息

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

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

相关文章

【刷题】代码随想录算法训练营第二十二天|235、二叉搜索树的最近公共祖先,701、二叉搜索树中的插入操作,450、删除二叉搜索树中的节点

目录 235、二叉搜索树的最近公共祖先701、二叉搜索树中的插入操作450、删除 235、二叉搜索树的最近公共祖先 讲解&#xff1a; 回忆一下递归的三部曲&#xff0c;以这题为例。 1、参数&#xff1a; 当前节点和两个节点。 Treenode* cur, Treenode*p, Treenode*q2、递归终止条…

prometheus配置监控Java应用服务

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一份大厂面试资料《史上最全大厂面试题》&#xff0c;Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

JAVA----Thread

Thread 这里写目录标题 Thread线程Thread 第 1 种写法此外, t.start()的作用 Thread 第 2 种写法Thread 第 3 种写法Thread 第 4 种写法Thread 第 5 种写法 线程 本身是操作系统提供的, 操作系统提供了 API 以让我们操作线程, JVM 就对操作系统 API 进行了封装. 线程这里, 则提…

PVE虚拟机隐藏状态栏虚拟设备

虚拟机启动后&#xff0c;状态栏会出现一些虚拟设备&#xff0c;点击弹出会导致虚拟机无法使用。 解决方案&#xff1a; 1、在桌面新建disable_virtio_removale.bat文件&#xff0c;内容如下&#xff1a; ECHO OFF FOR /f %%A IN (reg query "HKLM\SYSTEM\CurrentContro…

【注释和反射】类加载的过程

继上一篇博客【注释和反射】获取class类实例的方法-CSDN博客 目录 三、类加载的过程 例子 三、类加载的过程 在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;类加载是一个将类的字节码文件从文件系统或其他来源加载到JVM的内存中&#xff0c;并将其转换为类或接口的…

年如何在不丢失数据的情况下解锁锁定的 Android 手机?

当您忘记密码、PIN 码或图案并且想要解锁 Android 手机时&#xff0c;您可能会丢失 Android 手机上的数据。但您无需再担心&#xff0c;因为在这里&#xff0c;我们想出了几种解锁锁定的 Android 手机而不丢失数据的方法。 方法 1. 使用 Android Unlock 解锁锁定的 Android 且不…

mathtype设置公式编号,公式居中以及编号靠右

在word中实现&#xff1a; 1. 首先点击栏&#xff0c;选择更多栏去看 看到栏的宽度&#xff0c;然后去设置样式 在开始-样式中设置,新建样式&#xff1a; 新建样式&#xff0c;然后设置格式-制表位&#xff0c;选择对齐方式&#xff0c;居中对齐设置刚才的一半&#xff0c;右…

RK3568 学习笔记 : u-boot 千兆网络功能验证

前言 开发板型号&#xff1a; 【正点原子】 的 RK3568 开发板 使用 虚拟机 ubuntu 20.04 编译 RK3568 Linux SDK&#xff0c;生成镜像&#xff0c;烧写后&#xff0c;Linux 系统正常启动 开启后可以使用 CTRLC 进入 u-boot 本篇验证一下 u-boot 下网络功能 【正点原子】 rk…

MATLAB 运算符

MATLAB 运算符 运算符是一个符号&#xff0c;告诉编译器执行特定的数学或逻辑操作。MATLAB设计为主要在整个矩阵和数组上运行。因此&#xff0c;MATLAB中的运算符既可以处理标量数据&#xff0c;也可以处理非标量数据。MATLAB允许以下类型的基本运算- 算术运算符 关系运算符…

Windows SMBGhost CVE-2020-0796 Elevate Privileges

SMBGhost CVE-2020-0796 Microsoft Windows 10 (1903/1909) - ‘SMBGhost’ SMB3.1.1 ‘SMB2_COMPRESSION_CAPABILITIES’ Local Privilege Escalation https://www.exploit-db.com/exploits/48267 Github https://github.com/danigargu/CVE-2020-0796 修改载荷[可选] 生成 c# …

【JAVA基础之IO】字节流、字符流以及乱码问题

&#x1f525;作者主页&#xff1a;小林同学的学习笔录 &#x1f525;mysql专栏&#xff1a;小林同学的专栏 目录 1. IO概述 1.1 什么是IO 1.2 IO的分类 1.3 字节和字符流的顶级父类 2. 字节流 2.1 一切皆为字节 2.2 字节输出流【OutputStream】 2.3 FileOutputStream类…

【GUI软件】小红书关键词搜索结果批量采集

一、背景介绍 1.1 爬取目标 用python开发的爬虫采集软件&#xff0c;可自动按关键词抓取小红书笔记。 软件界面截图&#xff1a; 爬取结果截图&#xff1a; 结果截图1: 结果截图2: 结果截图3: 以上。 1.2 演示视频 软件运行演示&#xff1a; 【软件演示】小红书搜…

零信任网络安全技术雷达图3.0正式发布

伴随零信任理念的发展和实施&#xff0c;零信任技术体系的演进变革也日趋完善。易安联力图通过持续更新并优化零信任雷达图&#xff0c;以反映零信任技术在应对新型网络安全挑战中的创新和发展&#xff0c;为企业和组织提供前瞻性的技术建议&#xff0c;助力其构建更为强大和灵…

11.泛型

文章目录 1 泛型概念2. 自定义泛型结构3 泛型方法4 泛型在继承上的体现5 通配符的使用 1 泛型概念 所谓泛型就是用标识符标识不确定的类型&#xff0c;详细说就是&#xff1a;定义类或接口时用标识符表示类中某个属性的类型或者是某个方法的返回值及参数类型。泛型将在使用时&a…

探索React Router:实现动态二级路由

我有一个路由配置的二维数组&#xff0c;想根据这个数组结合路由组件来动态生成路由&#xff0c;应该怎么样实现。在 React Router 6 中渲染二级路由的方式跟 React Router 65相比有一些变化,但核心思路仍然是利用 Route 组件和路由嵌套的方式。下面是具体的步骤: 定义路由数组…

小程序视频如何下载到手机#下载高手

在本文中&#xff0c;我将向您介绍一个工具:下载高手&#xff0c;帮助您轻松下载小程序视频&#xff0c;并将其保存到您的手机中。无论是学习教育类的小程序视频&#xff0c;还是图片素材类的小程序&#xff0c;这些方法都适用于各种类型的小程序。 工具我已经打包好了&#x…

蓝桥杯 — — 完全日期

完全日期 友情链接&#xff1a;完全日期 题目&#xff1a; 思路&#xff1a; 直接从20010101枚举到20211231&#xff0c;然后再判断每一个数是否是一个合法的日期&#xff0c;如果这个日期是合法的&#xff0c;接着判断这个日期的每一个位置上的数字之和是否是一个完全平方数…

GPT-SoVITS声音克隆训练和推理(新手教程,附整合包)

环境: Win10 专业版 GPT-SoVITS-0421 整合包 问题描述: GPT-SoVITS声音克隆如何训练和推理教程 解决方案: Zero-shot TTS: Input a 5-second vocal sample and experience instant text-to-speech conversion.零样本 TTS:输入 5 秒的人声样本并体验即时文本到语音转换…

基于java的CRM客户关系管理系统的设计与实现

本科毕业设计(论文) 题 目&#xff1a; 基于java的CRM客户关系管理系统的设计与实现 专题题目&#xff1a; 说 明 请按以下顺序编排&#xff1a; 封面任务书开题报告中外文摘要及关键词目录正文附录&…

算法学习笔记Day9——动态规划初探

一、介绍 本文解决几个问题&#xff1a;动态规划是什么&#xff1f;解决动态规划问题有什么技巧&#xff1f;如何学习动态规划&#xff1f; 1. 动态规划问题的一般形式就是求最值。动态规划其实是运筹学的一种最优化方法&#xff0c;只不过在计算机问题上应用比较多&#xff…