实现网站内iframe视频分集切换播放的示例代码,无需跳转页面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>视频分集播放</title>
<style>
/* 全局样式 */
body {
font-family: Arial, sans-serif;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
background-color: #f5f5f5;
}
/* 视频播放容器样式 */
.video-container {
position: relative;
width: 100%;
padding-top: 56.25%; /* 16:9 宽高比 */
margin-bottom: 20px;
}
#main-iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: none;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}
/* 分集列表样式 */
.episode-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
gap: 10px;
}
/* 分集按钮基础样式 */
.episode-btn {
padding: 10px 15px;
background: #ffffff;
border: 1px solid #ddd;
border-radius: 4px;
cursor: pointer;
transition: all 0.3s ease;
text-align: center;
}
/* 分集按钮悬停效果 */
.episode-btn:hover {
background: #f0f0f0;
transform: translateY(-2px);
}
/* 分集按钮激活状态 */
.episode-btn.active {
background: #007bff;
color: white;
border-color: #007bff;
}
</style>
</head>
<body>
<!-- 视频播放容器 -->
<div>
<iframe id="main-iframe"
src="//player.bilibili.com/player.html?aid=84271171"
allowfullscreen></iframe>
</div>
<!-- 分集列表 -->
<div id="episodeList">
<!-- 分集按钮将通过JavaScript动态生成 -->
</div>
<script>
// 分集数据(示例使用B站视频,可替换为其他平台)
const episodes = [
{
title: "第一集",
src: "//player.bilibili.com/player.html?aid=84271171"
},
{
title: "第二集",
src: "//player.bilibili.com/player.html?aid=45678901"
},
{
title: "第三集",
src: "//player.bilibili.com/player.html?aid=98765432"
}
];
// 初始化分集列表
const episodeList = document.getElementById('episodeList');
episodes.forEach((ep, index) => {
const btn = document.createElement('button');
btn.className = `episode-btn ${index === 0 ? 'active' : ''}`;
btn.textContent = ep.title;
btn.onclick = () => switchEpisode(ep.src, btn);
episodeList.appendChild(btn);
});
// 切换分集函数
function switchEpisode(src, clickedBtn) {
const iframe = document.getElementById('main-iframe');
// 更新iframe源
iframe.src = src;
// 更新按钮状态
document.querySelectorAll('.episode-btn').forEach(btn => {
btn.classList.remove('active');
});
clickedBtn.classList.add('active');
}
</script>
</body>
</html>主要特点说明:
1. **响应式布局**:
- 使用16:9宽高比自适应容器
- 分集按钮自动换行布局
- 支持移动端显示
2. **功能实现**:
- 点击分集按钮切换视频源
- 自动更新按钮激活状态
- 支持主流视频平台(示例使用B站,可替换为YouTube等)
3. **使用说明**:
- 修改`episodes`数组中的视频源即可添加/修改分集
- 每个分集对象包含:
- `title`: 按钮显示文字
- `src`: 视频嵌入代码URL
- 支持任意支持iframe嵌入的视频平台
4. **样式自定义建议**:
- 修改`body`中的`max-width`调整最大宽度
- 调整`.episode-list`的`grid-template-columns`改变按钮布局
- 修改颜色方案(当前主色为蓝色#007bff)
5. **扩展建议**:
- 添加加载指示器(切换视频时显示loading)
- 增加本地存储记忆功能(记住上次观看的分集)
- 添加键盘快捷键支持(左右箭头切换分集)
注意:实际使用时需要:
1. 将视频源替换为实际有效的嵌入地址
2. 根据目标视频平台的要求添加对应的参数
3. 如果涉及跨站请求,请确保目标网站允许嵌入
下一篇:星怀蓝梦网站常规数据