brython | 初探鼠标事件-1:点击事件

news2025/8/6 20:41:30

各位前端大佬勿笑话,运维小弟献丑了。

前段时间看见大佬使用【文言文】写了一个连连看,于是我也想用【brython】也实现一个连连看。

于是乎,你们就看到这篇文章和这个项目了。

如果大佬们对brython不是特别了解的话,建议先查看之前写的文章:

【brython | 初始化项目】: juejin.cn/post/715364…

完成一个简单的点击事件

鼠标事件,也称之为Mouse Event,是指捕获鼠标操作所触发的事件,当然现在智能手机、平板等,在滑动屏幕的时候,也可以一并称之为鼠标事件。

仅需如下数行代码即可完成一个最简单的点击事件注册

from browser import document
from browser import html

btn = html.BUTTON("点击我触发事件")
btn.id = "btn"

document <= btn

def sayHello(ev):
    print("hello juejin pdudo" , ev)
    
document["btn"].bind("click",sayHello)
复制代码

如上代码,先申请一个按钮,其id属性赋值为btn, 接着为该按钮注册一个鼠标点击事件,触发的函数为sayHello,鼠标事件为click即为: 在btn上单击左键松开后会触发事件。

如上案例中,我们将bind称之为绑定方法,

接着我们运行代码,我们会得到这样的一种效果

代码也已经放到【码上掘金】下面了

鼠标监听事件有哪些

brython给提供的鼠标事件有哪些呢?我整理为了一个表格,如下:

鼠标事件类型解释
click点击事件在监听的元素上单击左键松开后会触发事件
dblclick点击事件在监听的元素上双击左键松开后会触发事件
mouseup点击事件在监听的元素上按下鼠标松开后,会触发事件(左键、右键、滚轮都会触发)
mousedown点击事件在监听的元素上按下鼠标会触发事件(左键、右键、滚轮都会触发)

如果学过javascript的话,会觉得上述点击事件非常熟悉,当然了,brython的工作原理是将python代码,通过某种方式,解析为javascript从而在浏览器中运行。所以说,有些写法和javascript差别不大。

如果要区分一下的话,可以将其区分为点击事件和移动事件。

点击事件Demo

在上述提供的鼠标事件中,其中clickdblclickmouseupmousedown 都是鼠标点击事件。

按照监听键值来区分的话,可以归纳为2类

  • clickdbclick只能监听鼠标左键
  • mouseupmousedown 则可以监听到左键、右键以及滚轮

如果按照触发事件来区分的话,也可以归纳为2类

  • clickdbclick以及 mouseup会在鼠标释放后触发事件
  • mousedown 在点击后就触发事件

上述案例中,使用了click来监听,可以做个实验;证明是松开后触发, 点击后拖到其他区松开再来看反馈。

可以发现,在点击后,拖着鼠标在别的地方松开,是不会触发事件的。

其他3种监听事件,也写成了案例,放到【码上掘金】下面了

总结

鼠标监听事件就介绍完咯,总体而言,在一般项目中,我们使用最多的就是click事件了,之前实现的连连看也是使用click事件哦,好了,快动动你的小手指来试试吧。

 

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

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

相关文章

JVM分析工具

JVM在运行过程中&#xff0c;我们可以利用各种工具对JVM进行分析&#xff0c;这是性能调优的利器。可以通过各种工具了解在系统运行过程中&#xff0c;在JVM底层到底发生了什么。JVM分析工具一般分为两种&#xff0c;一种是命令行工具&#xff0c;一种是图形界面工具。 JVM分析…

卷积操作的不同类型

文章目录1. 一维卷积2. 二维卷积3. 三维卷积4. 扩张卷积5. 空洞卷积6. 分组卷积一般而言&#xff0c;一维卷积用于文本数据&#xff1b;二维卷积用于图像数据&#xff0c;对宽度和高度都进行卷积&#xff1b;三维卷积用于视频及3D图像处理领域&#xff0c;对立方体的三个面进行…

CS5269TypeC转HDMI2.0+VGA带PD100W快充拓展坞方案芯片完整设计资料(原理图+PCB文件)

CS5269TypeC转HDMI2.0VGA带PD100W快充方案芯片原理图&#xff1a; 用于US Type-C或DP1.4连接到HDMI2.0转换器。CS5269集成了DP1.4HDMI2.0的输出端和VGA输出接口。另外&#xff0c;两个CC控制器包括CC通信&#xff0c;以实现DP Alt模式和功率传输功能&#xff0c;一个用于上游类…

SD-WAN NFV uCPE VNF

NFV&#xff08;network function virtulization) NFV&#xff08;network function virtulization&#xff0c;网络功能虚拟化&#xff09;是指一种操作框架&#xff0c;目的是为了将部署在COTS硬件上的、在虚拟基础架构中的VNF软件设备编排和自动化起来&#xff0c;然后进行…

精耕丨“银发族”与“熬夜党”都在养生,大健康品牌怎样精耕消费者需求?

“被疫情偷走的这三年”里&#xff0c;健康成为所有人不得不面对的生活命题。 丁香医生《2022国民健康洞察报告》显示&#xff0c;2021年人们平均存在4.8个健康困扰&#xff0c;算得上“人均亚健康”&#xff0c;其中情绪、身材、皮肤焦虑位列TOP3。 人们对稳住健康的追求也一…

5G无线技术基础自学系列 | 物理共享信道分配

素材来源&#xff1a;《5G无线网络优化实践》 一边学习一边整理内容&#xff0c;并与大家分享&#xff0c;侵权即删&#xff0c;谢谢支持&#xff01; 附上汇总贴&#xff1a;5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 在LTE协议中&#xff0c;DCI的位置和对应…

