js基础-Video/Audio

最新推荐文章于 2025-08-06 14:59:59 发布
front_end_fan 最新推荐文章于 2025-08-06 14:59:59 发布
阅读量1.1k 收藏 1
点赞数 1
CC 4.0 BY-SA版权
分类专栏: javascript 文章标签: javascript html5 多媒体 视频 音频
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.youkuaiyun.com/qq_39198420/article/details/78059333
javascript 专栏收录该内容
74 篇文章
订阅专栏
本文详细介绍了HTML5中<audio>和<video>元素的使用方法,包括如何在网页中嵌入音频和视频文件,以及如何利用JavaScript进行更高级的操作。此外,还列举了这些元素支持的各种属性和事件。

多媒体(video和audio)

一、音频(audio)和视频(video)

在HTML5中引入了<audio>和<video>元素,用来在HTML文档中嵌入音频和视频:

<audio src="m.mp3"/> 
<video src="m.mp4" width=320 height=400 />

由于不同的浏览器对标准音频和视频的编解码支持上并不一致,所以通常需要使用<source>元素来为指定不同格式的媒体源:

<audio id="music"> 
<source src="m.mp3" type="audio/mpeg">
<source src="m.ogg" type="audio/ogg;codec='vorbis'">
</audio>

<source>元素没有任何内容:没有闭合的</source>标签,也需要使用“/>”来结束它们。

我们可以在<audio>和</audio>(或<video>和</video>)标签之间插入文本内容,如果浏览器支持<audio>和<video>元素,将不会渲染文本内容;而如果浏览器不支持时,则会将它们渲染出来。

<audio id="music"> 
<source src="m.mp3" type="audio/mpeg">
<source src="m.ogg" type="audio/ogg;codec='vorbis'">
您的浏览器不支持audio标签。
</audio>

1.1 HTML中媒体的属性

(1)视频(<video>)

autoplay    autoplay    如果出现该属性,则视频在就绪后马上播放。 
controls controls 如果出现该属性,则向用户显示控件,比如播放按钮。
height pixels 设置视频播放器的高度。
width pixels 设置视频播放器的宽度。
loop loop 如果出现该属性,则循环播放。
muted muted 如果出现该属性,视频的音频输出为静音。
poster URL 规定视频正在下载时显示的图像,直到用户点击播放按钮。 preload auto/metadata/none 如果出现该属性,则视频在页面加载时进行加载,并预备播放。如果使用 "autoplay",则忽略该属性。
src URL 要播放的视频的 URL。

(2)音频(<audio>)

autoplay    autoplay    如果出现该属性,则视频在就绪后马上播放。 
controls controls 如果出现该属性,则向用户显示控件,比如播放按钮。
loop loop 如果出现该属性,则当媒介文件完成播放后再次开始播放。
muted muted 如果出现该属性,视频的音频输出为静音。
preload auto/metadata/none 如果出现该属性,则视频在页面加载时进行加载,并预备播放。如果使用 "autoplay",则忽略该属性。
src URL 要播放的视频的 URL。

1.2 用JavaScript操作音频和视频

audio可以通过new创建Audio对象

var music = new Audio('m.mp3'); 

还可以通过标签获取<audio>或<video>元素,即获得HTMLVideoElement和HTMLAudioElement对象:

var music = document.getElementById('music'); 

检测浏览器是否支持

var hasAudio = !!(music.canPlayType); //通过!!运算符将结果转换成布尔值 

(1)属性

只读属性:

duration   整个媒体文件的播放时长,以秒为单位。如果无法获取时长,则返回NaN 
paused 如果媒体文件当前被暂停,则返回true。如果还未开始播放,默认返回true
ended 如果媒体文件已经播放完毕,则返回true
startTime 返回最早的播放起始时间,一般是0.0,除非是缓冲过的媒体文件,并且一部分内容已经不在缓冲区
error 在发生了错误的情况下返回的错误代码
currentSrc 以字符串形式返回当前正在播放或已加载的文件。对应于浏览器在source元素中选择的文件
seeking 如果播放器正在跳到一个新的播放点,那seeking的值为true。
initialTime 指定了媒体的开始时间,单位为秒

可读写属性:

