HTML+CSS实训——Day06——发现页的用JavaScript修改

news2024/11/23 15:13:02

仓库链接:https://github.com/MengFanjun020906/HTML_SX

前言

昨天学习了javascript的一些知识点,今天要学习dom的操作了,也就是文档对象模型的操作。

dom操作

<body>
    <div id="i1">
        这是一个div
    </div>
    <script>
        // dom = document obj model
        var i1=document.querySelector('#i1');
        console.log(i1);
        console.dir(i1)
        console.log(i1.id)
        i1.className='c1';
        i1.innerText='<b>这不是一个div</b>'
        i1.innerHTML='<b>这不是一个div</b>'
        console.log(document.documentElement)
        console.log(document.head)
        console.log(document.body)
    </script>
</body>


我们输入innerText的时候,他并不会编译我们的加粗指令,但是在写innerhtml的时候,他会把他编译成加粗字体。
在这里插入图片描述
后面的三句代码分别展示了网页元素的内容,展示了body,head还有element

图片也可以成为“数组”

在body中写图片的地址

    <img src="./img/ad/811.jpg" class="img1" alt="">
    <img src="./img/ad/853.jpg" class="img1" alt="">
        // getElementsByClassName 通过类名获取元素
        var imgs = document.getElementsByClassName('img1')
        console.dir(imgs)
        var img1 = imgs[0]
        console.log(img1)
        img1.src = './img/ad/917.jpg'
        // 设置元素的类名 
        // img1.className = 'img1 img1-border'
        // 由于使用className是字符串操作比较麻烦

        //   所以后来出现了一个新语法classList
        console.log(img1.classList)
        // 给元素添加class类名
        img1.classList.add('img1-border')

在script中更改了一个图片的地址,并且给他增加了class的类名

在这里插入图片描述

定时器

因为我们要做首页的轮播图,就需要用到定时器

        // 图片组
        var imgsSrcs=[
            './img/ad/853.jpg',
            './img/ad/902.jpg',
            './img/ad/903.jpg',
            './img/ad/917.jpg',
            './img/ad/918.jpg',
            './img/ad/811.jpg',
        ]

        var img1=document.getElementById('img1');
        var i=0
        //setInterval(函数,间隔时间),在指定时间内,重复执行指定的函数
        //间隔单位是毫秒
        setInterval(function() { 
            console.log(imgsSrcs[i])
            img1.src= imgsSrcs[i]
            console.log(i,'嘿嘿')
            i++
            if(i>=imgsSrcs.length){
                i=0
            }
        },2500);

在这里插入图片描述

元素之前的父子关系

<body>
    <div id="i1">
        <img src="./img/ad/853.jpg" alt="">
        <h2>
            这是一个h2
            <span>这是一个span</span>
        </h2>
        <p>这是一个段落</p>
        <i>
            这是一个i标签
        </i>
    </div>
    <script>
        var i1 = document.getElementById('i1');
        console.log(i1)
        // 获取i1的子元素
        console.log('获取i1的子元素')
        console.log(i1.children)
        var img1 = i1.children[0]
        console.log(img1)
        //获取父元素
        console.log('获取img的父元素')
        console.log(img1.parentElement)
        //获取下一个兄弟元素
        console.log('获取h2下一个兄弟元素')
        var h2el = img1.nextElementSibling
        console.log(h2el)
        console.log(h2el.parentElement)
        console.log(h2el.children)
        //获取上一个兄弟元素
        console.log('获取h2上一个兄弟元素')
        console.log(h2el.previousElementSibling)
    </script>
</body>

在这里插入图片描述
像是一个树一样的结构

开始做项目

首页跳转到广告页

index.html

<body>


    <h1>音乐的力量</h1>
    <h4>
        <img src="img/logo.png" alt="加载">
        木子云音乐
    </h4>
    <script>
        //一次性定时器
        setTimeout(function() {
            // console.log('aaa')
            //location.href=''控制浏览器地址栏
            location.href='./table_plaque.html'
        },2000)
    </script>
