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-1
		var fader=setInterval(function(){
			opacity-=0.5;
			if(opacity>0){ 
				
				div.style.opacity=opacity; 
			}else{
				clearInterval(fader);
			}
		},30);
	</script>
</body>
</html>

四、防抖

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

详解Kafka分区机制原理|Kafka 系列 二

Kafka 系列第二篇&#xff0c;详解分区机制原理。为了不错过更新&#xff0c;请大家将本号“设为星标”。 点击上方“后端开发技术”&#xff0c;选择“设为星标” &#xff0c;优质资源及时送达 上一篇文章介绍了 Kafka 的基本概念和术语&#xff0c;里面有个概念是 分区(Part…

计算机竞赛 opencv python 深度学习垃圾图像分类系统

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; opencv python 深度学习垃圾分类系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 这是一个较为新颖的竞…

pytest结合 allure 打标记之的详细使用

前言 前面我们提到使用allure 可以生成漂亮的测试报告&#xff0c;下面就Allure 标记我们做详细介绍。 allure 标记 包含&#xff1a;epic&#xff0c;feature, story, title, testcase, issue, description, step, serverity, link, attachment 常用的标记 allure.feature…

Mysql中如果建立了索引,索引所占的空间随着数据量增长而变大,这样无论写入还是查询,性能都会有所下降,怎么处理?

索引所占空间的增长确实会对MySQL数据库的写入性能和查询性能造成影响&#xff0c;这主要是由于索引数据过多时会导致磁盘I/O操作变得非常频繁&#xff0c;从而使性能下降。为此&#xff0c;可以采取以下几种方式来减缓这种影响&#xff1a; 1. 限制索引的大小&#xff1a;可以…

PHP8定义字符串的方法-PHP8知识详解

字符串&#xff0c;顾名思义&#xff0c;就是将一堆字符串联在一起。字符串简单的定义方法是使用英文单引号&#xff08; &#xff09;或英文双引号&#xff08;" "&#xff09;包含字符。另外&#xff0c;还可以使用定界符定义字符串。本文还介绍了字符串的连接符。…

数据结构和算法三(排序)

列表排序 排序类型&#xff1a; 一、冒泡排序&#xff1a; 屏幕录制2023-07-25 13.05.12 def bubble_sort(li):exchangeFalseif len(li)<1:return lifor i in range(len(li)-1):for j in range(len(li)-i-1):if li[j]>li[j1]:li[j],li[j1]li[j1],li[j]print(li)exchangeT…

mac harbor的安装

harbor的安装 为什么要整这个呢&#xff0c;因为我在学习k8s&#xff0c;但是需要一个自己的镜像仓库。于是&#xff0c;最开始想到的就是在本地直接部署一个&#xff0c;还比较安全、快速。 直接下载了官方的项目&#xff0c;运行脚本发现出了异常&#xff0c;这种异常我已经…

项目知识点记录

1.使用druid连接池 使用properties配置文件&#xff1a; driverClassName com.mysql.cj.jdbc.Driver url jdbc:mysql://localhost:3306/book?useSSLtrue&setUnicodetrue&charsetEncodingUTF-8&serverTimezoneGMT%2B8 username root password 123456 #初始化链接数…

LiveNVR监控流媒体Onvif/RTSP功能-视频流水印如何叠加视频水印叠加动态图片叠加视频流时间示例

LiveNVR视频流水印如何叠加视频水印叠加动态图片叠加视频流时间示例 1、介绍2、摄像头OSD设置水印3、前端页面叠加4、视频流水印4.1、图片水印示例4.2、时间戳水印示例 5、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、介绍 监控视频平台播放视频监控的时候&#xff0c;除了满足正…

SpringMVC的架构有什么优势?——控制器(三)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

CentOS 7中,配置了Oracle jdk,但是使用java -version验证时,出现的版本是OpenJDK,如何解决?