autoplay     将媒体文件设置为创建后自动播放,或者查询是否已设置为autoplay 
loop 返回是否循环播放,或设置循环播放(或者不循环播放)
currentTime 指定了播放器应该跳过播放的时间(单位为秒)。在播放过程中,可设置currentTime属性来进行定点播放。
controls 显示或隐藏用户控制界面,或者查询用户控制界面当前是否可见
volume 在0.0到1.0之间设置音频音量的相对值,或者查询当前音量相对值
muted 布尔值,设置静音或者消除静音,或者检测当前是否为静音
autobuffer 通知播放器在媒体文件开始播放前,是否惊醒缓冲加载。如果已设置为autoplay,则忽略此特性
playbackRate 用于指定媒体播放的速度。1.0表示正常速度,大于1则表示“快进”,0~1之间表示“慢放”,负值表示回放。

三个特殊属性:

played 返回已经播放的时间段 
buffered 返回当前已经缓冲的时间段
seekable 返回当前播放器需要跳到的时间段
played、buffered和seekable都是TimeRanges对象,每个对象都有一个length属性以及start(index)和end(index)方法,前者表示当前一个时间段,后者分别返回当前时间段的起始时间点和结束时间点(单位为秒)。

还有另外三个属性:

readyState、networkState和error,它们包含<audio>和<video>元素的一些状态细节。每个属性都是数字类型的,而且为每个有效值都定义了对应的常量。

readyStete属性

readyState属性指定当前已经加载了多少媒体内容,只读属性

HAVE_NOTHING(数字值为0):没有获取到媒体的任何信息,当前播放位置没有可播放数据。 
HAVE_METADATA(数字值为1):已经获取到足够的媒体数据,但是当前播放位置没有有效的媒体数据(也就是说,获取到的媒体数据无效,不能播放)。
HAVE_CURRENT_DATA(数字值为2):当前播放位置已经有数据可以播放,但没有获致到可以让播放器前进的数据。当媒体为视频时,意思是当前帖的数据已获取,但没有获取到下一帧的数据,或者当前帧已经是播放的最重一帧。
HAVE_FUTURE_DATA(数字值为3):当前播放位置已经有数据可以播放,而且也获取到了可以让播放器前进的数据。当媒体为视频时,意思是当前帧的数据已获取,而且也获取到了下刺目贩数据,当前帧是播放的最后一帧时,readyState属性不可能为HAVE_FUTURE_DTAT。 HAVE_ENOUGH)DATA(数字值为4):当前播放位置已经有数据可以播放,同时也获取到了可以让播放器前进的数据,而且浏览器确认媒体以某一种速度进行加载,可以保证有足够的后续数据进行播放。

networkState属性

networkState属性读取当前的网络状态,共有如下所示的4个可能值:

  • NETWORK_EMPTY(数字值为0):元素牌初始状态。
  • NETWORK_IDLE(数字值为1):浏览器已选择好用什么编码格式来播放媒体,但尚未建立网络连接。
  • NETWORK_LOADING(数字值为2):媒体数据加载中。
  • NETWORK_NO_SOURCE(数字值为3):没有支持的编码格式,不执行加载。

error属性

当在加载媒体或者播放媒体过程中发生错误时,浏览器就会设置或元素的error属性。在没有错误发生时,error属性值为null。反之,error的属性是一个对象,包含了描述错误的数值code属性,error.code可能的值:

  • MEDIA_ERR_ABORTED(数字值为1):媒体数据的下载过程由于用户的操作原因而被中止。
  • MEDIA_ERR_NETWORK(数字值为2):确认媒体资源可用,但是在下载时出现网络错误,媒体数据下载过程被中止。
  • MEDIA_ERR_DECODE(数字值为3):确认媒体资源可能,但是解码时发生错误。
  • MEDIA_ERR_SRC_NOT_SUPPORTED(数字值为4):媒体格式不被支持。

video的额外属性:

poster 在视频加载完成之前,代表视频内容的图片的URL地址。该特性可读可修改 
width、height 读取或设置显示尺寸。如果大小不匹配视频本身,会导致边缘出现黑色条状区域
videoWidth、videoHeight 返回视频的固有或自使用宽度和高度。只读

(2)方法

canPlayType(type)方法将媒体的MIME类型作为参数,用来测试浏览器是否支持指定的媒体类型。如果它不能播放该类型的媒体文件,将返回一个空的字符串;反之,它会返回一个字符串:“maybe”或“probably”。

var a = new Audio(); 
if(a.canPlayType('audio/wav')){
a.src = 'm.wav';
a.play();
}

其他方法:

  • play() 控制媒体开始播放
  • pause() 暂停媒体播放
  • load() 重新加载src指定的资源

