web前端之CSS操作

文章目录

  • 一、CSS操作
      • 1.1 html元素的style属性
      • 1.2 元素节点的style属性
      • 1.3 cssText属性
  • 二、事件
      • 2.1 事件处理程序
        • 2.1.1 html事件
        • 2.1.2 DOM0事件(适合单个事件)
        • 2.1.3 DOM2事件(适合多个事件)
      • 2.2 事件之鼠标事件
      • 2.3 事件之Event事件对象
        • 2.3.1 Event.target
        • 2.3.2 Event.type
        • 2.3.3 Event.preventDefault
        • 2.3.4 Event.stopPropagation()
      • 2.4 事件之键盘事件
      • 2.5 事件之表单事件
          • 2.5.1 input事件
          • 2.5.2 select事件
          • 2.5.3 change事件
          • 2.5.3 reset事件、submit事件
  • 三、定时器
      • 3.1 setTimeout
      • 3.1 setInterval()
  • 四、防抖


一、CSS操作

1.1 html元素的style属性

使用网页元素节点的setAttribute方法直接操作网页元素的style属性。

div.setAttribute('style','background-color:red;'+'border:1px solid black;');

1.2 元素节点的style属性

var divStyle = document.querySelector('div').style;
divstyle.backgroundColor = 'red';
divstyle.border = '1px solid black';
divstyle.width ='100px';
divstyle.height = '100px';
divstyle.fontsize = '10em'

1.3 cssText属性

var divStyle = document.querySelector('div').style;
divStyle.cssText = 'background-color: 'red;'
+ border: 1px solid black;
+ 'height: 100px;
+ 'width: 100px;';

二、事件

2.1 事件处理程序

2.1.1 html事件

缺点:html和js没有分开

<!DOCTYPE htm1>
<htm1><head lang="en"><meta charset="UTF-8"><title>Js事件详解--事件处理</title></head><body><div id="div"><button id="btn1" onclick="demo()">按钮</button></div><script>function demo() {alert("he11o htm]事件处理");}</script></body></htmI>

onclick为鼠标事件

2.1.2 DOM0事件(适合单个事件)

优点:html和js是分离的

<!DOCTYPE htm1>
<htm1><head lang="en"><meta charset="UTF-8"><title>Js事件详解--事件处理</title></head><body><button id="btn">按钮</button><script>var btn=document.getElementById("btn")btn.onclick=function(){console.log("点击了");}</script></body></htmI>

2.1.3 DOM2事件(适合多个事件)

优点:事件不会被覆盖

<!DOCTYPE htm1>
<htm1><head lang="en"><meta charset="UTF-8"><title>Js事件详解--事件处理</title></head><body><button id="btn">按钮</button><script>var btn=document.getElementById("btn")btn.addEventListener("click",function(){console.log("点击了1");})btn.addEventListener("click",function(){console.log("点击了2");})</script></body></htmI>

2.2 事件之鼠标事件

在这里插入图片描述

<!DOCTYPE htm1>
<htm1><head lang="en"><meta charset="UTF-8"><title>Js事件详解--事件处理</title></head><body><button id="btn1">鼠标事件之单击</button><button id="btn2">鼠标事件之双击</button><script>var btn=document.getElementById("btn1")var btn=document.getElementById("btn2")btn1.onclick=function(){console.log("单击"); }btn2.ondblclick=function(){console.log("双击");}</script></body></htmI>

其他代码均和以上的类型相同。

2.3 事件之Event事件对象

事件发生以后,会产生一个事件对象,作为参数传给监听函数
Event对象属性

  • Event.Target
  • Event.type
    Event对象方法
  • Event.preventDefault
  • Event.stopPropagation
<!DOCTYPE htm1>
<htm1><head lang="en"><meta charset="UTF-8"><title>Js事件详解--事件处理</title></head><body><button id="btn1">按钮</button><script>var btn=document.getElementById("btn1")//Event事件对象  其实就是参数btn1.onclick=function(event){console.log(event); }</script></body></htmI>

2.3.1 Event.target

返回事件当前所在的节点,点击谁就打印出来谁。

