当前位置: 首页 > news >正文

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.lryc.cn/news/426885.html

相关文章:

  • 怎样做网站推广
  • Unity引擎加密方案解析
  • 遇到的几个iOS问题
  • 掌握ChatGPT写作艺术:从入门到精通的四个层次
  • 虚幻UE5安装报错误代码:SU-PQR5
  • 谷歌开源Gemma-2 百亿参数大模型,性能超越Llama-3模型,免费使用
  • 人工智能与机器学习原理精解【12】
  • openEuler系统安装Visual Studio Code
  • Qt 系统相关 - 事件
  • Ubuntu最小化命令行系统 安装GUI 远程桌面
  • Web前端:CSS篇(二)背景,文本,链接
  • ubuntu 24.04 软件源配置,替换为国内源
  • 【Java 并发编程】(三) 从CPU缓存开始聊 volatile 底层原理
  • YOLOV8网络结构|搞懂Backbone-Conv
  • Elasticsearch Nested类型详解与实战
  • 网络编程,网络协议,UDP协议
  • 每日一题——第六十三题
  • 人工智能算法,图像识别技术;基于大语言模型的跨境商品识别与问答系统;图像识别
  • 数据库系统 第18节 数据库安全
  • Golang | Leetcode Golang题解之第338题比特位计数
  • 【Python变量简析】
  • 智慧零售模式下物流优化与开源AI智能名片S2B2C商城系统的深度融合
  • socket和websocket 有什么区别
  • 亿玛科技:TiDB 6.1.5 升级到 7.5.1 经验分享
  • 8.16-ansible的应用
  • 相似度计算方法-编辑距离 (Edit Distance)
  • 初识FPGA
  • 探索 JavaScript:从入门到精通
  • 这4款视频压缩软件堪称是压缩界的神器!
  • 【ARM 芯片 安全与攻击 5.6 -- 侧信道与隐蔽信道的区别】