(3)事件

audio元素和video元素加载音频和视频时,以下事件按次序发生。

loadstart:开始加载音频和视频。 
durationchange:音频和视频的duration属性(时长)发生变化时触发,即已经知道媒体文件的长度。如果没有指定音频和视频文件,duration属性等于NaN。如果播放流媒体文件,没有明确的结束时间,duration属性等于Inf(Infinity)。
loadedmetadata:媒体文件的元数据加载完毕时触发,元数据包括duration(时长)、dimensions(大小,视频独有)和文字轨。
loadeddata:媒体文件的第一帧加载完毕时触发,此时整个文件还没有加载完。
progress:浏览器正在下载媒体文件,周期性触发。下载信息保存在元素的buffered属性中。
canplay:浏览器准备好播放,即使只有几帧,readyState属性变为CAN_PLAY。
canplaythrough:浏览器认为可以不缓冲(buffering)播放时触发,即当前下载速度保持不低于播放速度,readyState属性变为CAN_PLAY_THROUGH。

除了上面这些事件,audio元素和video元素还支持以下事件。

abort    播放中断 
emptied 媒体文件加载后又被清空,比如加载后又调用load方法重新加载。
ended 播放结束
error 发生错误。该元素的error属性包含更多信息。
pause 播放暂停
play 暂停后重新开始播放
playing 开始播放,包括第一次播放、暂停后播放、结束后重新播放。
ratechange 播放速率改变
seeked 搜索操作结束
seeking 搜索操作开始
stalled 浏览器开始尝试读取媒体文件,但是没有如预期那样获取数据
suspend 加载文件停止,有可能是播放结束,也有可能是其他原因的暂停
timeupdate 网页元素的currentTime属性改变时触发。
volumechange 音量改变时触发(包括静音)。
waiting 由于另一个操作(比如搜索)还没有结束,导致当前操作(比如播放)不得不等待。
确定要放弃本次机会?
福利倒计时
: :

立减 ¥

普通VIP年卡可用
立即使用
front_end_fan
关注 关注
  • 1
    点赞
  • 踩
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
  • 分享
    复制链接
    分享到 QQ
    分享到新浪微博
    扫一扫
  • 举报
    举报
