JavaScript基础(Dom操作)

目录

  • 一,BOM模型
    • 1.1,BOM可实现功能
  • 二,Window对象的常用属性
    • 2.1,Window对象的常用方法
      • 2.1-1,open()和close()方法
  • 三,History对象
  • 四,Location对象
  • 五,Document对象的常用方法
  • 六,定时函数
    • 6.1,清除函数
  • 七,写了一个小游戏 (模拟小球移动)
  • 最后

一,BOM模型

BOM提供了独立于内容的、可与浏览器窗口进行互动的对象结构
BOM:浏览器对象模型(Browser Object Model)
在这里插入图片描述

1.1,BOM可实现功能

弹出新的浏览器窗口
移动、关闭浏览器窗口以及调整窗口的大小
页面的前进、后退

二,Window对象的常用属性

表示浏览器中打开的窗口
常用的属性

在这里插入图片描述
这里面有Window所有对象我这截图不全,里面带f的是函数,不带的是属性

属性名称说 明
history有关客户访问过的URL的信息
location有关当前 URL 的信息
screen只读属性,包含客户端显示屏幕的信息

语法:
window.属性名= "属性值";

在这里插入图片描述
返回这个点击直接跳转百度页面

screen.width 返回浏览器屏幕的宽度,单位为像素;
在这里插入图片描述

2.1,Window对象的常用方法

常用的方法

方法名称说 明
prompt( )显示可提示用户输入的对话框
alert( )显示带有一个提示信息和一个确定按钮的警示框
confirm( )显示一个带有提示信息、确定和取消按钮的对话框
close( )关闭浏览器窗口
open( )打开一个新的浏览器窗口,加载给定 URL 所指定的文档
setTimeout( )在指定的毫秒数后调用函数或计算表达式
setInterval( )按照指定的周期(以毫秒计)来调用函数或表达式
clearTimeout( )用于停止执行setTimeout( )方法的函数代码
clearInterval( )用于停止 setInterval( ) 方法执行的函数代码

2.1-1,open()和close()方法

<body>
    <div>
        <input type="button" value="打开窗口" onclick="openwin()"></input>
        <input type="button" value="关闭窗口" onclick="closewin()">
    </div>

</body>
<script>
    function openwin(){
        window.open("https://www.baidu.com.cn","win1")
    }
    function closewin(){
        window.close()
    }
</script>

Video_20230822152329

在这里插入图片描述

第一个按钮可以打开窗口,第二个按钮可以关闭窗口

窗口特征的一些属性

属性名称说 明
height、width窗口文档显示区的高度、宽度,以像素计
left、top窗口的x坐标、y坐标,以像素计
toolbar=yes ,no, 1 , 0是否显示浏览器的工具栏,黙认是yes
scrollbars=yes,no,1,0是否显示滚动条,黙认是yes
location=yes,no,1,0是否显示地址地段,黙认是yes
status=yes,no,1,0是否添加状态栏,黙认是yes
menubar=yes,no,1,0是否显示菜单栏,黙认是yes
resizable=yes,no,1,0窗口是否可调节尺寸,黙认是yes
titlebar=yes,no,1,0是否显示标题栏,黙认是yes
fullscreen=yes,no,1,0是否使用全屏模式显示浏览器,黙认是no。处于全屏模式的窗口必须同时处于剧院模式

三,History对象

保存用户上网的历史记录,可通过window.history属性访问

常用属性和方法

类别名称说明
属性length返回历史记录列表中的网址数
方法back()加载 History 对象列表中的前一个URL
方法forward()加载 History 对象列表中的下一个URL
方法go()加载 History 对象列表中的某个具体URL

在这里插入图片描述

<body>
    <div>
        <input type="button" value="跳转窗口" onclick="gotodemo01()">
    </div>

</body>
<script>
    function gotodemo01(){
        window.location.href="demo01.html"
    }
</script>

Video_20230822152033

<body>
    <div>
        <input type="button" value="打开窗口" onclick="openwin()"></input>
        <input type="button" value="关闭窗口" onclick="closewin()">
        <input type="button" value="跳转窗口" onclick="gotodemo01()">
        <input type="button" value="前进" onclick="qinajin()">
    </div>

</body>
<script>
    function openwin(){
        window.open("https://www.baidu.com.cn","win1")
    }
    function closewin(){
        window.close()
    }
    function gotodemo01(){
        window.location.href="demo01.html"
    }
    function qinajin(){
        window.history.forward();
    }
</script>
<body>
    passerby
    <div>
        <input type="button" value="后退" onclick="goblock()">
    </div>
</body>
<script>
    function goblock(){
        window.history.back();
    }
</script>

Video_20230822152919

四,Location对象

包含有关当前URL的信息,可通过window.location属性访问

常用属性