</body>

这是首页的界面,过2s跳转到广告页,我们在这里用了一个一次性定时器。

广告页跳转到主页

table_plaque.html

<body>
    <div class="footer">
        <span>5s</span>
        <span>跳过</span>


    </div>
    <script>
        //获取元素
        var spanel = document.querySelector('.footer span')

        //获取到span的内容
        var spanhtml = spanel.innerHTML
        console.log(spanhtml)
        //把字符串的数字取出
        var s = parseInt(spanhtml)
        console.log(s)
        setInterval(function () {
            s = s - 1;
            //将秒赋值给span
            spanel.innerHTML = s + 's'

            if (s <= 1) {
                location.href = './find.html'
            }
        }, 1000)
    </script>
</body>

这里我们需要让其倒计时5s,用到了一个定时器还有一个取数字函数parseInt()取出数字让其自减作为倒计时。

主页banner循环变换

            var imgs = [
                './img/ad/853.jpg',
                './img/ad/902.jpg',
                './img/ad/903.jpg',
                './img/ad/811.jpg',
            ]   
            var imgEl = document.querySelector('.banner .imgs img')
            var pspans = document.querySelectorAll('.banner .pointer span')
            var i = 0
            imgEl.src = imgs[i]
            // 给选中的点一个active属性
            pspans[i].className = 'active'
            setInterval(function () {
                // 设置前一个红色的的为白色
                pspans[i].className = '' // i = 2
                i++;
                if (i == imgs.length) {
                    i = 0
                }
                imgEl.src = imgs[i] // 1 = 3
                pspans[i].className = 'active' // i = 3
            }, 1500);


这样他就会红点和banner图一起循环了。

歌单信息

为了更方便的修改歌单信息,我们将他写在javascript里面,更方便的去调用。

            // 歌单  
            var sheets = [{
                    "sid": 10,
                    "title": "国风伤感",
                    "user_id": 4,
                    "pic": "img/sheet/10.jpg",
                    "comment": "如今的念头,是去很远的地方,饮马曳落河,拄剑拖月山"
                },
                {
                    "sid": 20,
                    "title": "治愈系指南",
                    "user_id": 4,
                    "pic": "img/sheet/20.jpg",
                    "comment": "微风吹来丝丝秋意,月亮照出梦的甜蜜,亲爱的朋友"
                },
                {
                    "sid": 30,
                    "title": "抖音BGM签收",
                    "user_id": 1,
                    "pic": "img/sheet/30.jpg",
                    "comment": "善待自己,从心开始。眼里的世界,从来只是表象"
                },
                {
                    "sid": 40,
                    "title": "发光自习室",
                    "user_id": 1,
                    "pic": "img/sheet/40.jpg",
                    "comment": "每到学习时间,所有的压力都接踵而至。此张歌单送给正在努力学习的你"
                },
                {
                    "sid": 50,
                    "title": "古风纯音",
                    "user_id": 2,
                    "pic": "img/sheet/50.jpg",
                    "comment": "情愫始自少年时,簪缨结发两相知。年年灼灼艳桃李,结发簪花配君子"
                }
            ]

            // 生成一个dom
            // var h1el=document.createElement('h1')
            // h1el.innerText = '推荐歌单'


            var choiceEl = document.querySelector('.choice-box')
            console.log(choiceEl)
            for (var sheet of sheets) {
                console.log(sheet.pic)
                // 2. 生成每一个歌单元素
                var divel = document.createElement('div')
                // `` 反引号 是模板字符串
                // 模板字符串中可以使用 ${} 来引用变量
                // 3. 设置歌单元素的内容
                divel.innerHTML = `
				<div class="item" >
					<img src="${sheet.pic}" alt="">
					<span>${sheet.comment}</span>
				</div>
			`
                // appendChild 添加一个子元素
                // 4. 把歌单元素添加到父元素中
                choiceEl.appendChild(divel)
            }