专栏目录
Html5视频播放器-VideoJS+Audio标签实现视频,音频及字幕同步播放
weixin_33739523的博客
06-15 3765
一,VideoJS介绍 引用脚本,videojs很为你着想,直接cdn了,你都不需要下载这些代码放入自己的网站 &lt;link href=”http://vjs.zencdn.net/c/video-js.css” rel=”stylesheet”&gt; &lt;script src=”http://vjs.zencdn.net/c/video.js”&gt;&lt;/script&gt;...
MediaPlayer - Video and Audio Player-crx插件
04-02
加载项是通过应用一些自定义插件来提高用户体验的众所周知的视频.JS项目之上。您可以通过将视频文件拖放到播放器或按下大播放按钮来开始观看脱机视频文件。要具有播放器加载字幕,请务必将两个视频和字幕文件放在...
参与评论 您还未登录,请先 登录 后发表或查看评论
让audio和video标签在任何浏览器中都兼容html5media.min.js
11-17
HTML5新增加的audio和video标签让我们增加了很多惊喜,可以让我们更方便的在网页中播放音频和视频。但目前很多浏览器不支持,无法在旧版的IE浏览器中使用。html5media.min.js却是一个能让这两个标签在各种新旧版IE浏览器中全面兼容的JavaScript类库。
HTML Video Audio js 控制
学习笔记
01-06 301
HTML Video Audio js 控制 先找到 video audio 的本体,然后直接在上面使用 .play() .pause() 即可 如 jQuery let video = $('#video')[0]; video.pause()
实现自定义JS刻度标尺滑块拖动功能
最新发布
weixin_35879493的博客
08-06 257
JavaScript中的事件是一个非常重要的概念,它是用户与页面交互时触发的一系列行为,例如鼠标点击、页面加载、键盘按键等操作。在前端开发中,理解事件类型及其触发机制是编写交互性良好的web应用的基础。常见的事件类型包括:鼠标事件:如clickmouseovermouseoutmousedownmouseupmousemove等。键盘事件:如keydownkeyupkeypress等。表单事件:如submitresetfocus。
javascript学习之<video>,<audio>属性和方法
白话机器学习
08-04 585
video>元素用来加载视频,是对象的实例。元素用来加载音频,是对象的实例。而和都继承了,所以这两个 HTML 元素有许多共同的属性和方法,可以放在一起介绍。理论上,这两个 HTML 元素直接用src属性指定媒体文件,就可以使用了。注意,元素有width属性和height属性,可以指定宽和高。元素没有这两个属性,因为它的播放器外形是浏览器给定的,不能指定。实际上,不同的浏览器支持不同的媒体格式,我们不得不用元素指定同一个媒体文件的不同格式。
javascript学习-audio和video
qq_43368682的博客
07-26 300
audio:音频标签 属性: src:音频资源地址 controls:是否显示控制器 autoplay:自动播放,以前版本浏览器可以,后来不允许自动播放了 muted:设置后会静音 draggable="true"可以拖动 volume:audio.volume可以设置获取音量 currentTime:audio.currentTime可以设置和获取当前播放的时间节点 方法: audio.play()//播放 audio.pause()//暂停 常用事件: onpause:暂停事件 onplay:播放事件
HTML5 Video/Audio播放本地文件示例介绍
09-28
接着,我们可以利用`URL.createObjectURL(file)`方法创建一个Blob URL,这个URL代表了选定的文件,可以安全地用于`<audio>`或`<video>`标签的`src`属性。 以下是一个简单的示例代码,展示了如何实现这一功能: ```...
ionic-video-audio-chat
05-08
通话和视频用户界面: ...you can find function call("",""); function create "contact modal" on contact modal calls "triggerCall" function of call service....通话和视频服务: services/call.ts ...
Vue实现视频播放列表(三)02——使用video.js时,audiovideo标签动态绑定src属性,实现视频播放列表-动态切换视频封面、视频链接
weixin_44867717的博客
12-06 2064
Vue实现视频播放列表(三)02——使用video.js时,audio/video标签动态绑定src属性,实现视频播放列表-动态切换视频封面、视频链接 video.js官网——https://www.npmjs.com/package/video.js 效果 效果-视频列表目录 效果-视频列表播放 代码 index.vue <script lang="ts" setup> import { ref } from 'vue' const myVideo = ref()
js操作audio和video
a_passing_traveller的博客
04-06 435
自定义样式 audio和vedio是默认看不见元素的,可以使用设置controls样式使其可见(该样式由浏览器自己提供),在network中看到media看到相关的信息。这里我们取消controls自定义它的样式。 <div class="box"> <video id="myVideo"> <source src="http://www....
videojs-playlist, 用于播放多个音频音轨或者多个视频的插件.zip
09-18
videojs-playlist, 用于播放多个音频音轨或者多个视频的插件 Video.js-播放列表用于播放多个视频或者多个音频音轨的视频js插件。 它是中越来越多的插件之一,用于出色的视频库库( ) 。的基本原理:开发这个插件的主要目标是播放的音频文件。 可以以通过将 <video> 交换为
JavaScript video标签使用
qq_44783086的博客
03-08 1865
/设置视频倍速关闭、下载关闭。video设置属性参数。
原生js 实现滑动到视频处自动播放
琞、小菜
09-17 8026
我们先来谈一谈这个需求,需求要求我们实现当一个视频被滚动到可视区内的时候自动播放,根据这个我们来分析一下怎么去实现它。 首先考虑以下两个重点问题 我们如何知道现在处于可视区的是那个视频 如何去触发视频自动播放/暂停 看过h5新增标签video 的api的同学都知道,通过document.getElementById或者其他什么获取到这个video,然后XX.paly()即是播放,XX.paus...
JavaScript 实现音乐播放器
qq_36194388的博客
07-28 3018
效果 HTML代码 <!--播放器--> <div id="player"> <!--播放控件--> <div id="playerControl"> <div class="playerImg"> <img src="../images/demo3/1.jpg" alt="" width="150" height="150"> &lt..
Video&Audio(进阶篇)
笺赕
01-30 647
     在HTML5中可以很轻松的处理视频与音频,在HTML5中不仅可简单的播放视频/音频,而且可方便的进行变速播放,方向播放,等等。尤其是可将Canvas与视频进行结合,大大扩展显示效果。在HTML5中进行音频与视频的处理时,几乎可以使用相同的属性与方法。      在没有HTML5以前,在页面中播放视频时必须通过Flash插件。HTML4中只能通过插件才能处理视频与音频。对于iPhone、...
Vue项目使用Video.js播放m3u8格式音(视)频流
weixin_58860430的博客
03-30 6446
记录工作中遇到的问题 需求:点击播放按钮显示弹层,在弹层上播放m3u8格式的音频流 效果如下: 点击父组件的播放按钮 弹层显示出来,播放音频流(背景图片是我自己加的) 使用步骤: 1.安装video.js和videojs-contrib-hls npm i video.js npm i videojs-contrib-hls 2.组件中引入 import videojs from 'video.js' import 'video.js/dist/video-js...
网页播放技术【好代码】
KingReturns DOTNET & COMPACT MOBILE
03-26 867
                                    在线音乐点播                                                                                                                                                             
video.js 获取多个 video 和多个 audio 的长度以及播放时长
weixin_43074269的博客
12-19 1995
video.js 获取多个 video 和多个 audio 的长度以及播放时长 话不多说,线上我的客户的需求: 客户:‘我们现有的视频播放有个逻辑在里面:如果没选课,可以随意拖拽,不记进度;如果选了课程,则进度不可拖拽,此时按照播放进度记录时长’ 播放过程每15秒抛一次,然后每个视频或音频播放完抛一次; 每个音频或视频的进度,对我们来说不重要,我们只要总进度就好了,每个的进度主要是要再抛还给你们...
videojs-multi-audio-track
06-15
<think>我们正在讨论的是如何在Video.js中添加并切换多音轨。用户特别提到了一个插件`videojs-multi-audio-track`,因此我们需要围绕这个插件展开说明。根据之前的历史,我们已经知道Video.js原生支持音轨,但需要特定的格式(如HLS)和配置。而`videojs-multi-audio-track`插件是一个第三方插件,用于增强音轨切换功能。步骤:1.引入插件2.初始化播放器并启用插件3.添加音轨4.切换音轨注意:该插件的使用依赖于Video.js和相应的视频格式(HLS)。由于用户要求使用该插件,因此我们将重点放在插件的使用方法上。参考:之前我们提到过HLS格式的准备,这里同样适用。下面开始详细步骤:</think>### 使用 `videojs-multi-audio-track` 插件实现音轨切换 #### 一、安装与引入 1. **安装插件**: ```bash npm install videojs-multi-audio-track # 或直接引入CDN <script src="https://cdn.jsdelivr.net/npm/videojs-multi-audio-track@1.0.0/dist/videojs-multi-audio-track.min.js"></script> ``` 2. **引入依赖**: ```html <!-- Video.js 核心 --> <link href="https://vjs.zencdn.net/7.20.3/video-js.css" rel="stylesheet"> <script src="https://vjs.zencdn.net/7.20.3/video.min.js"></script> <!-- 插件 --> <script src="path/to/videojs-multi-audio-track.min.js"></script> ``` #### 二、基础配置 ```javascript const player = videojs('my-video', { plugins: { multiAudioTrack: { audioTracks: [{ src: 'https://example.com/video_en.m3u8', label: '英语原声', language: 'en', default: true }, { src: 'https://example.com/video_zh.m3u8', label: '中文配音', language: 'zh' }] } } }); ``` #### 三、动态添加音轨 ```javascript // 获取插件实例 const multiAudio = player.multiAudioTrack(); // 添加新音轨 multiAudio.addTrack({ src: 'https://example.com/commentary.m3u8', label: '导演解说', language: 'en' }); // 切换音轨(通过索引) multiAudio.switchTrack(1); // 切换到中文配音 // 切换音轨(通过ID) multiAudio.switchTrackById('zh-audio'); ``` #### 四、自定义控件 ```javascript // 在控制栏添加音轨选择器 player.getChild('ControlBar').addChild('MultiAudioTrackButton'); // 自定义按钮文本 const audioButton = player.controlBar.getChild('MultiAudioTrackButton'); audioButton.controlText('语言选择'); ``` #### 五、事件监听 ```javascript player.multiAudioTrack().on('trackchange', (event, track) => { console.log('切换至音轨:', track.label); // 更新UI或执行其他操作 }); player.multiAudioTrack().on('trackerror', (event, error) => { console.error('音轨加载错误:', error); }); ``` #### 六、移动端适配 ```javascript // 解决iOS兼容性问题 if (videojs.browser.IS_IOS) { player.on('loadedmetadata', () => { const tracks = player.multiAudioTrack().tracks(); if (tracks.length > 0) { player.multiAudioTrack().switchTrack(0); } }); } ``` #### 七、关键注意事项 1. **音轨格式要求**: - 所有音轨必须使用相同的视频源 - 推荐HLS格式(`.m3u8`) - 使用ffmpeg生成多音轨视频: ```bash ffmpeg -i video.mp4 -i audio_zh.aac -i audio_en.aac \ -map 0:v -map 1:a -map 2:a \ -c:v copy -c:a aac -f hls \ -var_stream_map "v:0,a:0 a:1" \ master.m3u8 ``` 2. **性能优化**: ```javascript // 预加载音轨 player.multiAudioTrack().preloadTracks(); // 限制同时加载的音轨数 player.multiAudioTrack({ maxPreload: 2 }); ``` 3. **错误处理**: ```javascript player.on('error', () => { const error = player.error(); if (error.code === 4) { // MEDIA_ERR_SRC_NOT_SUPPORTED console.warn('音轨格式不支持,尝试转码为AAC格式'); } }); ``` [^1]: OBS和ffmpeg可用于准备多音轨源
front_end_fan

