JavaWeb-js(4)

news2024/10/8 13:17:21

js事件

在前端页面中,js程序大多数是由事件来驱动的,当触发某些事件的时候,可以使用js负责响应。

js事件由三部分组成: 
    事件源——》指的是被触发的对象; 
    事件类型——》如何触发的事件,如:鼠标单击、双击、键盘操作等; 
    事件处理程序——》触发事件以后,使用一个函数来处理。 

因此事件步骤: 
    1. 获取事件源对象; 
    2. 注册事件;
    3. 添加处理程序。 

事件类型

 

 

 

事件的注册方式

1.静态注册 在html标签中注册 (如果元素是通过js创建的 ,就没法这样注册)

2.动态注册 在js代码中注册

<!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>

        .box{
            width: 200px;
            height: 200px;
            background-color: aqua;
        }
    </style>

</head>


<body>

    <!-- onclick 单击事件 -->
    <button onclick="clickEvent()" ondblclick="dblclickEvent()">我是按钮</button>

    <input id="phone-input" onfocus="focusEvent()" onblur="blurEvent()">

    <span id="check-text" style="display: none;">格式正确</span>


    <div class="box" onmouseover="mouseoverEvent()"
        onmouseout="mouseoutEvent()"
    ></div>

</body>
<script>




    //入口函数
    //可以方式js代码 先于html代码加载 导致 元素获取失败的问题
    window.onload = function () {
        console.log('加载完成了')
        console.log(document.querySelector('button'))



      
    }

    function clickEvent() {
            console.log('单击')
        }

        function dblclickEvent() {
            console.log('双击')

        }

        function focusEvent() {


            console.log('获取到焦点')
            console.log('请输入手机号')
        }

        function blurEvent() {

            //当失去焦点的时候验证手机号正确性
            console.log('开始验证手机号');

            let phoneInput = document.getElementById('phone-input')
            let phone = phoneInput.value


            let text = document.getElementById('check-text');
            text.style.display = 'inline';
            //验证手机号
            let reg = /^1[3456789]\d{9}$/

            if (reg.test(phone)) {
                text.innerText = '格式正确'
                text.style.color = '#00acff'
            } else {
                text.innerText = '格式有误'
                text.style.color = 'red'
            }
        }

        function mouseoverEvent(){
            console.log('鼠标划入')
        }

        function mouseoutEvent(){
            console.log('鼠标划出')
        }
</script>

</html>
 // false代表 事件冒泡 从下往上 默认的
    // true代表 事件捕获, 从上往下 
    document.getElementById('one').addEventListener('click', function () {

        console.log('one被点击了')
    },false)
    document.getElementById('two').addEventListener('click', function () {

        console.log('two被点击了')
    },false)
    document.getElementById('three').addEventListener('click', function () {

        console.log('three被点击了')
    },false)

option

false的话 就是事件冒泡了 从子元素到父元素
true的话   就是事件捕获 从父到子!

true 的触发顺序总是在 false 之前;
•如果多个均为 true,则外层的触发先于内层;
•如果多个均为 false,则内层的触发先于外层。

Event事件对象

事件对象e,是event的简称。当一个事件被触发时候,这个事件的有关数据都会被存储在一个事件对象e里面,这个对象e有许多固定方法提供给我们查看里面各种数据。 

Bom操作

<!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>

        body{
            height: 3000px;
        }

        .top-layout{
            width: 100%;
            height: 80px;
            background-color: blue;
            display: none;
            position: fixed;
            top: 0;
        }

        .goTop-btn{
            width: 50px;
            height: 50px;
            background-color: blue;
            border-radius: 50%;
            position: fixed;
            right: 100px;
            bottom: 100px;
            display: none;
        }
    </style>
</head>
<body>

    <div class="top-layout"></div>

    <div class="goTop-btn"></div>
    
</body>

<script>


    /*
    
        bom代表操作浏览器
        页面的放大缩小 , 页面的滚动, 浏览器加载情况
    */
   
   //监听浏览器加载完毕 方式1
   window.onload = function(){


   }

   //方式2
   window.addEventListener('load',function(){


   })

   //监听浏览器大小的改变
   window.addEventListener('resize',function(e){

    // console.log(window.innerWidth,window.innerHeight)
   })



   
   //获取 顶部栏目 和 按钮
   let topBtn= document.querySelector('.goTop-btn')
    let topLayout= document.querySelector('.top-layout');
    

   //监听浏览器滚动条滚动
   window.addEventListener('scroll',function(e){

 
    //获取当前滚动条的滑动距离
    let top = document.documentElement.scrollTop;

    
    if(top>1000){
        topLayout.style.display='block'
        topBtn.style.display='block'

    }else{
        topLayout.style.display='none'
        topBtn.style.display='none'
    }
   })


   //点击按钮 回到顶部
   topBtn.addEventListener('click',function(){

     window.scrollTo({
        top:0,
        behavior:"smooth"
     })
   })