名称说 明
host设置或返回主机名和当前URL的端口号
hostname设置或返回当前URL的主机名
href设置或返回完整的URL

常用方法

名称说 明
reload()重新加载当前文档
replace()用新的文档替换当前文档

在这里插入图片描述

五,Document对象的常用方法

Document对象代表整个HTML文档
Document对象的常用方法

名 称说 明唯一
getElementById()返回对拥有指定id的第一个对象的引用对象的id唯一
getElementsByName()返回带有指定名称的对象的集合相同name属性
getElementsByTagName()返回带有指定标签名的对象的集合相同的元素
write()向文档写文本、HTML表达式或JavaScript代码

写了一个小例子:

<!DOCTYPE html>
<html>

<head lang="en">
    <meta charset="UTF-8">
    <title>使用document对象操作页面</title>
    <style type="text/css">
        body,
        input,
        div,
        p{
            margin: 0;
            padding: 0;
        }

        body {
            font-size: 14px;
            font-family: "微软雅黑";
            line-height: 25px;
        }

        .content {
            width: 600px;
            margin: 30px auto;
        }

        .content img {
            float: left;
            width: 180px;
        }

        .r {
            float: right;
            width: 400px;
        }

        input[name="changephone"] {
            width: 100px;
            height: 28px;
            line-height: 28px;
            text-align: center;
            font-size: 14px;
            font-family: "微软雅黑";
            margin: 10px 0 10px 0;
        }

        input[name="size"] {
            width: 50px;
            text-align: center;
        }
        #replace {
            border: 1px solid rgb(179, 179, 179);
            height: 60px;
        }
    </style>
</head>

<body>
    <div class="content">
        <img src="images/pro4.jpg" alt="1+8Plus" />
        <div class="r">
            产品名称:<span id="phone123">1+8 Plus</span> <br>
            <input name="changephone" value="更换产品名称" type="button" onclick="changeName();" /><br>
           规格选择:
            <input name="size" type="text" value="64G" />
            <input name="size" type="text" value="128G" />
            <input name="size" type="text" value="256G" />
            <input name="size" type="text" value="512G" /><br>
            <input name="b2" type="button" value="input内容" onclick="all_input()" />
            <input name="b3" type="button" value="所有规格" onclick="s_input()" />
            <input name="b4" type="button" value="清空页面内容" onclick="clearAll()" />
            <p id="replace"></p>
        </div>
    </div>
    <script type="text/javascript">
        function changeName(){
            document.getElementById("phone123").innerHTML="ABC"
        }
        function all_input(){
            var inputArray = document.getElementsByTagName("input");
            var inputHtml = "";
            for(var i=0; i<inputArray.length; i++){
                var myinput = inputArray[i];
                inputHtml = inputHtml + myinput.value + "";
            }
            document.getElementById("replace").innerHTML=inputHtml;
        }

        function s_input(){
            var inputArray = document.getElementsByName("size");
            var inputHtml = "";
            for(var i=0; i<inputArray.length; i++){
                var myinput = inputArray[i];
                inputHtml = inputHtml + myinput.value + "";
            }
            document.getElementById("replace").innerHTML=inputHtml;
        }
        function clearAll(){
            document.getElementById("replace").innerHTML="";
        }
    </script>
</body>

</html>

Video_20230822170835

六,定时函数

超时调用:setTimeout()

window.setTimeout("调用的函数", 等待的毫秒数);

间歇调用:setInterval()

window.setInterval("调用的函数", 间隔的毫秒数);

示例

<!-- 加载完执行的事件 -->
<body onload="init()">
    

</body>
<script>
    function init(){
        setTimeout("fun1()",3000);
        // 3秒(3000毫秒)后执行fun1()函数一次
        setInterval("fun2()",2000)
        // 每隔2秒(2000毫秒)执行一次fun2()函数
    }

    


    function fun1(){
        console.log(1);
    }

    function fun2(){
        console.log(2);
    }
</script>

Video_20230822172316

6.1,清除函数

clearTimeout()

clearTimeout(setTimeOut()返回的ID)

clearInterval()

clearInterval(setInterval()返回的ID)

示例

<!-- 加载完执行的事件 -->
<body onload="init()">
    <input type="button" value="停止" onclick="stopInterval()">

    <input type="button" value="开始" onclick="startInterval()">

</body>
<script>

    var intervalIndex;

    function init(){
        setTimeout("fun1()",3000);
        // 3秒(3000毫秒)后执行fun1()函数一次
        intervalIndex = setInterval("fun2()",2000)
        // 每隔2秒(2000毫秒)执行一次fun2()函数
    }
    function fun1(){
        console.log(1);
    }

    function fun2(){
        console.log(2);
    }

    function stopInterval(){
        clearInterval(intervalIndex)
    }
    function startInterval(){
        intervalIndex = setInterval("fun2()",2000)
        // 每隔2秒(2000毫秒)执行一次fun2()函数
    }
