IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> HTML5 -> 正文阅读

[JavaScript知识库]HTML5

新增属性

  1. palceholder 占位符

  2. input中的type属性新增的值:都有兼容性的问题

  3. contenteditable:元素是否可编写 尽量不要嵌套使用 ie都能使用

  4. draggable :是否可拖拽

    1. 被拖拽物体:

      1. ondragstart 开始拖拽

      2. ondrag 进行中

      3. ondragend 拖拽结束

    2. 目标区域

      1. ondragenter 进入目标区域

      2. ondragover 在目标区域拖拽进行中 在over中阻止默认事件(ondragleave) 让ondrop事件执行

      3. ondragleave 离开目标区域

      4. ondrop 放下(松开鼠标)

    3. 拖拽时鼠标样式

      1. ondragstart中改变样式 e.dataTransfer.effectAllowed = 'link';

      2. ondrop中改变样式 e.dataTransfer.dropEffect = 'link';

新增的表单元素

  1. ??

  2. <progress>:进度条

  3. <output>:接受计算后的结果

新增的表单属性

  1. autofocus:自动获取焦点 false/true 只能对一标签进行聚焦

  2. mulitiple : 可以输入多个值 false/true

  3. required:当前元素必须填写内容

语义化标签

一个网站全全部用div可以实现

在H5中又添加了新的语义化标签

  1. header 头部

  2. footer 底部

  3. nav 导航条

  4. aside 侧边栏

  5. article 文章

  6. section 段落

多媒体元素

  • flash为什么会被HTML5替代?

  1. 音频视频

  2. 绘图 线上画板

  3. echarts two.js three.js 数据可视化

  4. localStorage sessionStorage 客户端本地存储

视频video

?

file:///E:/yechen/%E8%B5%84%E6%96%99/0903/%E8%A7%86%E9%A2%91%E8%B5%84%E6%BA%90?lastModify=1633534148

file:///E:/yechen/%E8%B5%84%E6%96%99/0903/%E8%A7%86%E9%A2%91%E8%B5%84%E6%BA%90?lastModify=1633534153

行盒 具有宽高?

视频格式

 ? ? ? ? WebM ? ? OGG ? ?  MP4

IE9+ NO NO YES chrome6+ yes yes yes firefox3.6+ yes yes no safari5+ no no yes oera10.6+ yes yes no

使用video最好提供至少两种视频格式的文件资源:OGG MP4

video的属性

  • controls 视频播放控件

  • autoplay 设置自动播放 浏览器禁止视频自动播放 ,此属性是无效的

    1. 设置视频静音:muted ="true"

    2. 使用js调用play() 让视频播放

  • currenTime:获取/设置当前播放时间点 单位s

  • duration:获取影片总时长

  • ended:判定视频是否播放结束 true/false

  • loop:是否让视频循环播放

  • muted:设置/获取视频是否静音

  • volume: 设置/获取视频音量,0-1 默认为1 在视频静音状态下 调节视频音量无效

自定义播放

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="reset.css">
    <link rel="stylesheet"
        href="https://at.alicdn.com/t/font_2790010_9pbydpo91y.css?spm=a313x.7781069.1998910419.67&file=font_2790010_9pbydpo91y.css">
    <link rel="stylesheet" href="1.css">
    <script src="1.js" async></script>
</head>

<body>
    <div class="container">
        <video src="birds.mp4"></video>
        <div class="menu clearfix">
            <div class="on">
                <span class="iconfont icon-Controls-71"></span>
                <span class="iconfont icon-zanting"></span>
            </div>
            <div class="time">00:00/00:00</div>
            <div class="quick">
                <ul class="quickly">
                    <li>0.5</li>
                    <li>1.0</li>
                    <li>1.25</li>
                    <li>1.5</li>
                    <li>2.0</li>
                </ul>
                <div class="quick-text">速度</div>
            </div>
            <!-- 全屏 -->
            <div class="all">
                <span class="iconfont icon-quanping"></span>
            </div>
            <!-- 进度条 -->
            <div class="progress">
                <div class="line"></div>
                <div class="ball"></div>
            </div>
        </div>
    </div>
    
    
</body>

</html>

css部分