</script>
</html>

定时器

  //定时器 1 setTimeout
    // function 延迟执行的函数,延迟的时间 
   let timeOut  =   setTimeout(function(){
        console.log(123)

          // 清除定时器
        // clearTimeout(this);
    },2000);


    function clearTime(){
        clearTimeout(timeOut);
    }
 // 循环执行的定时器:轮播图,倒计时,循环请求

   let setTime=  setInterval(function(){
        console.log("我被执行了")

    },1000)


    function clearTime(){
        clearInterval(setTime)

    }

 

 

 

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

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

相关文章

2024最新最全【Java】全栈,零基础入门到精通

Java基础 本文章是作者的学习笔记&#xff0c;帮助初学者快速入门&#xff0c;内容讲的不是很细&#xff0c;适合初学者&#xff0c;不定时更新。 目录 Java基础数据类型1.基本类型(primitive type)1-1 整数类型1-2 浮点类型1-3 字符类型1-4 boolean类型 2.引用数据类型3.类型…

2024.7.11最新版IDM破解,操作简单

前言 IDM的强劲对手&#xff0c;100%免费&#xff0c;如果破解IDM失败&#xff0c;推荐使用FDM&#xff0c;下载地址&#xff1a;Free Download Manager 破解步骤 打开PowerShell&#xff0c;非CMD 在左下角开始菜单右键点击后选择PowerShell&#xff0c;注意不是打开CMD。…

大模型时代的基础架构:大模型算力中心建设指南

&#x1f482; 个人网站:【 摸鱼游戏】【网址导航】【神级代码资源网站】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

hbase学习

hbase学习 hbase概述&#xff1a; HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统&#xff0c;用于存储海量的结构化或者半结构化&#xff0c;非结构化的数据&#xff08;底层是字节数组做存储的&#xff09; HBase是Hadoop的生态系统之一&#xff0c;是建立在…

开源浏览器引擎:WebKit简介及工作流程、优缺点

WebKit是一个开源的浏览器引擎&#xff0c;最初由苹果公司基于KHTML&#xff08;K Desktop Environment的HTML渲染引擎&#xff09;开发&#xff0c;并广泛应用于Safari浏览器&#xff0c;后来也被其他多款浏览器和应用采用。WebKit负责解析HTML、CSS、JavaScript等网页内容&am…

【动态规划Ⅳ】二维数组的动态规划——最小路径和

二维数组的动态规划 最小路径和64. 最小路径和原地修改数组定义二维数组进行状态转移优化&#xff1a;用 一维数组进行状态转移相似题目&#xff1a;LCR 166. 珠宝的最高价值 120. 三角形最小路径和原地修改数组定义二维数组进行状态转移一维数组进行状态转移自底向上&#xff…

获取商铺信息,以及商铺信息的增删改查

本文章主要讲述如何对商铺信息进行基本的增删改查操作&#xff0c;及数据库对比。 1、获取首页仪表盘统计数据接口 待收费金额&#xff1a; SELECT count(1) as count,IFNULL(sum(total),0)as sum FROM payment_bill WHERE enabled_mark 1 AND pay_state0 欠费数据&#xf…

Linux-shell编程入门基础

文章目录 前言Shell编程bash特性shell作用域变量环境变量$特殊变量$特殊状态变量 $特殊符号(很重要)其他内置shell命令shell语法的子串截取统计 指令执行时间练习shell特殊扩展变量父子shell的理解内置和外置命令区别 数值计算双括号(())运算letexprexpr模式匹配 bcawk中括号 s…

LabVIEW电容器充放电监测系统

概述 为了对车用超级电容器的特性进行研究&#xff0c;确保其在工作时稳定可靠并有效发挥性能优势&#xff0c;设计了一套车用超级电容器充放电监测系统。该系统通过利用传感器、USB数据采集卡、可调直流稳压电源、电子负载以及信号调理电路&#xff0c;完成对各信号的采集和超…