在这里插入图片描述
把前面的都注释了就行。

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

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

相关文章

一次redis主从切换导致的数据丢失与陷入只读状态故障

背景 最近一组业务redis数据不断增长需要扩容内存&#xff0c;而扩容内存则需要重启云主机&#xff0c;在按计划扩容升级执行主从切换时意外发生了数据丢失与master进入只读状态的故障&#xff0c;这里记录分享一下。 业务redis高可用架构 该组业务redis使用的是一主一从&am…

Spring Boot 如何实现邮件发送

Spring Boot邮件发送 在现代的Web应用程序中&#xff0c;邮件通知已经成为了一项非常重要的功能。例如&#xff0c;在用户注册、密码重置、订单确认等方面&#xff0c;我们通常都会使用邮件来通知用户。在Spring Boot应用程序中&#xff0c;我们可以使用JavaMailSender来实现邮…

2022年长三角高校数学建模竞赛A题学在长三角解题全过程文档及程序

2022年长三角高校数学建模竞赛 A题 学在长三角 原题再现&#xff1a; 长三角高等教育规模和优质高等教育资源数量处于全国领先水平。从 2019年和 2013-2019 年的平均值来看&#xff0c;长三角地区人口数量在全国占比分别是 16.22&#xff05;和 16.10&#xff05;&#xff0c…

在Css上吃过的亏

一、前言 最近参加了公司的一个小程序的开发项目&#xff0c;虽然很简单&#xff0c;但是非常急三天就要交。本来就是实习生加上前端不熟练的我&#xff0c;最终在Css定位上吃了很大的亏。今天就来了解一下Css中的几个定位。 二、什么是定位 在Css中有一个position属性&…

技术干货 | ​Navicat 面向 PostgreSQL 查询超时的工具解决方案

早前&#xff0c;我们发表过一篇《PostgreSQL 与 Navicat &#xff1a;数据库的中坚力量》 &#xff0c;从产品的发展介绍了两者的渊源与共性&#xff0c;获得了许多童鞋的认可。而随着PostgreSQL 在国内热度愈发高涨&#xff0c;应用也愈发广泛。近期&#xff0c;我们收到许多…

Chirpstack服务器简介和搭建教程

LoRaWAN网络主要优势体现在低成本、广域连接和低功耗&#xff0c;同时具有较多的开源平台可供使用。使用Chirpstack服务器可以快速搭建本地LoRaWAN网络。本文重点介绍一下Chirpstack服务器是做什么的和Chirpstack服务器的安装教程&#xff1a; Chirpstack是一款多组件的、部署…

vue中 antdesginVue <a-image/>图片标签去掉蒙层(鼠标滑过)里面的“预览”二字 或者使用deep自定义样式不生效问题。

vue中 antdesginVue 图片标签去掉蒙层&#xff08;鼠标滑过&#xff09;里面的“预览”二字 或者使用deep自定义样式不生效问题。 看似去掉这两个字很简单&#xff0c; 其实搞了我一上午&#xff0c;是真的不好去掉呀&#xff0c;这里得吐槽下ant官方 。。。。什么deep呀都是不…

是面试官放水,还是公司实在是太缺人?这都没挂,字节跳动原来这么容易进...

字节是大企业&#xff0c;是不是很难进去啊&#xff1f;” “在字节跳动做软件测试&#xff0c;能得到很好的发展吗&#xff1f; 一进去就有12K&#xff0c;其实也没有想的那么难” 直到现在&#xff0c;心情都还是无比激动&#xff01; 本人211非科班&#xff0c;之前在华为和…

PostgreSQL 16 beta 重磅发布,OpenPie 再次引领中国贡献关键力量

PostgreSQL 一直被誉为全球最先进的开源关系数据库之一&#xff0c;在 DB-engines 排行榜上长期稳居前五。5 月 25 日&#xff0c;PostgreSQL 全球开发团队官方宣布&#xff0c;PostgreSQL 16 Beta 1 版本正式发布。 本次 PostgreSQL 新版本功能亮点众多&#xff0c;涉及多个模…