1.首先&#xff0c;检查已安装的jdk版本 sudo yum list installed | grep java2.移除、卸载圈红的系统自带的openjdk sudo yum remove java-1.7.0-openjdk.x86_64 sudo yum remove java-1.7.0-openjdk-headless.x86_64 sudo yum remove java-1.8.0-openjdk.x86_64 sudo yum r…

STM32单片机蓝牙APP宠物自动喂食器定时语音提醒喂食系统设计

实践制作DIY- GC00162---蓝牙APP宠物自动喂食器 一、功能说明&#xff1a; 基于STM32单片机设计---蓝牙APP宠物自动喂食器 二、功能说明&#xff1a; STM32F103C系列最小系统板LCD1602显示器DS1302时钟模块5个按键语音播报模块ULN2003步进电机模块LED灯板HC-05蓝牙模块&#x…

XML方式AOP快速入门XML方式AOP配置详解

目录 1.XML方式AOP快速入门 1&#xff1a;导入AOP相关坐标 2&#xff1a;准备目标类&#xff0c;准备增强类&#xff0c;并配置给Spring管理 3&#xff1a;配置切点表达式&#xff08;那些方法要被增强&#xff09; 4&#xff1a;配置织入&#xff08;切点被哪些方法增强&…

C++初阶语法——类和对象

前言&#xff1a;C语言中的结构体&#xff0c;在C有着更高位替代者——类。而类的实例化叫做对象。 本篇文章不定期更新扩展后续内容。 目录 一.面向过程和面向对象初步认识二.类1.C中的结构体2.类的定义类的两种定义方式 3.类的访问限定符及封装访问限定符说明 4.类的实例化对…

Python中的诡异事:不可见字符!

文章目录 前言1. 起因2. 调查3. 高能4. 释惑 前言 今天分享一件很诡异的事情&#xff0c;我写代码的时候遇到了不可见的字符&#xff01;&#xff01;&#xff01; 1. 起因 今天在使用pipreqs导出项目中所依赖的库时突然报错了&#xff1a; pipreqs . --encodingutf-8 --forc…

Spring项目整合过滤链模式~实战应用

代码下载 设计模式代码全部在gitee上,下载链接: https://gitee.com/xiaozheng2019/desgin_mode.git 日常写代码遇到的囧 1.新建一个类,不知道该放哪个包下 2.方法名称叫A,干得却是A+B+C几件事情,随时隐藏着惊喜 3.想复用一个方法,但是里面嵌套了多余的逻辑,只能自己拆出来…

百川智能发布首个530亿参数闭源大模型,今年追上GPT-3.5

4月官宣创业&#xff0c;6月15日发布第一款7B开源模型&#xff0c;7月11日发布第二款13B、130亿参数开源模型。 平均保持2个月一个版本发布速度&#xff0c;8月8日&#xff0c;百川智能发布了创业以来的首个530亿参数闭源大模型——Baichuan-53B&#xff08;以下简称“53B”&a…

Android Https

本质&#xff1a;在客户端和服务端使用非对称加密协商出一套对称密钥&#xff0c;每次发送数据前加密&#xff0c;收到后解密&#xff0c;达到加密传输 http ssl 在http之下增加了安全层&#xff0c;用于保障http的加密传输 HTTPS连接 TLS连接步骤 1.客户端发送 client h…

Ubuntu 20.04 安装 Stable Diffusionn

步骤 1&#xff1a;安装 wget、git、Python3 和 Python3虚拟环境&#xff08;如果已安装可忽略这步骤&#xff09; sudo apt install wget git python3 python3-venv步骤 2&#xff1a;克隆 SD 项目到本地 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webu…

Could not resolve host: mirrorlist.centos.org; Unknown error解决方法

今天服务器安装完CentOS系统后&#xff0c;安装网络的时候&#xff0c;出现无法联网yum yum -y install net-tools 以上代码无法运行并报错&#xff0c;这里我要提醒大家&#xff0c;如果在初始安装的时候选中安装网络工具模块就不用在安装net-tools了&#xff0c;因为我选中…
最新文章