【matlab】随机森林客户流失预测

目录 引言 核心思想 优点 应用场景 建模步骤 数据集 结果 代码实现 引言 随机森林&#xff08;Random Forest&#xff09;是一种集成学习算法&#xff0c;它通过构建多个决策树并将它们的预测结果进行汇总来提高整体模型的预测准确率、稳定性和泛化能力。随机森林属于“…

CentOS7安装部署git和gitlab

安装Git 在Linux系统中是需要编译源码的&#xff0c;首先下载所需要的依赖&#xff1a; yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker方法一 下载&#xff1a; wget https://mirrors.edge.kernel.org/pub/s…

软考高项论文备考论

软考高项论文备考是一个系统而全面的过程&#xff0c;需要考生从多个方面进行准备。以下是一份详细的备考策略&#xff0c;供考生参考&#xff1a; 一、明确考试要求 首先&#xff0c;考生需要详细了解软考高项论文的考试要求&#xff0c;包括字数限制、结构要求、评分标准等…

Monaco Editor 中文文档整理(超详细、超全面、带demo示例)

地址 Monaco Editor 中文官网&#xff0c;欢迎大家体验。 网站采用 github pages 部署&#xff0c;可能因网络等原因&#xff0c;响应较慢&#xff0c;请耐心等待~ 也欢迎大家对译文内容进行纠正&#xff0c;如果有误&#xff0c;可本文留言、提 ISSUE、亦或直接在内容页的在 …

苹果手机信号为什么比安卓手机信号差,原因你知道吗?

不知道你有没有过这种体会&#xff0c;在使用苹果手机时&#xff0c;信号要比安卓的信号差的一些&#xff0c;这到底是怎么回事呢&#xff1f;接下来&#xff0c;小编从多个角度深入分析下这一问题&#xff0c;给出相应的解决方案&#xff0c;希望能帮助到大家哈&#xff01; ​…

Mac视频录制神器推荐,让你的创作更高效

“mac可以视频录制吗&#xff1f;最近我开始对录制和编辑视频产生了浓厚的兴趣。然而&#xff0c;由于我主要使用的是mac电脑&#xff0c;我发现关于在mac上录制视频的教程和资源相对较少。大家知道如何在mac上录制视频吗&#xff1f;如果有的话&#xff0c;请告诉我具体方法&a…

[WMCTF2020]easy_re

CTF逆向-[WMCTF2020]easy_re-WP_虚机-perl加载器截取_逆向分析ctf实战 百度网盘-CSDN博客 参考博客 收获 perl,反正这个东西流程和upx壳很像,(高级的SMC?) 它会加载一个脚本,来解密源代码,期间call 一个 script 题解: 运行为第一步! 输入类型 输入类型一般就是加密,(期间…

电商之订单价税拆分实现方案

文章目录 案例数据实现思路1、计算出平均金额2、计算每个商品的金额 实现方案1、订单 order 实体2、订单明细 orderDetail 实体3、实现类4、测试启动5、实现结果 在做电商项目的时候&#xff0c;会遇到要对订单明细进行纳税金额拆分&#xff0c;即将税额拆分到每个商品上&#…

最优化(10):牛顿类、拟牛顿类算法

4.4 牛顿类算法——介绍了经典牛顿法及其收敛性&#xff0c;并介绍了修正牛顿法和非精确牛顿法&#xff1b; 4.5 拟牛顿类算法——引入割线方程&#xff0c;介绍拟牛顿算法以及拟牛顿矩阵更新方式&#xff0c;然后给出了拟牛顿法的全局收敛性&#xff0c;最后介绍了有限内存BFG…

【漏洞复现】宏景HCM-LoadOtherTreeServlet SQL注入

声明&#xff1a;本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动&#xff0c;将与本文档的作者或发布者无关。 一、漏洞描述 宏景HCM人力资源信息管理系统是一个全面的人力资源管理软件&#xff0c;它覆盖了人力资源管理的各个模块…

龙蜥Anolis OS基于开源项目制作openssh 9.8p1 rpm包 —— 筑梦之路

环境信息 制作过程和centos 7几乎没有区别&#xff0c;此处就不再赘述。 CentOS 7基于开源项目制作openssh9.8p1 rpm二进制包修复安全漏洞CVE-2024-6387 —— 筑梦之路_cve-2024-6387修复-CSDN博客 制作成果展示 tree RPMS/ RPMS/ └── x86_64├── openssh-9.8p1-1.an7.…