</script>

Video_20230822173613

七,写了一个小游戏 (模拟小球移动)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    #box{
        border: 1px sandybrown solid;
        height: 100px;
        width: 100px;
        text-align: center;
        line-height: 100px;
        border-radius: 50px;
        position: absolute;
        left: 100px;
    }
</style>
<body> 
    <div id="box">点击开始</div>
</body>
<script>

//    绑定点击事件

    /**
     * 1.画静态页面
     * 2.绑定点击事件
     * 3.点击一次移动导固定位置(点一次移动一次)
     * 4.点击一次在原有的基础上移动固定位置(点一次移动一次)
     * 5.点击一次持续移动
     * 6.点击后,能判断出是要停止还是移动
     * 7.在停止的对应的代码上,停止循环
     * **/
    var boxDom = document.getElementById("box");
        // 创建一个绑定事件
    boxDom.addEventListener("click",isMove);
    var intervalIndex; 

    function isMove(){
        
        var boxHtml = boxDom.innerHTML // Div文字内容
        if(boxHtml=='点击停止'){
            // 停止循环
            clearInterval(intervalIndex);
            boxDom.innerHTML="点击开始"
        }else{
            // 开始循环
            intervalIndex = setInterval("Move()",10)
        }
        
    }
    // 方法调用一次移动1px
    function Move(){
        console.log(1);
        var leftVal = window.getComputedStyle(boxDom).left;
        console.log(leftVal);
        leftVal = parseInt(leftVal);
        leftVal =  leftVal+1;
        boxDom.style.left = leftVal+"px"
        boxDom.innerHTML="点击停止"
    }
</script>
</html>

Video_20230822175824

最后

送大家一句话:变好的过程都不太舒服,试试在努力点

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

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

相关文章

el-table 实现动态表头 静态内容 根据数据显示动态输入框

直接放代码了 <el-table:data"form.tableDataA"borderstripestyle"width: 100%; margin-top: 20px"><el-table-columnv-for"(category, categoryIndex) in form.tableDataA":key"categoryIndex":label"category.name&qu…

软考高级架构师下篇-12层次式架构设计理论与实践

目录 1. 考情分析2. 层次式体系结构概述3. 表现层框架设计4. 中间层框架设计5. 数据访问层设计6. 数据架构规划与设计7. 物联网层次架构设计8. 前文回顾1. 考情分析 根据考试大纲,层次式架构设计理论与实践知识点会涉及单选题型(约占2~5分)和案例题(25分),本小时内容偏重于方…

Postman接口自动化测试实例

一.实例背景 在实际业务中&#xff0c;经常会出现让用户输入用户密码进行验证的场景。而为了安全&#xff0c;一般都会先请求后台服务器获取一个随机数做为盐值&#xff0c;然后将盐值和用户输入的密码通过前端的加密算法生成加密后串传给后台服务器&#xff0c;后台服务器接到…

【MySQL系列】ALTER语句详解,以及UPDATE,DELECT,TRUNCATE语句的使用+区别

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

PHP数组

数组是一个能在单个变量中存储多个值的特殊变量。 数组的英文是array,可以存入多个不同类型的数据&#xff0c;是一个复合数据类型。 在 PHP 中&#xff0c;有三种类型的数组&#xff1a; 索引数组 - 带有数字 ID 键的数组关联数组 - 带有指定的键的数组&#xff0c;每个键关…

ubuntu18.04安装远程控制软件ToDest方法,针对官网指令报错情况

有时我们在家办公&#xff0c;需要控制实验室的笔记本&#xff0c;因此好用的远程控制软件会让我们的工作事半功倍&#xff01; 常用的远程控制软件有ToDesk&#xff0c;向日葵&#xff0c;以及TeamViewer&#xff0c;但是为感觉ToDesk更流畅一些&#xff0c;所以这里介绍一下…

系统报错mfc100u.dll丢失的解决方法(完美解决dll问题)

系统文件mfc100u.dll丢失和出错&#xff0c;极有可能是盗号木马、流氓软件等恶意程序所导致&#xff0c;其感染相关文件并加载起来&#xff0c;一旦杀毒软件删除被感染的文件&#xff0c;就会导致相关组件缺失&#xff0c;游戏等常用软件运行不起来&#xff0c;且提示“无法启动…

QT 使用图表

目录 1、概念 1.1 坐标轴-QAbstractAxis 1.2 系列-QAbstractSeries 1.3 图例-Legend 1.4 图表-QChart 1.5 视图-QChartView 2、 QT 折线图 2.1 Qt 折线图介绍 2.2 Qt 折线图实现 Qt 图表是专门用来数据可视化的控件 Qt 图表包含折线、饼图、棒图、散点图、范围图等。…

