JavaScript基础(33)_鼠标滚轮滚动事件、键盘事件

鼠标滚轮滚动事件:onwheel

获取鼠标滚轮滚动的方向:wheelDelta
比如:向上滚动:109 (所有正值都是向上)
          向下滚动:-109(所有负值都是向下)

注意:当滚动滚动时,如果浏览器有滚动条,滚动条会随之滚动。这是浏览器的默认行为,如果不希望发生,则可以使用return false,取消默认行为。

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>鼠标滚轮滚动事件</title><style>#box1 {width: 100px;height: 100px;background-color: cadetblue;}</style><script>window.onload = function () {var box1 = document.getElementById("box1");box1.onwheel = function (event) {if (event.wheelDelta > 0) {if (box1.clientHeight >= 100)box1.style.height = box1.clientHeight - 20 + "px";elsebox1.style.height = 100;}else {box1.style.height = box1.clientHeight + 20 + "px";}return false;}}</script>
</head>
<body style="height: 2000px;height: 1000px;"><button id="box1">用鼠标滚轮实现变大变小</button>
</body>
</html>

键盘事件

键盘事件一般都会绑定给可以获取到焦点的对象或者是document
onkeydown:某个键盘按键被按下。
onkeyup:某个键盘按键被松开。
注意:
1、对于onkeydown来说如果一直按着某个按键不松手,则事件会一直触发。
2、当onkeydown连续触发时,第一次和第二次之间会间隔稍微长一点,其他的会非常的快。这种设计是为了防止误操作的发生。

如何识别用户按下的按键:
可以通过keyCode来获取按键的编码。通过它可以判断哪个按键被按下。除了keyCode,事件对象中还提供了几个属性:altKey、ctrlKey、shiftKey这三个用来判断alt、ctrl、shift是否按下。 如果按下则返回true,否则返回false。

注意:在文本框中输入内容,属于onkeydown的默认行为,如果在onkeydown中取消默认行为(return false),则用键盘输入的内容,无法出现在文本框中。