博客等级

码龄8年
238
原创
371
点赞
597
收藏
153
粉丝
关注
私信

TA的精选

  • 新 vue-cli webpack全局引入jquery、elment-ui

    841 阅读

  • 新 学习webpack

    646 阅读

  • 热 js css+html实现简单的日历

    33375 阅读

  • 热 js监听手机端的touch滑动事件

    21524 阅读

  • 热 设置title的样式

    18193 阅读

查看更多

2018年18篇
2017年289篇

大家在看

  • 关于comfyui的CUDA和cuDnn安装(编译的前置需求)
  • 中科院2区,Q1,IF=5.9,人文社科领域! 131
  • Java新生通关秘籍 | 开学黄金书单限时解锁! 255
  • 在HarmonyOS中非持久化存储导致数据丢失问题 322
  • OlyVIA2.9保姆及下载安装教程

分类专栏

  • ajax
    6篇
  • html5
    17篇
  • CSS3
    16篇
  • javascript
    74篇
  • css
    34篇
  • 纯CSS
    15篇
  • jquery
    35篇
  • vue
    12篇
  • 前端面试题
    4篇
  • 布局
    4篇
  • bootstrap
    6篇
  • 特殊样式
    5篇
  • app
    4篇
  • 日历
    5篇
  • 插件
    13篇
  • 移动端
    13篇
  • 正则表达式
    3篇
  • jquery源码
    14篇
  • 其他
    14篇
  • ES6
    4篇
  • SQL
  • svn
    1篇
  • IOS
    2篇
  • 兼容性
    5篇
  • 分页
  • markdown编辑器
    1篇
  • 图片上传
    1篇
  • 导出
    1篇
  • 导出excel
    1篇
  • 模板引擎
    2篇
  • 计算机基础
  • webpack
    3篇
  • amd/cmd
    1篇
  • promise
    1篇
  • Git
    1篇

