JS api基础初学

news/发布时间2024/5/14 23:18:32

轮播图随机版

需求:当我们刷新页面,页面中的轮播图会显示不同图片以及样式

分析:①:准备一个数组对象,里面包含详细信息(素材包含)

②:随机选择一个数字,选出数组对应的对象,更换图片,底部盒子背景颜色,以及文字内容

③:利用这个随机数字,让小圆点添加高亮的类(addClass)利用css结构伪类选择器

CSS部分不予显示
<script>
//1.初始数据 
const sliderData=[
{url:'./images/slider02.jpg',title:'开启剑与雪的黑暗传说!',color:'rgb(43,35,26)'},
{url:'./images/slider03.jpg',title:'真正的jo厨出现了!',color:'rgb(36,31,33)'},
{url:'./images/slider05.jpg',title:'快来分享你的寒假日常吧',color:'rgb(67,90,92)'},
{url:'./images/slider06.jpg',title:'哔哩哔哩小年YEAH',color:'rgb(166, 131,143)'},
{url:'./images/slider07.jpg',title:'一站式解决你的电脑配置问题!!!',color:'rgb(53,29,25)'},
{ur1:'./images/slider08.jpg',title:'谁不想和小猫咪贴贴呢!',color:'rgb(99,72,114)'},
]
//1.需要一个随机数
const random = parseInt(Math.random()*sliderData.length)
//console.Log(sliderDatarandom)
//2把对应的数据染到标签里面
//2.1获取图片const img=document.querySelector('.slider-wrapper img')
//2.2,修改图片路径=对象.urL
img.src = sliderData[random].url
// 3.把p里面的文字内容更换
// 3.1获取p
const p = document.querySelector('.slider-footer p')
// 3.2修改p
p.innerHTML = sliderData[random].title
// 4.修改背景颜色
const footer = document.querySelector('.slider-footer')
footer.style.backgroundcolor =slideerData[random].color//行内样式表是高于内部样式表,所以可以后来更改来覆盖以前的style=""
// 5.小圆点
const li = document.querySelector(`.slider-indicator li:nth-child(${random +1})`)
//让当前这个小It添加active这个类
li.classList.add('active')
</script>
</body>

获取设置表单的值 

  • 表单很多情况,也需要修改属性,比如点击眼睛,可以看到密码,本质是把表单类型变为文本框
  • 正常的有属性有取值的跟其他的标签属性没有任何区别

获取:DOM对象属性名
设置:DOM对象.属性名=新值

表单.value='用户名'
表单.type = 'password'
复选框

表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示如果为true代表添加了该属性如果是false代表移
除了该属性
比如:disabled、checked、selected

<body>
<input type="checkbox" name="" id="" checked>
<buttom disabled>点击</buttom>//这样就禁止使用了
<script>
//1获取元素
// const uname = document.querySeLeetor(^nputr)
//2.获取值获取衰单里面的值用的value
// console. Log(uname.vaLue)//电脑
// consote. Log(uname.innerHTML ) innertHTML 得不到表单的内察
// 3.设置表单的值
// uname.vaLue ="我要买电脑"
// console.Log(uname.type)
// uname.type = 'password'//1获取
const ipt = document.querySelector('input')
// consoLe. Log(ipt.checked) // faLse 只接受布尔值
ipt.checked = true
// ipt. checked = 'true' //会选中,不提倡 有隐式转换
//获取
const button = document.querySelector('button')
// consoLe. Log(buttor).disabLed) // 默认false 不禁用
button.disabled = true // 禁用按钮  </script>
</body>

自定义属性

标准属性:标签天生自带的属性比如class id title等,可以直接使用点语法操作比如:disabled, checked.selected
•自定义属性:
>在html5中推出来了专门的data-自定义属性
>在标签上一律以data-开头
>在DOM对象上一律以dataset对象方式获取

<body>
<div data-id="1" data-spm="不知道">1</div>
<div data-id="2">2</div>
<div data-id="3">3</div>
<div data-id="4">4</div>
<div data-id="5">5</div>
<script>
const one = document.querySelector('div')
console.log(one.dataset)//这时右侧显示:DOMStringMap{id:'1',spm:'不知道;}id:'1',spm:'不知道';
console.log(one.dataset.id)//1
console.log(one.dataset.spm)//不知道
</script>
</body>