第一章《初学者问题大集合》第8节:Java程序初步释疑

当成功运行了第一个Java程序,很多读者都对之前的各项操作以及所写的这行代码有一些不清楚的地方,本节就来解答一下这些问题。其实,初学者的大部分疑问都集中体现在图1-41中。 图1-41 源文件名与类名称 1.类是个什么东西? 前文曾经让各位读者在写代码之前先创建一个“类”…

day065:IO流、字节流、字节流写数据

目录 一、IO流 1.IO流的目的 2.IO的表示 二、IO流的分类 1.按流向分 2.按数据类型分 三、字节流 1.字节流写数据 2.字节流的注意事项 3.字节流写数据的三种方式 4.字节流写数据的两个问题 &#xff08;1&#xff09;字节流写数据如何换行&#xff1f; &#xff08;…

腾讯云服务器部署vue前端项目(Ubuntu+vue+nginx+nodejs+npm)

一、安装nodejs和npm sudo apt-get nodejs sudo apt-get npm 但是在安装npm后&#xff0c;输入npm --version时&#xff0c;会报错 此时&#xff0c;需要升级nodejs的版本&#xff0c;执行下面的两条命令 wget -qO- https://deb.nodesource.com/setup_16.x | sudo -E bash - …

兄弟兄弟,在git中的使用.gitignore忽略不想要提交的文件,了解一下呗

1. .gitignore的作用 在实际的工程项目中&#xff0c;除了项目本身的代码文件、配置文件外&#xff0c;还有一些文件或目录并不需要纳入版本管理中&#xff0c;如idea工具会在工程根目录生成一个.idea的目录、工程编译后生的target等。因此在提交代码文件的时候需要自动把这些目…

医学图像处理-安装nibabel包命令

医学图像处理-安装nibabel包命令问题与解决方案问题与解决方案 直接使用 pip install nibabel 出现如下报错&#xff1a; 尝试使用conda 命令安装&#xff0c;conda官网查命令&#xff1a; conda install -c conda-forge nibabel conda install -c conda-forge/label/gcc7 ni…

编译 - Make 命令教程 - 学习/实践

1.应用场景 主要用于学习和使用make命令进行软件编译安装。 2.学习/操作 1.文档阅读 Make 命令教程 - 阮一峰的网络日志 Make- GNU Project - Free Software Foundation 2.整理输出 2.1 什么是make命令&#xff1f; Make 是最常用的构建工具&#xff0c;诞生于1977年&#xff…

python正则表达式实战——获取图片

我最近自学了一段时间爬虫&#xff0c;感觉挺有意思的&#xff0c;逛网页的时候&#xff0c;无意间发现了一个壁纸网站&#xff0c;我就萌生了一个想法&#xff0c;看能不能下下来&#xff0c;说干就干。 前言 目标网站&#xff1a;首先我们要知道我们的目标位置。 编程语言…

Java Spring-AOP动态代理-JDK和CGlib实现

Java Spring-AOP CGlib和JDK动态代理实现 编码是为了解决生活中的问题&#xff0c;譬如现在我想用筷子吃饭的时候看手机&#xff0c;那么首先会有两个对象。 现在如果是面向对象编程思想&#xff0c;我们会new一个筷子对象&#xff0c;new一个手机对象&#xff0c;然后先调用…

Linux 命令 —— feh

Linux 命令 —— feh1. 介绍2. 模式-重要&#xff01;2.1 模式对比3. 参数说明3. 常见使用方式1. 介绍 本教程基于版本 feh 2.23.2. 命令&#xff1a;feh feh是一个基于模式的图像查看器。虽然它也可以由(图形化的)文件管理器启动以查看图像&#xff0c;但它特别针对需要快速…

函数传址,但无法改变xy数据问题

目录 问题 正确代码 两者区别 开启调试 设置监视的变量 逐过程调试 在自定义函数中调试 跳出自定义函数 对正确的代码进行调试 进入自定义函数 跳出自定义函数 为什么说编译器有问题 问题 今天遇到一个很有意思的问题分享一下。他写了一个交换数据的函数&#xf…

看一眼就会的k8s权限管理手把手教学

Kubernetes Kubernetes使用RBAC授权Kubernetes一、API概述1.Role 和 ClusterRole1.RoleBinding和ClusterRoleBinding二、使用步骤&#xff08;Role及RoleBinding为例&#xff09;1、创建user用户证书2、创建集群、用户1、创建集群配置文件2、创建基于集群和新用户的上下文3、给…

【java进阶02:抽象类和接口】类与类之间的关系 抽象类与接口的区别

目录 抽象类 接口 抽象类 什么是抽象类 /*类————>对象 &#xff1a;实例化 对象————>类 &#xff1a;抽象抽象类:1、什么是抽象类&#xff1f;类和类之间具有共同特征&#xff0c;将这些共同特征提取出来&#xff0c;形成的就是抽象类类本身是不存在的&…

python 实现MAC泛洪与ARP欺骗

声明&#xff1a;本文章的一切内容仅用于交流与学习 目录 一、Python scapy 二、MAC泛洪 三、ARP欺骗 一、Python scapy scapy提供了构造、发送、接收、分析数据包的功能 scapy的内容很多这里只说明要用到的内容 RandMAC&#xff1a;自动生成一个随机的MAC地址 packet Et…

【SpringBoot】idea创建SpringBoot项目及注解配置相关应用

文章目录SpringBoot&#xff1a;一、简言二、SpringBoot作用三、核心功能四、创建springBoot项目1、新建SpringBoot&#xff08;maven基础下&#xff09;2、next---选版本导jar包3、创建后的pom.xml4、SpringBoot启动类六、测试项目1.项目构建&#xff1a;2.数据源注入dao层---…