搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
你好赵伟
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
科幻链接现实:加密艺术的诞生与发展
2
PyTorch环境搭建
3
基于Springboot汽车租赁租车系统设计与实现 开题报告参考
4
我花了一周读了Kafka Producer的源码_kafka-producer-network-thread
5
VS2013配置opencv教程(图文详解)
6
threejs CSS3DRenderer添加标签并设置朝向摄像机_threejs添加label
7
数据库--SqlServer详解_sqlserver database
8
时频分析方法总结:傅里叶级数及傅里叶变换、STFT 、小波变换、Wigner-Ville 分布
9
Unity 2D 游戏学习笔记(4)_unity tile
10
Jenkins+git+maven持续集成持续部署java项目(CI/CD)_git maven cicd
当前位置:
article
> 正文
HTML5的新特性--基础知识(3)_setcustomvalidity()
作者:你好赵伟 | 2024-02-18 21:55:39
赞
踩
setcustomvalidity()
1. setCustomValidity()
1.1 作用
自定义错误信息,一旦设置好了setCustomValidity(),当前表单是不允许被提交的,一旦提交,显示自定义错误信息
1.2 注意
setCustomValidity(""),一旦数据被修改正确后,需要通过setCustomValidity("")清空错误验证消息,使得表单允许被提交
2.checkValidity()
2.1作用
在不提交表单的情况下对表单或者表单元素进行验证。如果有问题的话,返回值为false;如果没有问题,返回值为true。
3. invalid事件
表单在提交过程中,检测到有无效域时,所激发的事件。该事件的本质是获取产生错误的那一组元素。
3.1如何使用
document.forms[0].addEventListener("invalid",form_invalid,true);
function form_invalid(e){
var elem=e.target;//得到产生错误的元素
//调整elem
}
4.ValidateState状态
表示指定的表单元素能够出现的所有的错误状态
4.1如何获取validateState
formElement.validity;
4.2错误状态值
1、判断是否通过所有的验证规则
formElement.validity.valid:通过所有的验证后,返回值为true,否则为false。与checkValidity()类似
2、判断是否为空
formElement.validity.valueMissing
注意:验证有required属性的控件,值是否为空。值为空,返回true。否则为false
3、判断数据是否违反类型
formElement.validity.typeMismatch
看输入的数据,与type属性是否相等,如果不符返回为true,否则返回false
4、判断数据是否违反pattern属性的约束
formElement.validity.patternMismatch
违反为true,否则为false
5、判断数据是否违反了定义的step,多数使用在<input type=number />类型上
formElement.validity.stepMismatch
违反为true,否则为false
6、输入的数据长度超出了maxlength所定义的长度
formElement.validity.tooLong
用于比较位数<input type="text" maxlength="15">
7、输入的值小于定义的min值
formElement.validity.rangeUnderflow
8、输入的值大于定义的max值
formElement.validity.rangeOverflow
用于比较大小<input type="number" max="100">
9、判断表单元素是否已经设置了自定义错误消息
a)formElement.validity.setCustomValidity("格式不正确")
formElement.validity.customError;返回值为true
b)formElement.validity.setCustomValidity("")
formElement.validity.customError;返回值为false
新课:
1、h5之前播放视频
<embed src="">标签
<object>标签 实现过程比较麻烦
如: <object>
<param />
<param />
<param />
</object>
2、h5中:使用video元素在文档中插入和播放视频,主要支持ogg和mp4格式
ogg:包含theora视频和vorbis音频解码器,并且得到火狐、谷歌、opera等的支持
mp4:采用H.264视频和AAC音频解码器,得到Safari、IE以及谷歌的支持,现在比较流行的视频格式
video元素:包含source元素,这些元素为浏览器提供了不同的视频源。浏览器会根据source标签,然后根据所支持的格式,选择播放的文件。
语法:
写法一:<video src="abc.mp4"></video> 这种方法用的比较多
写法二:
<video>
<source src="abc.swf" />
<source src="abc.mp4" />
</video>
例:
<video src="source/video.mp4" width="400px" height="300px" controls autoplay loop poster=“source/01.jpg”></video>
controls属性:显示下方的播放和暂停
autoplay属性:设置视频加载完成后自动播放
loop属性:设置这个属性时,浏览器会反复播放该视频
poster属性:该属性指定一个URL,在视频等待播放时显示一幅图像
preload属性:该属性可以设置三个值:
none:不缓存视频,为了减少不必要的流量
metadata:推荐浏览器抓取一些资源的信息
auto:默认值,要求浏览器尽可能快的下载视频
h5中视频或音频事件:
progress:用于更新媒体的下载进度,会周期性的触发
canplaythrough:当整个媒体可以顺利播放时,就会触发这个事件
canplay:不考虑整体状态,只要下载了一定的可放帧会触发这个事件
ended:媒体到达末尾时触发
pause:媒体暂停时触发
play:媒体开始播放时触发
error:媒体播放出现错误时触发
下面是h5中新增的媒体处理方法:
play():播放媒体文件
pause():暂停播放
load();加载媒体文件,动态应用程序可使用该方法提前加载
canPlayType(type):查看浏览器是否支持这种文件格式的媒体文件
canPlayType(type)中:
视频格式:如video/mp4,video/ogg
音频格式:如audio/mp3
例:<video id="media" width="700" src="source/video.mp4"></video>
$("media").canPlayType("video/mp4");
返回值:
1、probably:最大可能性能够播放该视频
2、maybe:可能播放该视频
3、"":空,播放不了
h5新增的针对视频元素处理属性如下:
paused:媒体处于暂停或未播放状态,这个值为true
ended:如果媒体已经播放结束,这个值为true
duration:返回媒体总时长,以秒为单位
currentTime:获取或设置媒体播放位置
编程实现视频播放器:
step1:实现视图界面
step2:完成播放/暂停的功能
play()
pause()
按钮文字切换
step3:
3.1 完成滚动条的自然滚动
currentTime:播放的时长
duration:视频总时长
maxim:600
size:待求
currentTime/duration =size/maxim
size=currentTime/duration*maxim
3.2 手动更改滚动条,并且更新视频播放位置
e.pageX - div.offsetLeft
e.offsetX;
音频audio元素:在互联网中,音频不如视频流行。在h5中,通过audio元素来表示音频文件。
检查音频格式:$("audio").canPlayType("audio/mp3")
audio元素支持以下属性
src:指定播放文件的url,可通过<source>
controls:激活浏览器提供的默认页面
autoplay:加载音频后自动播放
loop:设置该属性后,会反复播放该音频
preload
H5中的媒体API既支持视频也支持音频。
案例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> </title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<style type="text/css">
#player{
width:700px;
margin:20px auto;
padding:5px;
background:#999999;
border:1px solid #666666;
border-radius:5px;
}
#media{margin:0px;padding:0px;}
nav{margin:5px 0px;}
#buttons{float:left;}
button{
width:50px;
}
#bar{
float:left;
width:600px;
height:16px;
padding:2px;
border:1px solid #ccc;
background:#eee;
margin-left:25px;
}
#progress{
width:0px;
height:16px;
background:rgba(0,0,150,0.2);
}
</style>
<script>
var loop;
function $(id){
return document.getElementById(id);
}
/**初始化**/
function initial(){
//1、获取 id为btn的元素
var btn = $("btn");
var media = $("media"); //获取media
var bar = $("bar");
//2、绑定事件
btn.addEventListener("click",btn_click,false);
media.addEventListener("ended",media_ended,false);
bar.addEventListener("click",bar_click,false);
}
/**鼠标单击bar时的事件**/
function bar_click(e){
//console.log("距离:"+e.offsetX);
var progress = $("progress");
progress.style.width = e.offsetX + "px";//设置progress的宽度为鼠标点击的bar的位置宽度
var media = $("media");
//计算currentTime
var currentTime = e.offsetX / 600 * media.duration;
media.currentTime = currentTime;
}
/**视频播放结束后的事件*/
function media_ended(){
media.currentTime=0; //当视频结束后自动将当前事件设置为开始播放
$("btn").innerHTML = "Play";
clearInterval(loop);
$("progress").style.width = "0px";
}
/**更新滚动条的位置*/
function updateStatus(){
var media = $("media");
var progress = $("progress");
var size = media.currentTime / media.duration * 600;
$("progress").style.width = size + "px";
}
/**Play/Pause 按钮单击事件**/
function btn_click(){
//1、获取media
var media = $("media");
//2、根据不同状态切换视频 播放/暂停
if(!media.ended && !media.paused){
//正在播放中,需要暂停视频,按钮的文字变成Play
media.pause();
this.innerHTML = "Play";
clearInterval(loop);
}else{
//正在暂停(停止)中,播放视频,按钮的文字变成Pause
media.play();
loop = setInterval("updateStatus()",100);
this.innerHTML = "Pause";
}
}
window.addEventListener("load",initial,false);
</script>
</head>
<body>
<section id="player">
<video id="media" width="700" src="video.mp4" autoplay></video>
<nav>
<div id="buttons">
<button id="btn">Play</button>
</div>
<div id="bar">
<div id="progress"></div>
</div>
<div style="clear:both;"></div>
</nav>
</section>
</body>
</html>
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/你好赵伟/article/detail/110806?site
推荐阅读
article
大
模型
从入门到应用——
LangChain
:
记忆
(
Memory
)-[
基础知识
]_
langchain
m...
默认情况下,链(Chains)和代理(Agents)是无状态的,这意味着它们将每个传入的查询视为独立的(底层的LLM和聊...
赞
踩
article
MySQL
基础知识
(
五)之
数据
增删改...
当要插入的
数据
为日期/时间类型时,如果插入
数据
的格式不为“%Y-%m-%d”,需要通过 str_to_date(str,...
赞
踩
article
HTML5
+调用手机/
相册
上传
图片
及回显_h5 调用本地
相册
/相机
上传
图片
,
并回调...
前端:/*
上传
图片
的方法*/ function actionSheet(){ plus.nativeUI.actio...
赞
踩
article
HTML5
+ -
nativeUI
系统
原生界面管理_
plus
.
nativeui
.actionshee...
点击查看详情actionSheet:弹出
系统
选择按钮框
plus
.
nativeUI
.actionSheet(actions...
赞
踩
article
HTML5
+规范
:
nativeUI
(
管理系统
原生
界面)...
nativeUI
管理系统
原生
界面,可用于弹出系统
原生
提示对话框窗口、时间日期选择对话框、等待对话框等。1、方法1.1、a...
赞
踩
article
[
HTML
]Web
前端开发
技术22(
HTML
5
、
CSS3
、
JavaScript
)
HTML
5
基础与...
前言
CSS3
转换transform 属性 2.
CSS3
3D 转换
CSS3
过渡transition 属性Transi...
赞
踩
article
突破编程
_
C++
_
面试
(
基础知识
(14))...
c++
面试
题:重载操作符突破编程
_
C++
_
面试
(
基础知识
(14)) ...
赞
踩
article
html5
webso
c
ket与
c
,打通B/S与C/S !让
HTML5
Web
So
c
ket
与.NET...
随着
HTML5
Web
So
c
ket
技术的日益成熟与普及,我们可以借助Web
So
c
ket
来更加方便地打通BS与CS -- 因...
赞
踩
article
Html5
实现灯笼
绘制
...
最近在学习
Html5
,就用JavaScript在Canvas试着
绘制
了一个灯笼,并作了简要的说明。具体
绘制
思路在页面上有...
赞
踩
article
HTML5
canvas
绘图
基本使用方法_
html5
缩放
绘图
...
本文介绍了
html5
中
canvas
标签的基本使用方法,详细讲解了其重要的属性和方法_
html5
缩放
绘图
html5
缩放绘...
赞
踩
article
MySQL
基础知识
(
九)之
视图
...
视图
是一张并不存储数据的虚拟表,其本质是根据 SQL 语句动态查询数据库中的数据。数据库中只存放了
视图
的定义,通过 SQ...
赞
踩
article
HTML5
回到
顶部
...
图片:html
[详细]
-->
赞
踩
article
[HTML]
html
5
的 setCustomValidity_
html
form
button
o...
如果text中没有输入内容,点击提交按钮,会提示“请填写此字段。”(1)submit按钮的click事件,若取消默认事件...
赞
踩
article
高级特效开发——
知识点
梳理
_
bootstrap5
setcustomvalidity
...
高级特效开发——
知识点
梳理
_
bootstrap5
setcustomvalidity
bootstrap5
setcust...
赞
踩
article
修改
bootstrap
系统提示语
_
bootstrap
5
setcustomvalidity
...
oninvalid="setCustomValidity('请输入元数据名称')" oninput="setCustom...
赞
踩
article
Ja
va
Script学习笔记(二):
登陆
验证
(简单、表单),约束
验证
DOM 方法(checkVal...
登陆
信息
验证
当你在某些平台进行
登陆
或者注册操作是都会有信息的一个
验证
,没有填、漏填、错填信息等操作页面都会有一个信息的...
赞
踩
article
html5
重置
,
javascript
– 如何在“
setCustomValidity
(”…“)之后清...
I confirmed Opera 11.50 worked as your expectation
,
but Fire...
赞
踩
article
html5
js 正则校验,js
浏览器
html5
表单
验证
...
html5
表单
添加了很多类型的
表单
,而且还自带
验证
的功能。在移动端,手机等设备能够根据不同的input类型弹出不同的键盘...
赞
踩
article
JavaScript
、
Html5
——
表单
验证
相关_采用
pattern
属性
实现
表单
验证
...
前端
表单
验证
相关_采用
pattern
属性
实现
表单
验证
采用
pattern
属性
实现
表单
验证
目录 ...
赞
踩
article
h5 php
表单
验证
,[译]
HTML5
结合‘
pattern
’自定义
表单
校验
...
下面这份指南将会探索html5的‘
pattern
’属性,这个属性可以帮助我们定制我们自己的
表单
验证
。
验证
(Validat...
赞
踩
相关标签
人工智能
深度学习
langchain
记忆
大模型
mysql
数据库
java
html5
消息框
时间选择
日期选择
html
前端
计算机学习
javascript
css3
c++
面试
html5 websocket与c
ViewUI
canvas