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

news/2024/10/19 15:34:56/

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

前言

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

dom操作

<body><div id="i1">这是一个div</div><script>// dom = document obj modelvar 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是字符串操作比较麻烦//   所以后来出现了一个新语法classListconsole.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.nextElementSiblingconsole.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.innerHTMLconsole.log(spanhtml)//把字符串的数字取出var s = parseInt(spanhtml)console.log(s)setInterval(function () {s = s - 1;//将秒赋值给spanspanel.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 = 0imgEl.src = imgs[i]// 给选中的点一个active属性pspans[i].className = 'active'setInterval(function () {// 设置前一个红色的的为白色pspans[i].className = '' // i = 2i++;if (i == imgs.length) {i = 0}imgEl.src = imgs[i] // 1 = 3pspans[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.ppmy.cn/news/107122.html

相关文章

跨模态检索综述

跨模态检索问题的描述 图1&#xff1a;跨 模 态 检 索 的 形 式 。 跨 模 态 检索 允 许 查 询 样 例 和 候 选 对 象 属 于 不 同 模 态 的 数 据 &#xff0c; 比 如 图 像搜索文本 &#xff0c; 文 本 搜 索 视 频 等 &#xff0c; 这 种 灵 活 多 变 的 检索方 式 能 够 满…

Three.js——七、Group层级模型

关于Group Group 层级模型 通过 THREE.Group 类创建一个组对象 group,然后通过 add 方法把网格模型 mesh1、mesh2 作为设置为组对象 group 的子对象&#xff0c;然后在通过执行 scene.add(group)把组对象 group 作为场景对象的 scene 的子对象。也就是说场景对象是 scene 是 …

Golang中的协程(goroutine)

目录 进程 线程 并发 并行 协程(goroutine) 使用sync.WaitGroup等待协程执行完毕 多协程和多线程 进程 进程就是程序在操作系统中的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;进程是一个动态概念&#xff0c;是程序在执行过程中分配和管理…

RSA加密 多线程读写不安全

转自&#xff1a;&#xff08;一场开源 RSA 库引发的“血案”&#xff09; 导读 RSA 加密算法是一种非对称加密算法&#xff0c;该算法极为可靠&#xff0c;在现有技术条件下&#xff0c;很难破解&#xff0c;因此在软件开发中被广泛使用。你不必担心&#xff0c;本文不会介绍…

C++11 auto类型推导

1.类型推导 C11引入了auto 和 decltype 关键字实现类型推导&#xff0c;通过这两个关键字不仅能方便地获取复杂的类型&#xff0c;而且还能简化书写&#xff0c;提高编码效率。 auto 类型推导的语法和规则 在之前的 C 版本中&#xff0c;auto 关键字用来指明变量的存储类型…

osgFBO(16),透视投影下的qedl

前面介绍了正交投影下的qedl&#xff0c;实际上&#xff0c;还有透视模式&#xff0c;根据摄像机位置的移动&#xff0c;远近切面也在不断变化&#xff0c;所以需要深度补偿。 即 float fixDepth(float depth) { if (PerspectiveMode 1) { //‘1/z’ depth-buffer transforma…

C4d渲染农场的定义、应用领域和未来发展趋势

Cinema 4D&#xff08;C4D&#xff09;是一款常用于3D动画、建模和渲染的软件&#xff0c;由Maxon Computer开发。随着CG行业的不断发展和应用场景的多样化&#xff0c;C4D渲染农场成为了CG制作中不可或缺的一环。本文将深入介绍C4D渲染农场的概念、特点、应用以及未来发展趋势…

实名认证API

俗话说&#xff0c;质量赢信誉&#xff0c;信誉得效益。长期以来&#xff0c;翔云人工智能开放平台始终秉承质量第一&#xff0c;服务至上的精神&#xff0c;为广大用户提供优质、新颖的API产品。在人工智能的发展道路上&#xff0c;翔云平台不断的进行技术提升&#xff0c;以开…