HTML+CSS+JavaScript实战(一个简易的视频播放器)

效果如下:

在这里插入图片描述

思路很常规,无需注释即可看懂(其实是懒得敲 bushi)
没有注释也能跑,so直接上源码~

感谢 夏柔站长 提供的免费API

index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="styles.css"><title>视频播放器</title>
</head>
<body><div class="container"><h1>在线视频播放器</h1><div id="video-container"><video id="videoPlayer" controls width="1000" height="600" autoplay></video></div><button id ='check_bt_1'onclick="loadVideo_1()">搞笑视频</button><button id ='check_bt_2'onclick="loadVideo_2()">甜妹视频</button><button id ='check_bt_3'onclick="loadVideo_3()">纯情女高</button><button id ='check_bt_4'onclick="loadVideo_4()">清纯美女</button><button id ='check_bt_5'onclick="loadVideo_5()">穿搭视频</button><button id ='check_bt_6'onclick="loadVideo_6()">随机视频</button></div><script src="https://apii.ctose.cn/live2d/Source-One/default/autoload.js"></script><script src="scripts.js"></script>
</body>
</html>

styles.css

body {font-family: Arial, sans-serif;background-color: #193761;margin: 0;padding: 0;
}.container {/* max-width: 800px; */margin: 50px auto;text-align: center;background-color: #9cdcfe;padding: 20px;border-radius: 8px;box-shadow: 0 0 10px rgba(254, 93, 127, 1);
}h1 {color: #333;font-family: "Chalkduster", cursive;font-size: 40px;
}#videoPlayer {display: block;margin-left: auto;margin-right: auto;/* border: 2px solid #f8d714; */border-radius: 10px;box-shadow: 0 2px 4px rgba(245, 7, 58, 0.8);outline: none;max-width: 100%;
}#video-container {margin-top: 20px;
}#check_bt_1 {left: -164px;
}#check_bt_2 {left: -99px;
}#check_bt_3 {left: -34px;
}#check_bt_4 {left: 31px;
}#check_bt_5 {left: 96px;
}#check_bt_6 {left: 161px;
}button {padding: 10px 20px;font-size: 16px;background-color: #2bc3d1;color: #fff;border: none;border-radius: 4px;cursor: pointer;outline: none;margin-top: 20px;position: relative;
}button:hover {background-color: #ffcd43;
}@media screen and (max-width: 480px) {.container {margin: 20px auto;padding: 10px;}h1 {font-size: 26px;}#videoPlayer {max-width: 100%;}#check_bt_1,#check_bt_2,#check_bt_3,#check_bt_4,#check_bt_5,#check_bt_6 {left: auto;}
}

scripts.js