定时器间歇函数

网页的倒计时

setInterval(函数,间隔时间)
//每隔一段时间调用函数
//间隔单位是ms
<script>
//setInterval(函数,间隔时间)
setInterval(function (
console.log('一秒执行一次')
},1000)
function fn() {
console.log('一秒执行一次')
}
// setInterval(函数名,间隔时间)  函数名不要加小括号
let n = setlnterval(fn, 1000)
// setIntervaL('fn()', 1000)
console.log(n)
//关闭定时器 定时器返回的是一个id数值
clearInterval(n)Let m = setlntervaL (function () {consoLe.Log(ll)}, 2000)consoLe.Log(m)// const num = 10
// num = 10
// consoLe.Log(num)
</script>

阅读注册 协议

<body>
<textarea name="", id="" cols="30" rows="10">
用户注册协议
欢迎注册成为京东用户!在您注册过程中,您需要完成我们的注册流程并通:
【请您注慧】如果您不同意以下仍议全部或任何条款约定,请您停止注册
</textarea>
<br>
<button class="btn" disabled〉我己经阅读用户协议(5)</button>
<script>
// 1.获取元素
const btn = document.querySelector('.btn')
// consoLe. Log(btn. innerHTML) butto按钮特殊用trmerHTML
// 2.倒计时
let i = 5
// 2.1开启定时器
let n = setInterval(function () {
i--
btn. innerHTML = `我己经阅读用户协议(${i})`
if (i === 0) {
clearInterval(n) // 关闭定时器
//\定时器停了,我就可以开按钮
btn.disabled = false
btn.innerHTML ='同意'
}
}, 1000)
</script>

轮播图定时版

<div class= "slider">
<div class="slider-wrapper">
<img src=“・/images/slider0l.jpg” alt="" />
</div>
<div class="slider-footer" >
〈p>对人类来说会不会太超前了? </p>
<ul class="slider-indicator">
<li class="active"></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<div class="toggle">
<button class="prev">&lt;</button>
<button class="next">&gt;</button>
</div>
</div>
</div>//
<style>
* {
box-sizing: border-box;
}
.slider { 
width: 560px;
height: 400px;
overflow: hidden;
}
.slider-wrapper {
width: 100%;
height: 320px;
}
.slider-wrapper img {
width: 100%;
height: 100%;
display: block;
}//
.slider-footer {
height: 80px;
background-color:rgb(100J 67, 68);
padding: 12px 12px 0 12px;
position: relative;
}
.slider-footer .toggle {
position: absolute;
right: 0;
top: 12px;
display: flex;
}
.slider-footer .toggle button {
margin-right: 12px;
width: 28px;
height: 28px;
appearance: none;
border: none;
background:rgba(255, 255, 255, 0.1);
color: #fff;//
border-radius: 4px;
cursor: pointer;
}
.slider-footer.toggle button:hover {
background:rgba(255, 255, 255, 0.2);
}//
.slider-footer p {
margin: 0;
color:#fff;
font-size: 18px;
margin-bottom: 10px;
}
.slider-indicator {
margin: 0;
padding: 0;
list-style: none;
display: flex;
align-items: center;
}//
slider-indicator li {
width: 8px;
height: 8px;
margin: 4px;
border-radius: 50%;
background:・#fff;
opacity: 0.4;
cursor: pointer;
}
.slider-indicator li.active {
width: 12px;
height: 12px;
opacity: 1;
}
</style>
<script>
//1.初始数据
const sliderData=[
{url:'./images/slider02.jpg',title:'开启剑与雪的黑暗传说!',color:'rgb(43,35,26)'},
{url:'./images/slider03.jpg',title:'真正的jo厨出现了!',color:'rgb(36,31,33)'},
{url:'./images/slider05.jpg',title:'快来分享你的寒假日常吧',color:'rgb(67,90,92)'},
{url:'./images/slider06.jpg',title:'哔哩哔哩小年YEAH',color:'rgb(166, 131,143)'},
{url:'./images/slider07.jpg',title:'一站式解决你的电脑配置问题!!!',color:'rgb(53,29,25)'},
{ur1:'./images/slider08.jpg',title:'谁不想和小猫咪贴贴呢!',color:'rgb(99,72,114)'},
]
//1.获取元素
const img = document-querySelector('.slider-wrapper img')
const p = document.querySelector('.slider-footer p')
let i = 0
//2.开启定时器set Interval(function () {i++
if(i>=sliderData.length){i=0} 
// console.log(sliderData[i])
//更换图片路泾
img.src = sliderData[i].url
//把字写到p里面
p.innerHTML = sliderData[i].title
//小圆点
//先除掉以前的active
document.querySelector('.slider-indicator.active']
//只让li添active
document.querySelector(`.slider-indicator li:nth-child(${i+1})`).classList.add('active')
}, 1000)*/
</script>

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

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