Docker环境java程序的时间设置

先上解决方案 java程序生成的时间、日志时间不对的解决方案&#xff1a; #在Dockerfile文件中加入以下两行代码&#xff0c;用于指定bild的镜像为东八区 ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezoneDoc…

生产检验配置和操作

1、概念 在SAP系统的生产过程中运行中间产品或成品的质量流程&#xff0c;例如每个班次的检查等&#xff0c;在生产订单发布时生成检验批&#xff0c;在系统中进行检验的检验类型为03&#xff0c;当有生产订单发布时&#xff0c;将在系统中自动创建检验批。 2、前台和后台配置…

【操作系统】03.内存管理

存储器的层级结构 程序的运行 现代操作系统使用的连接方式&#xff1a;运行时动态链接 对某些模块的链接推迟到程序执行时才进行 现代操作系统使用的装入方式&#xff1a;动态重定位 程序装入内存后&#xff0c;逻辑地址不会立即转换成物理地址&#xff0c;而是推迟到指令执行…

Energy-Based Learning for Scene Graph Generation

[2103.02221] Energy-Based Learning for Scene Graph Generation (arxiv.org) 目录 Abstarct 1 Introduction 2 Approach 2.1 Scene Graph Generation 2.2 Energy Based Modeling 2.3 Energy Models for Scene Graphs Generation 2.4 Energy Model Architectue 2.4.1…

PCB多层板为什么都是偶数层?奇数层不行吗?

PCB板有单面、双面和多层的&#xff0c;其中多层板的层数不限&#xff0c;目前已经有超过100层的PCB&#xff0c;而常见的多层PCB是四层和六层板。那为何大家会有“PCB多层板为什么都是偶数层&#xff1f;”这种疑问呢&#xff1f;相对来说&#xff0c;偶数层的PCB确实要多于奇…

朋友面试字节要求月薪25K,明显感觉他背了很多面试题...

最近有朋友去字节面试&#xff0c;面试前后进行了20天左右&#xff0c;包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说&#xff0c;80%的人都会栽在第一轮面试&#xff0c;要不是他面试前做足准备&#xff0c;估计都坚持不完后面几轮面试。 其实&#…

Unity WebGL打包配置本地服务器

第一步打包 1&#xff09;、先对Player Setting进行设置 2&#xff09;、设置打包的窗口大小 3&#xff09;、遇到异常以及压缩格式 第一个启用异常&#xff0c;指用户指定在运行时意外的代码行为&#xff08;通常被认为错误&#xff09;如何被处理&#xff0c;有三个选项…

进程(四)

进程四 2.21 管程2.22 死锁的概念2.23 死锁的处理策略2.23.1 破坏四个条件2.23.2 动态策略: 避免死锁2.23.3 死锁的检测和解除 2.21 管程 本小计知识概览 为什么要引入管程 管程的定义和基本特征 管程是一种特殊的软件模块&#xff0c;有这些部分组成: 局部于管程的共享数据结…

javaWeb ssh微博系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh微博系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开 发。开发环境为TOMCAT7.0,Myecli…

智慧校园建设主要包括哪些方面的内容?

在当今数字化的时代&#xff0c;越来越多的学校开始实施智慧校园计划&#xff0c;旨在为学生和教师提供更加高效、便捷的学习和教学环境。 那么&#xff0c;究竟什么是智慧校园呢&#xff1f;智慧校园建设主要包括哪些方面的内容&#xff1f;这篇就来详细讲一讲&#xff01; …

3年外包出来,华为、字节全都一面挂,我哭死.....

测试员可以先在外包积累经验&#xff0c;以后去大厂就很容易&#xff0c;基本不会被卡&#xff0c;事实果真如此吗&#xff1f;但是在我身上却是给了我很大一巴掌... 所谓今年今天履历只是不卡简历而已&#xff0c;如果面试答得稀烂&#xff0c;人家根本不会要你。况且要不是大…