function loadVideo_1() {const button = document.getElementById('check_bt_1');button.innerHTML = '加载中'; // 更改按钮内容为"正在加载中"const apiUrl = 'https://v.api.aa1.cn/api/api-video-gaoxiao/index.php?aa1=json';fetch(apiUrl).then(response => response.json()).then(data => {const videoUrl = data.mp4;const videoElement = document.getElementById('videoPlayer');videoElement.src = videoUrl;videoElement.autoplay = true;const videoContainer = document.getElementById('video-container');videoContainer.innerHTML = ''; // 清空容器videoContainer.appendChild(videoElement);button.innerHTML = '搞笑视频';}).catch(error => {button.innerHTML = '加载失败';console.error('Error loading video:', error);});}function loadVideo_2() {const button = document.getElementById('check_bt_2');button.innerHTML = '加载中'; // 更改按钮内容为"正在加载中"const videoUrl = "https://api.8uid.cn/tm.php?type=video";const videoElement = document.getElementById('videoPlayer');videoElement.src = videoUrl;videoElement.autoplay = true;const videoContainer = document.getElementById('video-container');videoContainer.innerHTML = ''; // 清空容器videoContainer.appendChild(videoElement);button.innerHTML = '甜妹视频';}function loadVideo_3() {const button = document.getElementById('check_bt_3');button.innerHTML = '加载中'; // 更改按钮内容为"正在加载中"const videoUrl = "https://api.8uid.cn/ng.php?type=video";const videoElement = document.getElementById('videoPlayer');videoElement.src = videoUrl;videoElement.autoplay = true;const videoContainer = document.getElementById('video-container');videoContainer.innerHTML = ''; // 清空容器videoContainer.appendChild(videoElement);button.innerHTML = '纯情女高';}function loadVideo_4() {const button = document.getElementById('check_bt_4');button.innerHTML = '加载中'; // 更改按钮内容为"正在加载中"const videoUrl = "https://api.8uid.cn/qc.php?type=video";const videoElement = document.getElementById('videoPlayer');videoElement.src = videoUrl;videoElement.autoplay = true;const videoContainer = document.getElementById('video-container');videoContainer.innerHTML = ''; // 清空容器videoContainer.appendChild(videoElement);button.innerHTML = '清纯美女';}
function loadVideo_5() {const button = document.getElementById('check_bt_5');button.innerHTML = '加载中'; // 更改按钮内容为"正在加载中"const videoUrl = "https://api.8uid.cn/cd.php?type=video";const videoElement = document.getElementById('videoPlayer');videoElement.src = videoUrl;videoElement.autoplay = true;const videoContainer = document.getElementById('video-container');videoContainer.innerHTML = ''; // 清空容器videoContainer.appendChild(videoElement);button.innerHTML = '穿搭视频';}function loadVideo_6() {const button = document.getElementById('check_bt_6');button.innerHTML = '加载中'; // 更改按钮内容为"正在加载中"const apiUrl = 'https://tucdn.wpon.cn/api-girl/index.php?wpon=json';fetch(apiUrl).then(response => response.json()).then(data => {const videoUrl = data.mp4;const videoElement = document.getElementById('videoPlayer');videoElement.src = 'https:'+videoUrl;videoElement.autoplay = true;const videoContainer = document.getElementById('video-container');videoContainer.innerHTML = ''; // 清空容器videoContainer.appendChild(videoElement);button.innerHTML = '随机视频';}).catch(error => {button.innerHTML = '加载失败';console.error('Error loading video:', error);});}

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

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

相关文章

Linux上C++通过LDAP协议使用kerberos认证AES加密连接到AD服务器

一.前言 记录自己在实现这个流程遇到的各种问题&#xff0c;因为我也是看了许多优质的文章以及组内大佬的帮助下才弄成的&#xff0c;这里推荐一个大佬的文章&#xff0c;写的非常优秀&#xff0c;比我这篇文章写得好得很多&#xff0c;最后我也是看这个大佬的代码最终才实现的…

【前端开发】JS Vue React中的通用递归函数

目录 前言 一、递归函数的由来 二、功能实现 1.后台数据 2.处理数据 3.整体代码 总结 &#x1f642;博主&#xff1a;冰海恋雨. &#x1f642;文章核心&#xff1a;【前端开发】JS Vue React中的通用递归函数 前言 大家好&#xff0c;今天和大家分享一下在前端开发中j…

Python语言:文件的操作与使用

Python语言可以对电脑中的文件进行一系列操作&#xff0c;包括文件的打开与关闭&#xff0c;文件内容的读取和追加等。 打开文件 语法&#xff1a;使用open函数 使用python语言的内置open函数打开一个文件&#xff0c;里面有三个参数可以指定文件的路径&#xff0c;操作方式&a…

【嵌入式设计】Main Memory:SPM 便签存储器 | 缓存锁定 | 读取 DRAM 内存 | DREM 猝发(Brust)

目录 0x00 便签存储器&#xff08;Scratchpad memory&#xff09; 0x01 缓存锁定&#xff08;Cache lockdown&#xff09; 0x02 读取 DRAM 内存 0x03 DREM Banking 0x04 DRAM 猝发&#xff08;DRAM Burst&#xff09; 0x00 便签存储器&#xff08;Scratchpad memory&#…

8.GC基本原理

目录 概述垃圾回收引用计数法 (Reference Counting)根可达分析算法 (GCRooting Tracing)对象引用类型强引用软引用弱引用 清除垃圾1.标记-清除算法 (Mark-Sweep)2.复制算法 (Copying)3.标记-整理算法 (Mark-Compact)分代回收 (Generational Collection) 垃圾回收器GC-串行收集器…

C# +.Net检验科信息管理系统源码 LIS系统源码

检验科信息管理系统&#xff08;LIS&#xff09; LIS系统集申请、采样、核收、计费、检验、审核、发布、质控、查询、耗材控制等检验科工作为一体的网络管理系统。它的开发和应用将加快检验科管理的统一化、网络化、标准化的进程。 主要包括以下功能&#xff1a; 1、数据采集…

面试:容器技术

目录 为什么需要 DevOpsDocker 是什么&#xff1f;Docker 与虚拟机有何不同&#xff1f;什么是 Docker 镜像&#xff1f;什么是 Docker 容器&#xff1f;Docker 容器有几种状态&#xff1f;解释一下 Dockerfile 的 ONBUILD 指令&#xff1f;什么是 Docker Swarm&#xff1f;如何…

基于Springboot的影城管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的影城管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 项目介绍…

.net core中前端vue HTML5 History 刷新页面404问题

放到启动的应用程序的最后面 app.Run(async (context) > {context.Response.ContentType "text/html";await context.Response.SendFileAsync(Path.Combine(env.WebRootPath, "index.html")); });https://blog.csdn.net/lee576/article/details/88355…

GB/T 1032-2023 三相异步电机试验方法 笔记

仅仅是为了技术分享。如有侵权请随时告知&#xff0c;我会尽快删除相关内容&#xff0c;谢谢&#xff01; 1.阻值的温度效应 7.x 2.温升与负载电 7.x 3.力矩修正公式及功率公式 8.3 3.1铁损和铜损测量 4.空载特性曲线 9.3 4.1 空载损耗 5.堵转特性 6.剩余损耗 6.1 另一种由转子…

Android图片压缩插件

今天才发现这个还有插件&#xff0c;平时都是传网站上压缩完了又下载下来覆盖原文件。现在有这个了&#xff0c;开发好高效&#x1f601;&#xff01;分享给大家&#xff0c;可能对你们有用哈哈&#x1f606;。也可能你们早都知道了……

Excel中使用数据验证、OFFSET实现自动更新式下拉选项

在excel工作簿中&#xff0c;有两个Sheet工作表。 Sheet1&#xff1a; Sheet2&#xff08;数据源表&#xff09;&#xff1a; 要实现Sheet1中的“班级”内容&#xff0c;从数据源Sheet2中获取并形成下拉选项&#xff0c;且Sheet2中“班级”内容更新后&#xff0c;Sheet1中“班…