案例1:

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>键盘事件</title><script>window.onload = function(){var input = document.getElementsByTagName("input");document.onkeydown = function(event){event = event || window.event;// 不许输入数字if(event.keyCode >= 48 && event.keyCode <= 57){return false;}}}</script>
</head>
<body><input type="text">
</body>
</html>

案例2:

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>键盘移动div</title><style>.box1 {width: 100px;height: 100px;background-color: aquamarine;position: absolute;}</style><script>window.onload = function () {var box1 = document.getElementsByClassName("box1")[0];document.onkeydown = function (event) {switch (event.keyCode) {// 向左case 37:if (box1.offsetLeft >= 18) {box1.style.left = box1.offsetLeft - 10 + "px";}// 碰到左上边界禁止div变大或变小else { box1.style.left = box1.offsetLeft + "px"; }break;// 向上case 38:if (box1.offsetTop >= 18) {box1.style.top = box1.offsetTop - 10 + "px";}// 碰到左上边界禁止div变大或变小else { box1.style.top = box1.offsetTop + "px"; }break;// 向右case 39:box1.style.left = box1.offsetLeft + 10 + "px"; break;// 向下case 40:box1.style.top = box1.offsetTop + 10 + "px"; break;}}}</script>
</head>
<body><div class="box1"></div>
</body>
</html>

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

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

相关文章

基于华为atlas下的yolov5+BoT-SORT/ByteTrack煤矿箕斗状态识别大探索

写在前面&#xff1a; 本项目的代码原型基于yolov5yolov8。其中检测模型使用的yolov5&#xff0c;跟踪模型使用的yolov8。 这里说明以下&#xff0c;为什么不整体都选择yolov8呢&#xff0c;v8无疑是比v5优秀的&#xff0c;但是atlas这块经过不断尝试没有过去&#xff0c;所以…

AWS boto3 脚本访问 AWS 资源

AWS boto3 脚本访问 AWS 资源 引言boto3主要功能常见用例安装和基本使用 boto3.Client() 低级客户端基本用法关键参数 boto3.resource() 高级客户端常见参数用法 boto3.resource VS boto3.client相似点不同点总结 关于身份验证凭证隐式身份凭证显式身份验证凭证assuem role如何…

出海笔记精华问答 | 第四期

更新出海问答第四期&#xff0c;希望可以继续帮助大家解决问题哈。 Q1:当stripe把资金全退给客户但是货又发了&#xff0c;这是什么情况&#xff1f; A1: 这种情况一般是stripe不跟你合作了或者发生了争议。 Q2:如何知道stripe回复你的邮件是人工回复还是机器人回复&#xff…

Linux基础入门---安装vmware

&#x1f600;前言 本篇博文是关于Linux基础入门和vmwarel5.5下载&#xff0c;希望你能够喜欢。 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动…

Merkle树(Merkle Tree):高效地验证某个数据块是否包含在数据集中

目录 Merkle树(Merkle Tree) 一、基本结构 二、构建过程 三、主要作用 四、应用领域 Merkle树(Merkle Tree) Merkle树(Merkle Tree),也被称为默克尔树或Merkle哈希树,是一种基于哈希的数据结构,主要用于验证大规模数据集的完整性和一致性。它的名字来源于其发明…

大数据技术——实战项目:广告数仓(第七部分)数仓工作流调度实操

目录 第12章 广告数仓全流程调度 12.2 新数据生成 12.2.1 广告监测日志 12.2.2 广告管理平台数据 12.3 工作流调度实操 12.3.1 DolphinScheduler集群模式 12.3.2 DolphinScheduler单机模式 第12章 广告数仓全流程调度 12.1 调度工具Dolphinscheduler DolphinScheduler…

VirtualBox上的Oracle Linux虚拟机安装Docker全流程

1.安装docker依赖 yum install -y yum-utils device-mapper-persistent-data lvm2 2.安装docker仓库 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 生成docker的yum源配置到在 /etc/yum.repos.d/docker-ce.repo 3.安装D…

Linux内核分析(调度类和调度实体)

文章目录 前言一、调度类1. stop_sched_class2. dl_sched_class3. rt_sched_class4. fair_sched_class5. idle_sched_class总结 二、调度类中的操作函数三、调度实体 前言 调度是操作系统内核的一个关键职责&#xff0c;它涉及到如何合理分配CPU时间给不同的进程或线程。在Lin…

uniapp打包H5的时候 清楚缓存(不安装依赖的前提下)

问题 在写项目的时候&#xff0c;打包好一个H5 发布成功&#xff0c;后来又重新打包新的包进行更新迭代&#xff0c;但是用户手机上还是上一个版本&#xff0c;本地缓存还是没有清除。 解决问题 步骤一&#xff1a;html不缓存 在html中&#xff0c;解决缓存的方法主要是依赖…

Keepalived学习

环境准备&#xff1a;两台服务器&#xff0c;两台客户机&#xff0c;关闭火墙和selinux 在两台主机上安装ka yum install keepalived -y 开启软件 keepalived配置 进入文件 vim /etc/keepalived/keepalived.conf 修改配置 配置slave 效果 在另一台路由配置 抢占模式和非…

简洁清新个人博客网页模板演示学习

30多款个人博客、个人网站、个人主页divcss,html在线预览,个人静态页面模板(wordpress、帝国cms、typecho主题模板).这些简洁和优雅的博客网页模板,为那些想成为创建博客的个人或媒体提供灵感设计。网页模板可以记录旅游、生活方式、食品或摄影博客等网站。部分网页模板来源网友…

二叉树进阶之二叉搜索树:一切的根源

前言&#xff1a; 在学完了简单的容器与C面向对象的三大特性之后&#xff0c;我们首先接触的就是map与set两大容器&#xff0c;但是这两个容器底层实现的原理是什么呢&#xff1f;我们不而知&#xff0c;今天&#xff0c;主要来为学习map与set的底层原理而打好基础&#xff0c…

面试官:Java虚拟机是什么,Java虚拟机的内存模型是什么样子的?

哈喽&#xff01;大家好&#xff0c;我是小奇&#xff0c;一个专给面试官添堵的撑序员 小奇打算以轻松幽默的对话方式来分享一些技术&#xff0c;如果你觉得通过小奇的文章学到了东西&#xff0c;那就给小奇一个赞吧 文章持续更新&#xff0c;可以微信搜索【小奇JAVA面试】第一…

基于WEB的旅游推荐系统设计与实现

TOC springboot280基于WEB的旅游推荐系统设计与实现 第1章 绪论 1.1选题动因 当前的网络技术&#xff0c;软件技术等都具备成熟的理论基础&#xff0c;市场上也出现各种技术开发的软件&#xff0c;这些软件都被用于各个领域&#xff0c;包括生活和工作的领域。随着电脑和笔…

SVN权限控制解析

一、基础数据说明 1. 代码目录存在多级 图1-1 SVN目录 如图1-1&#xff1a; 第一级目录是 科顺&#xff0c;代表 科顺项目&#xff0c;项目文件包括 文档、代码等等。第二级目录 分别是 2.1 resources 用于存放文档&#xff0c;开发和实施均需…

Qt登录窗口

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget),btn(new QPushButton("取消", this)),login_btn(new QPushButton("登录", this)) { ui->setupUi(this);thi…

Llama 3.1深度解析:405B、70B及8B模型的多语言与长上下文处理能力

Llama 3.1 发布了&#xff01;今天我们迎来了 Llama 家族的新成员 Llama 3.1 进入 Hugging Face 平台。我们很高兴与 Meta 合作&#xff0c;确保在 Hugging Face 生态系统中实现最佳集成。Hub 上现有八个开源权重模型 (3 个基础模型和 5 个微调模型)。 Llama 3.1 有三种规格: …

法线纹理贴图计算(切线空间世界空间)

效率&#xff1a; 在切线空间中计算&#xff0c;效率更高&#xff0c;因为可以在顶点着色器中就完成对光照、视角方向的矩 阵变换&#xff0c;计算量相对较小。( 矩阵变换在顶点着色器中计算) 在世界空间中计算&#xff0c;效率较低&#xff0c;由于需要对法线贴图进行采样&a…

mybatis druid postgresql statement超时原理原理

yaml设置超时 mybatis-plus:mapper-locations: classpath:/mapper/*.xml # MyBatis Mapper XML文件的位置type-aliases-package: com.company.mi.entity # 实体类所在的包configuration:default-statement-timeout: 10 configuration 设置超时 BaseStatementHandler设置超时 …

Thread 类的基本用法

目录 什么是线程&#xff1f; 编写多线程程序 线程创建的方式 继承 Thread 类&#xff0c;重写 run 方法 实现 Runnable 接口&#xff0c;重写 run 方法 匿名内部类创建 Thread 子类 匿名内部类创建 Runnable 子类对象 lambda表达式 Thread 类和常用方法 Thread 的常…