Java项目:30 基于SpringBoot自习室座位预定系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 功能设计 管理员 1、用户管理 管理员可以新增、删除管理员 管理员可以删除学生 2、自习室管理 管理员可以新增自习室、设置自习室的座位数量、开…

lnmp安装

一、安装lnmp 第一步&#xff1a;将MySQL 、论坛的安装包拖进shell 环境准备 lnmp 需要 安装 nginx mysql php 软件 第二步&#xff1a;解压nginx&#xff0c;再安装依赖包&#xff08;注意装在源配置文件下&#xff09;&#xff0c;关闭防火墙 systemctl disable --now fir…

map和set的简单介绍

由于博主的能力有限&#xff0c;所以为了方便大家对于map和set的学习&#xff0c;我放一个官方的map和set的链接供大家参考&#xff1a; https://cplusplus.com/ 在初阶阶段&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque&#x…

Redis 在 Linux 系统下安装部署的两种方式详细说明

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 Redis安装和配置 1、首先在官网下载好redis-6.0.9.tar.gzhttp://redis.io/ 或者使用 wget 命令下载&#xff1a;wget http://download.redis.io/releases/redis-6.0.9.tar.gz 2、下载使用上传到阿里…

【小沐学QT】QT学习之信号槽使用

文章目录 1、简介2、代码实现2.1 界面菜单“转到槽”方法2.2 界面信号槽编辑器方法2.3 QT4.0的绑定方法2.4 QT5.0之后的绑定方法2.5 C11的方法2.6 lamda表达式方法2.7 QSignalMapper方法 结语 1、简介 在GUI编程中&#xff0c;当我们更改一个小部件时&#xff0c;我们通常希望…

[SpringDataMongodb开发游戏服务器实战]

背景&#xff1a; xdb其实足够完美了&#xff0c;现在回想一下&#xff0c;觉得有点复杂&#xff0c;我们不应该绑定语言&#xff0c;最好有自己的架构思路。 七号堡垒作为成功的商业项目&#xff0c;告诉我&#xff1a;其实数据是多读少写的&#xff0c;有修改的时候直接改库也…

4核8g服务器能支持多少人访问?

腾讯云4核8G服务器支持多少人在线访问&#xff1f;支持25人同时访问。实际上程序效率不同支持人数在线人数不同&#xff0c;公网带宽也是影响4核8G服务器并发数的一大因素&#xff0c;假设公网带宽太小&#xff0c;流量直接卡在入口&#xff0c;4核8G配置的CPU内存也会造成计算…

前端 基础标签

!回车在vscode中可以生成简单的代码模板 注释 ctrl/ <h1></h1> 类似的数字越大字体越小 <p></p>表示一个段落 注:这里的回车会被解析成空格 <br> 单标签 表示换行 格式化标签 加粗标签 <strong></strong> <b></b> …

常用对象的遍历方法

var obj [{name: 1111,account: {01: { name: 1.1 },02: { name: 1.2 },03: { name: 1.3 },04: { name: 1.4 },05: { name: 1.5 },}} ]var nowObj obj[0].account;1、for…in 任意顺序遍历对象所有的可枚举属性&#xff08;包括对象自身的和继承的可枚举属性&#xff0c;不含…

前端-Vue3递归组件自定义Tree