【工具】 删除Chrome安装的“创建快捷方式”

创建Chrome的快捷方式&#xff0c;可以放在桌面&#xff0c;想用时双击就可以打开网页&#xff0c;比书签&#xff08;brookmark&#xff09;结构化管理更方便。 但是&#xff0c;安装一时爽&#xff0c;卸载有问题。 如果用 windows 控制面板\所有控制面板项\程序和功能 卸载…

Redis五大基本数据类型及其使用场景

文章目录 **一 什么是NoSQL&#xff1f;****二 redis是什么&#xff1f;****三 redis五大基本类型**1 String&#xff08;字符串&#xff09;**应用场景** 2 List&#xff08;列表&#xff09;**应用场景** 3 Set&#xff08;集合&#xff09;4 sorted set&#xff08;有序集合…

Window下部署使用Stable Diffusion AI开源项目绘图

Window下部署使用Stable Diffusion AI开源项目绘图 前言前提条件相关介绍Stable Diffusion AI绘图下载项目环境要求环境下载运行项目打开网址&#xff0c;即可体验文字生成图像&#xff08;txt2img&#xff09;庐山瀑布 参考 本文里面的风景图&#xff0c;均由Stable Diffusion…

VM部署CentOS并且设置网络

最近在准备学习k8s&#xff0c;需要部署服务器&#xff0c;所以需要在虚拟机中部署centOS服务&#xff0c;接下来我们将一步一步到操作来&#xff0c;如何在VM中不是CentOS系统。 一&#xff1a;环境 VMware Workstation Pro 链接&#xff1a;https://pan.baidu.com/s/1hSKr…

积跬步至千里 || 矩阵可视化

矩阵可视化 矩阵可以很方面地展示事物两两之间的关系&#xff0c;这种关系可以通过矩阵可视化的方式进行简单监控。 定义一个通用类 from matplotlib import pyplot as plt import seaborn as sns import numpy as np import pandas as pdclass matrix_monitor():def __init…

Spring Clould 搜索技术 - elasticsearch

视频地址&#xff1a;微服务&#xff08;SpringCloudRabbitMQDockerRedis搜索分布式&#xff09; 初识ES-什么是elasticsearch&#xff08;P77&#xff0c;P78&#xff09; 1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能…

java学习004

常用数据结构对应 php中常用的数据结构是Array数组&#xff0c;相对的在java开发中常用的数据结构是ArrayList和HashMap&#xff0c;它们可以看成是array的拆分&#xff0c;一种简单的对应关系为 PHPJAVAArray: array(1,2,3)ArrayListlArray: array(“name” > “jack”,“…

iPhone开启“轻点唤醒”功能但点击屏幕无反应怎么解决?

iPhone的“轻点唤醒”功能启用时&#xff0c;用户只需手指轻触或点击手机屏幕即可快速唤醒设备&#xff0c;无需按压任何按钮。然而&#xff0c;有些用户在使用“轻点唤醒”功能唤醒屏幕时&#xff0c;遇到该功能失灵&#xff0c;无法正常唤醒屏幕的情况&#xff0c;这是怎么回…

如何在Java实现TCP方式发送和接收Socket消息(多线程模式)

目录 导言&#xff1a;正文&#xff1a;1. 创建Server端&#xff1a;2. 创建Client端&#xff1a;3. 多线程模式&#xff1a; 代码示例Server端代码示例&#xff1a;Client端代码示例&#xff1a;同步模式发送TCP消息异步模式 结论&#xff1a; 导言&#xff1a; 在Java编程中…

python 打印沁园春 雪 居中对齐 文本对齐

以下是python 中使用 DebugInfo 模块居中对齐打印《沁园春・雪》的效果 引入模块 pip install DebugInfopython代码 # -*- coding:UTF-8 -*-# region 引入必要依赖 from DebugInfo.DebugInfo import * # endregion诗文 沁园春 雪 作者: 毛主席 北国风光&#xff0c;千里冰封…

【Linux C】在sprintf中打印双引号

0x00 前言 最后更新日期&#xff1a;2023.8.16 0x01 在sprintf中打印双引号 在字符串中有双引号”的地方前面加上一个反斜杠“\”即可&#xff0c;例如&#xff1a; char szProQuery[256] {0}; char name[256] "XiaoMing"; sprintf(szProQuery,"%s said :…

“心理健康人工智能产学研创新联盟”揭牌成立|深兰科技

8月14日上午&#xff0c;“2023树洞救援年会”在上海举行&#xff0c;会上举行了“心理健康人工智能产学研创新联盟”的签约和揭牌仪式。“树洞行动救援团”创始人深兰科技科学院智能科学首席科学家、荷兰阿姆斯特丹自由大学人工智能系终身教授黄智生&#xff0c;深兰科技集团创…