.container{
    width: 900px;
    height: 500px;
    position: relative;

}
.container video{
    width: 900px;
    height: 500px;
    object-fit: cover;
}
.menu{
    width: 900px;
    height: 50px;
    background-color: rgb(0, 0, 0,0.35);
    position: absolute;
    bottom: 0;
    left: 0;
}
.on{
    width: 50px;
    height: 50px;
    font-size: 32px;
    line-height: 50px;
    text-align: center;
    margin-left: 20px;
    float: left;
}
.iconfont{
    font-size: 32px;
}
.icon-Controls-71{
    display: block;
}
.icon-zanting{
    display: none;
}
.time{
    width: 100px;
    height: 40px;
    line-height: 40px;
    margin: 5px 30px;
    float: left;
}
.quick{
    width: 50px;
    height: 200px;
    position: absolute;
    bottom: 0;
    right: 100px;
    color: white;
}
.quick-text{
    width: 50px;
    height: 50px;
    line-height: 50px;
    position: absolute;
    bottom: 0;
    left: 0;
    text-align: center;
}
.quickly{
    display: none;
}
.quickly li{
    width: 50px;
    height: 30px;
    text-align: center;
}
.quickly li:hover{
    color: red;
}
.quick:hover .quickly{
    display: block;
}
.all{
    width: 100px;
    height: 50px;
    float: right;
    text-align: center;
    line-height: 50px;
}
.progress{
    width: 900px;
    height: 20px;
    position: absolute;
    bottom: 40px;
    left: 0;
}
.line{
    width: 1px;
    height: 5px;
    background-color: rgb(20, 137, 204);
    position: absolute;
    left: 0;
    top: 5px;
}
.ball{
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: white;
    position: absolute;
    bottom: 8px;
    left: -6px;
}

?js部分

var video = document.getElementsByTagName('video')[0];
var container = document.getElementsByClassName('container')[0];
var memu = document.getElementsByClassName('menu')[0];
var on = document.getElementsByClassName('on')[0];
var controls = document.getElementsByTagName('span')[0]
var zanting = document.getElementsByTagName('span')[1]
var quanping = document.getElementsByTagName('span')[2]
var line = document.getElementsByClassName('line')[0];
var ball = document.getElementsByClassName('ball')[0];
var progress = document.getElementsByClassName('progress')[0]
var time = document.getElementsByClassName('time')[0];
// var total = video.duration;

var value = null;
function add(a){
    if(a<10){
        a = '0' + a
    }
    return a;

}


on.onclick = function () {
    if (zanting.style.display === 'block') {
        zanting.style.display = 'none'
        controls.style.display = 'block'
        video.pause()

    } else {
        zanting.style.display = 'block'
        controls.style.display = 'none'

        video.play()
    }

}


// // 进度条
// progress.onclick = function (e) {
//     line.style.width = e.offsetX + 'px'
//     ball.style.left = e.offsetX - 6 + 'px'
// }
// 时间
var  timer = setInterval(function(){
    // 更改整个div内容
    // 获取播放点  和 总时长
    var playTime = video.currentTime;
    var total = video.duration;
    // 将两个数据单位为s 转换成时间格式
    // 60/60  -> 分钟
    // 60%60  -> 剩余的秒
    // 小于10的数据 补0
    if(video.ended){
        zanting.style.display = 'none'
        controls.style.display = 'block'
    }
    
    var min1 = parseInt(playTime/60)
    var sec1 = parseInt(playTime%60)
    var min2 = parseInt(total/60)
    var sec2 = parseInt(total%60)
    min1 = add(min1)
    sec1 = add(sec1)
    min2 = add(min2)
    sec2 = add(sec2)
    // console.log(min1,min2,sec1,sec2);
    time.innerHTML= min1 + ':' + sec1 +'/' + min2 + ':' + sec2;
    
    var t = playTime/total * 900
    line.style.width = t + 'px';
    ball.style.left = t + 'px';
    

},1/value)
// 进度条
progress.onclick = function (e) {
    video.currentTime = e.offsetX/900 * video.duration
    line.style.width = e.offsetX + 'px'
    ball.style.left = e.offsetX + 'px'
    video.play()
}

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-07 13:45:45  更:2021-10-07 13:46:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 23:35:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码