//html代码为
// <p id="para"> Hello </p>
<!DOCTYPE htm1>
<htm1><head lang="en"><meta charset="UTF-8"><title>Js事件详解--事件处理</title></head><body><button id="btn1">按钮</button><script>var btn=document.getElementById("btn1")//Event事件对象  其实就是参数btn1.onclick=function(event){console.log(event.target); event.target.innerHTML="点击之后";/*点击按钮会变成这个字符串*/}</script></body></htmI>

2.3.2 Event.type

返回一个字符串,表示事件类型。事件的类型是在生成事件的时候。

2.3.3 Event.preventDefault

此方法取消浏览器对当前事件的默认行为,比如点击链接后,浏览器默认会跳转到另一个页面,使用这个方法以后,就不会跳转了。

btn.οnclick=function(e){e.preventDefault();console.log("点击A标签");} 

2.3.4 Event.stopPropagation()

stopPropagation方法阻止事件在 DOM 中继续传播,防止再触发定义在别的节点上的监听函数,但是不包括在当前节点上其他的事件监听函数

btn.οnclick=function(e){e.stopPropagation();//阻止事件冒泡console.log("btn");} 

2.4 事件之键盘事件

键盘事件由用户打击键盘触发,主要有keydown、keypress、keyup三个事件。

  • keydown: 按下键盘时触发
  • keypress: 按下有值的键时触发,即按下 Ctrl、Alt、Shift、Meta 这样无值的键,这个事件不会触发。对于有值的键,按下时先触发keydown事件,再触发这个事件。
  • keyup:松开键盘时触发该事件
username.οnkeypress=function(e){console.log("keypress事件");}

event对象
keyCode:唯一标识
var username=document.getElementById(“username”);
username.οnkeydοwn=function(e){
if(e.keyCode==13){
console.log(“回车”);
}
}

2.5 事件之表单事件

表单事件是在使用表单元素及输入框元素可以监听的一系列事件

2.5.1 input事件

input事件当 <input><selet><textarea> 的值发生变化时触发,即数据发生改变触发此事件。
对于复选框 ( <input type=checkbox> ) 或单选框 ( <input type=radio>),用户改变选项时,也会触发这个事件
input事件的一个特点,就是会连续触发,比如用户每按下一次按键,就会触发一次input事件。

var username=document.getElementById("username");
username.οninput=function(e){console.log(e.target.value);}
2.5.2 select事件

select事件在<input><textarea>里面选中文本时触发

//html代码如下
//<input id="test" type="text" value="select me"/>
var elem=document.getElementById('test');
elem.addEventListener('select',function(e){console.log("e.type");},false);
2.5.3 change事件

Change事件当 <input><selet><textarea> 的值发生变化时触发,它与input最大的不同就是不会连续触发,只有当全部修改完成时,才会触发。

var email=document.getElementById("email");
email.οnchange=function(e){console.log(e.target.value);}
2.5.3 reset事件、submit事件

这两个事件发生在表单对象 <form>上,而不是发生在表单的成员上。
reset事件当表单重置(所有表单成员变回默认值)时触发
submit事件当表单数据向服务器提交时触发。注意,submit事件的发生对象是<form>元素,而不是<buton>元素,因为提交的是表单,而不是按钮

<form id="myForm" onsubmit="submitHandle"><button onclick="resetHandle">重置数据</button><button>提交</button>
</form>
var myForm = document.getElementById("myForm")
function resetHandle(){myForm.reset();}
function submitHandle(){console.1og("提交");}

三、定时器

JavaScript 提供定时执行代码的功能成。。它们向任务队列添加定时任务
叫做定时器 (timer),主要由 setTimeout0 和 setlnterval0 这两个函数来完

3.1 setTimeout

setTimeout 函数用来指定某个函数或某段代码,在多少毫秒之后执行。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。

var timerId=setTimeout(func|code,delay);

setTimeout 函数接受两个参数,第一个参数 fun|code 是将要推迟执行的函数名或者一段代码,第二个参数 delay 是推迟执行的毫秒数.

setTimeout(function(){console.log("定时器")},1000)

3.1 setInterval()

setinterval 函数的用法与 setTimeut 完全一致,区别仅仅在于 setintervl 指定某个任务每隔一段时间就执行一次,也就是无限次的定时执行

vat timer=setInterval(function(){console.log(2);},1000)	

通过setInterval方法实现网页动画

<!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>#someDiv{width:100px;height:100px;background:red;}</style>
</head>
<body><div id="someDiv"></div><script>var div=document.getElementById('someDiv');var opacity=1;//opacity 透明度:范围0-1var fader=setInterval(function(){opacity-=0.5;if(opacity>0){ div.style.opacity=opacity; }else{clearInterval(fader);}},30);</script>
</body>
</html>

四、防抖

定义:对于短时间内连续触发的事件(滚动事件),让某个时间期限内,事件函数只执行一次。

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

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

相关文章

Python分享之 Spider

一、网络爬虫 网络爬虫又被称为网络蜘蛛&#xff0c;我们可以把互联网想象成一个蜘蛛网&#xff0c;每一个网站都是一个节点&#xff0c;我们可以使用一只蜘蛛去各个网页抓取我们想要的资源。举一个最简单的例子&#xff0c;你在百度和谷歌中输入‘Python&#xff0c;会有大量和…

网络爬虫选择代理IP的标准

Hey&#xff0c;小伙伴们&#xff01;作为一家http代理产品供应商&#xff0c;我知道网络爬虫在选择代理IP时可能会遇到些问题&#xff0c;毕竟市面上有很多选择。别担心&#xff01;今天我要给大家分享一些实用的建议&#xff0c;帮助你们选择适合网络爬虫的代理IP。一起来看看…

选择最适合自己的笔记本

选择最适合自己的笔记本电脑 一、了解笔记本品牌一线品牌准一线品牌二线品牌三线品牌 二、笔记本入手渠道笔记本入手渠道 三、根据需求选择机型使用需求1.日常使用2.商务办公、财务3.轻度剪辑、ps4.代码5.创意设计6.游戏 四、笔记本电脑配置如何选1.cpu2.显卡&#xff08;GPU&a…

Vue响应式数据的原理

在 vue2 的响应式中&#xff0c;存在着添加属性、删除属性、以及通过下标修改数组&#xff0c;但页面不会自动更新的问题。而这些问题在 vue3 中都得以解决。 vue3 采用了 proxy 代理&#xff0c;用于拦截对象中任意属性的变化&#xff0c;包括&#xff1a;属性的读写、属性的…

UTONMOS:元宇宙在网络游戏领域得到充分运用

元宇宙到底是个啥&#xff1f;这个词大概意思应该就是人类能从真实世界进入一个虚拟世界体验另一种生活&#xff0c;这个虚拟的世界就叫“元宇宙”。 从科幻走入现实&#xff0c;元宇宙究竟有什么用途&#xff1f;它离我们到底还有多远&#xff1f;又将给我们的生活带来哪些变…

EVE-NG 配置 静态IP

打开interfaces 配置文件 vi /etc/network/interfaces 将pent0 的dhcp 修改为 static&#xff0c;并添加IP&#xff0c;掩码&#xff0c;网关和DNS # The primary network interface iface eth0 inet manual auto pnet0 #iface pnet0 inet dhcp iface pnet0 inet staticpre-u…

“深入解析JVM:Java虚拟机原理和内部结构“

标题&#xff1a;深入解析JVM&#xff1a;Java虚拟机原理和内部结构 摘要&#xff1a;本文将深入解析JVM&#xff08;Java虚拟机&#xff09;的原理和内部结构。我们将从JVM的基础概念开始&#xff0c;逐步介绍其组成部分&#xff0c;包括类加载器、运行时数据区、字节码解释器…

微服务——数据同步

问题分析 mysql和redis之间有数据同步问题&#xff0c;ES和mysql之间也有数据同步问题。 单体项目可以在crud时就直接去修改&#xff0c;但在微服务里面不同的服务不行。 方案一 方案二 方案三 总结 导入酒店管理项目 倒入完成功启动后可以看见数据成功获取到了 声明队列和…

【STM32】FreeRTOS开启后,不再进入主函数的while(1)

开启freertos后&#xff0c;想在主函数的while(1)中实现led的翻转&#xff0c;发现无法实现。 int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, …

根据日期获取星期

1.引入依赖 <dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId> </dependency> 2.编写方法&#xff1a; 该方法需要引入以下2个类&#xff1a; import org.joda.time.DateTime; import org.joda.time.DateT…

idea中如何处理飘红提示

idea中如何处理飘红提示 在写sql时&#xff0c;总是会提示各种错误 查找资料&#xff0c;大部分都是说关提示&#xff0c;这里把错误提示选择为None即可 关掉以后&#xff0c;也确实不显示任何提示了&#xff0c;但总有一种掩耳盗铃的感觉 这个sms表明明存在&#xff0c;但是还…

Centos7 升级内核

下载内核文件 下载内核文件 kernel-ml-6.0.10-1.el7.elrepo.x86_64.rpm kernel-ml-devel-6.0.10-1.el7.elrepo.x86_64.rpm安装 rpm -ivh kernel-ml-devel-6.0.10-1.el7.elrepo.x86_64.rpm --force --nodeps rpm -ivh kernel-ml-6.0.10-1.el7.elrepo.x86_64.rpm --force --no…

Linux 命令 su 和 sudo 的区别

之前一直对 su 和 sudo 这两个命令犯迷糊&#xff0c;最近专门搜了这方面的资料&#xff0c;总算是把两者的关系以及用法搞清楚了&#xff0c;这篇文章来系统总结一下。 1. 准备工作 因为本篇博客中涉及到用户切换&#xff0c;所以我需要提前准备好几个测试用户&#xff0c;方…

探索极限:利用整数或字符串操作找出翻转后的最大数字

本篇博客会讲解力扣“1323. 6 和 9 组成的最大数字”的解题思路&#xff0c;这是题目链接。 对于这道题目&#xff0c;我会讲解2种解题思路&#xff0c;分别是直接操作整数&#xff0c;和利用字符串操作。希望大家通过本题学习关于整数和字符串的技巧。 显然&#xff0c;这道题…

2022深圳杯C题思路解析

题目描述&#xff1a; 继续更新 再更问题三 继续更新第一问、第四问 1.2 问题重述 在制定电动车调度方案时&#xff0c;必须考虑充、换电池的时间成本&#xff0c;从而提出了新 的车辆运输选址及调度问题。 1&#xff09; 已知自动驾驶电动物料车在取料点 P 和卸货点 D …

243. 一个简单的整数问题2(树状数组)

输入样例&#xff1a; 10 5 1 2 3 4 5 6 7 8 9 10 Q 4 4 Q 1 10 Q 2 4 C 3 6 3 Q 2 4输出样例&#xff1a; 4 55 9 15 解析&#xff1a; 一般树状数组都是单点修改、区间查询或者单点查询、区间修改。这道题都是区间操作。 1. 区间修改用数组数组维护差分数组 2. 区间查询&am…

每期一个小窍门: go语言的两种接受者

在 Go 语言里&#xff0c;方法和函数只差了一个&#xff0c;那就是方法在 func 和标识符之间多了一个参数。 type user struct {name string,email string, }//这是函数的定义 func notify(email string) {fmt.Println("Email is %s", email) }//这是方法的定义 fu…

golang 自定义exporter - 服务连接数 portConnCount_exporter 导出器

需求&#xff1a; 1、计算当前6379 、3306 服务的连接数 2、可prometheus 语法查询 下面代码可直接使用&#xff1a; 注&#xff1a; 1、windows 与linux的区分 第38行代码 localAddr : fields[1] //windows为fields[1] &#xff0c; linux为fields[3] 2、如需求 增加/修改/删除…

程序猿成长之路之密码学篇-分组密码加密模式及IV(偏移量)的详解

Cipher.getInstance("AES/ECB/PKCS5Padding"); Cipher cipher Cipher.getInstance("AES/CBC/PKCS5Padding"); 在进行加解密编程的时候应该有很多小伙伴接触过以上的语句&#xff0c;但是大伙儿在编码过程中是否了解过ECB/CBC的含义、区别以及PKCS5Padding…

Selenium之css怎么实现元素定位?

世界上最远的距离大概就是明明看到一个页面元素站在那里&#xff0c;但是我却定位不到&#xff01;&#xff01; Selenium定位元素的方法有很多种&#xff0c;像是通过id、name、class_name、tag_name、link_text等等&#xff0c;但是这些方法局限性太大&#xff0c; 随着自动…