需求 PS&#xff1a;写在前面&#xff0c;需求想要一个Tree 形结构展示当前的组织机构&#xff0c;最末层节点可以选择&#xff0c;层级明确。第一选择网上npm官网或者github 找找成型的东西 element-ui Tree 没有组织结构线js-tree 好看&#xff0c;但是适配Vue3 有点费劲&a…

Appium手机Android自动化

目录 介绍 什么是APPium&#xff1f; APPium的特点 环境准备 adb(android调试桥)常用命令 appium图形化简单使用 连接手机模拟器 使用appium桌面端应用程序 ​编辑 整合java代码测试 环境准备 引入所需依赖 书写代码简单启动 ​编辑 Appium元素定位 id定位 介…

【postgresql】数据表id自增与python sqlachemy结合实例

需求&#xff1a; postgresql实现一个建表语句&#xff0c;表名&#xff1a;student,字段id,name,age&#xff0c; 要求&#xff1a;每次添加一个数据id会自动增加1 在PostgreSQL中&#xff0c;您可以使用SERIAL或BIGSERIAL数据类型来自动生成主键ID。以下是一个创建名为stude…

Ubuntu系统下DPDK环境搭建

目录 一.虚拟机配置1.添加一个网卡(桥接模式)2.修改网卡类型3.修改网卡名称4.重启虚拟机5.查看网卡信息6.dpdk配置内存巨型页 三 DPDK源代码下载和编译1.下载源代码2.解压源代码3.安装编译环境4.编译5.设置dpdk的环境变量6.禁止多队列网卡7.加载igb_uio模块8.网卡绑定9.验证测试…

数据分类分级场景建设思路

数据分类分级是数据安全治理实践过程中的关键场景&#xff0c;是数据安全工作的桥头堡和必选题。本指南结合行业实践&#xff0c;提出如下图 所示的七步走建设思路&#xff0c;可供刚开展数据分类分级工作的组织参考。 来源&#xff1a;中国信息通信研究院 数据分类分级“七步…

PyTorch概述(七)---Optim

torch.optim是一个实现多种优化算法的包;很多常用的方法已经被支持;接口丰富;容易整合更为复杂的算法; 如何使用一个优化器 为了使用torch.optim包功能;用户必须构建一个优化器对象;该优化器将保持当前的参数状态且基于计算的梯度更新参数; 构建优化器 要构建一个优化器;必…

SD-WAN技术:优化国内外服务器访问的关键

在全球化的商业环境中&#xff0c;企业经常需要在国内访问国外的服务器。然而&#xff0c;由于地理位置和网络架构的限制&#xff0c;这种跨国访问往往会遇到速度慢、延迟高等问题。SD-WAN&#xff08;软件定义广域网&#xff09;技术的兴起&#xff0c;为企业提供了一种新的解…

【MATLAB源码-第148期】基于matlab的BP神经网络2/4ASK,2/4FSK,2/4PSK信号识别仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1. 调制技术基础 调制技术是通信技术中的基础&#xff0c;它允许数据通过无线电波或其他形式的信号进行传输。调制可以根据信号的振幅、频率或相位的变化来进行&#xff0c;分别对应于ASK、FSK和PSK。 1.1 2ASK与4ASK 振幅…

技术派数据库表自动初始化(学习)

不需要在db中手动创建或者导入相关的schema、data&#xff0c;项目启动自动创建对应的表&#xff0c;并初始化。实现该过程。 Liquibase数据库版本管理 依赖配置 在paicoding-web模块中&#xff0c;pom.xml 文件中添加 <dependency><groupId>org.liquibase</g…

音视频数字化(数字与模拟-电视)

上一篇文章【音视频数字化(数字与模拟-音频广播)】谈了音频的广播,这次我们聊电视系统,这是音频+视频的采集、传输、接收系统,相对比较复杂。 音频系统的广播是将声音转为电信号,再调制后发射出去,利用“共振”原理,收音机接收后解调,将音频信号还原再推动扬声器,我…

力扣链表篇

以下刷题思路来自代码随想录以及官方题解 文章目录 203.移除链表元素707.设计链表206.反转链表24.两两交换链表中的节点19.删除链表的倒数第N个节点面试题 02.07. 链表相交142.环形链表II 203.移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链…
推荐文章