展开全部 收起

上一篇:
js基础-Blob (结尾有惊喜!有惊喜!有惊喜!)★★
下一篇:
js基础-Geolocation API

目录

展开全部

收起

目录

展开全部

收起

上一篇:
js基础-Blob (结尾有惊喜!有惊喜!有惊喜!)★★
下一篇:
js基础-Geolocation API

分类专栏

  • ajax
    6篇
  • html5
    17篇
  • CSS3
    16篇
  • javascript
    74篇
  • css
    34篇
  • 纯CSS
    15篇
  • jquery
    35篇
  • vue
    12篇
  • 前端面试题
    4篇
  • 布局
    4篇
  • bootstrap
    6篇
  • 特殊样式
    5篇
  • app
    4篇
  • 日历
    5篇
  • 插件
    13篇
  • 移动端
    13篇
  • 正则表达式
    3篇
  • jquery源码
    14篇
  • 其他
    14篇
  • ES6
    4篇
  • SQL
  • svn
    1篇
  • IOS
    2篇
  • 兼容性
    5篇
  • 分页
  • markdown编辑器
    1篇
  • 图片上传
    1篇
  • 导出
    1篇
  • 导出excel
    1篇
  • 模板引擎
    2篇
  • 计算机基础
  • webpack
    3篇
  • amd/cmd
    1篇
  • promise
    1篇
  • Git
    1篇

展开全部 收起

目录

评论
被折叠的  条评论 为什么被折叠? 到【灌水乐园】发言
查看更多评论
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值