H5頁面中的視訊輪播(類似於banner輪播圖效果)
先說下我的需求,如下圖:
手機模型中間部分是視訊播放,當一條視訊播放完畢後,整屏會自動上滑切換到下一個視訊。
提起輪播,我們看到的最多的就是banner輪播圖,而提起輪播圖,我會馬上想起用Swiper。
一開始為了快速開發,就想著用swiper來實現切換視訊的輪播效果,但是嘗試後發現兩個嚴重的問題:
1、使用Swiper實現輪播時,所設定的輪播時間間隔是固定的值,而視訊播放時間長短不同,因此視訊輪播是根據視訊時長而定的。
2、如果使用swiper,強制設定固定時間間隔來切換播放,這樣會導致視訊列表中的視訊會同時播放。換言之,就是剛進入頁面後,雖然頁面上顯示的是第一條視訊在播放,但後臺其實是所有視訊都在同時載入播放。
因此,swiper可以不用再考慮。
下面進入重點:
視訊播放時,何時才能切換下一條?當視訊播放完畢時。因此需要用到ended()事件來監控是否播放完畢。
輪播時要實現無縫輪播效果。
程式碼重點展示js部分:
html:
<div class="video_list">
<div class="video_ls"></div>
</div>
js:
var cdnUrl = ''; //資源url
//視訊列表資料,三個視訊
var videoList = [
{
resid:'j1q9vb170b2769761317e270eccdfe778e0b46df.mp4' ,
user_img:'user_xx.png',
dialog_img:'dialog_xx.png',
topic_img:'topic_xx.png'
},
{
resid:'j1yvqkg00b2769761317e270eccdfe778e0b46df.mp4',
user_img:'user_xyj.png',
dialog_img:'dialog_xyj.png',
topic_img:'topic_xyj.png'
},
{
resid:'j2037nea006c4c1b8a8ac173362ee25ee7ec24c4.mp4' ,
user_img:'user_3.png',
dialog_img:'dialog_3.png',
topic_img:'topic_3.png'
},
];
var leg = videoList.length;
$(document).ready(function(){
//載入視訊列表
var str='';
for(var i=0;i<leg;i++){
loadvideo(videoList[i],i);
}
//實現無縫滾動
var clone = $(".video_ls .video_shows").first().clone(true);//克隆第一個視訊
$(".video_ls").append(clone);//複製到列表最後
var size = $('.video_shows').length;
//視訊高度
var _height = $('.video_shows').outerHeight();
//初始化播放第一條
var video_show = $('.video_shows');
var video = $('.video_shows video');
video[0].load();
video[0].play();
var num =0; //當前播放視訊的下標
playlist(video);
function playlist(video){
//監控當前視訊是否播放完畢
video[num].onended = function(){
//console.log("第"+(num+1)+"條視訊播放完畢")
num++;
if(num<video.length){
var _top = -_height*(num)+'px';
$('.video_ls').animate({'top':_top},'1500')
}else{
num=1;
$(".video_ls").css('top','0');
$('.video_ls').animate({'top':-_height},'1500')
}
video[num].load();
video[num].play();
return playlist(video);
}
}
})
//載入視訊播放介面
function loadvideo(videodta,i){
str = '';
str += '<div class="video_shows">';
str += '<div class="userInfo"><img src="image/'+videodta.user_img+'"/></div>';
str += '<div class="dialog"><img src="image/'+videodta.dialog_img+'"/></div>';
str += '<div class="more"></div>';
str += '<div class="topic_content"><img src="image/'+videodta.topic_img+'"/></div>';
str += '<div class="phone_btm"></div>';
str += '<video id="myvideo'+(i+1)+'" class="video-js vjs-big-play-centered" poster="'+cdnUrl+videodta.resid+'?vframe/jpg/offset/0" preload="auto">';
str += '<source src="'+cdnUrl+videodta.resid+'" type="video/mp4">';
str += '</video>';
str += '</div>';
$(".video_ls").append(str);
}
相關推薦
H5頁面中的視訊輪播(類似於banner輪播圖效果)
先說下我的需求,如下圖: 手機模型中間部分是視訊播放,當一條視訊播放完畢後,整屏會自動上滑切換到下一個視訊。 提起輪播,我們看到的最多的就是banner輪播圖,而提起輪播圖,我會馬上想起用Swiper。 一開始為了快速開發,就想著用swiper來實
Qt 中 QLabel 自定義文字的顏色狀態,設定為三種狀態(類似於Qcheckbutton裡面的checked unchecked)
1 自定義設定Qlabel文字顏色狀態。 別的類可以進行類推 #ifndef QCOMPLEXLABEL_H #define QCOMPLEXLABEL_H #include <QObject> #include <QWidget> #inclu
poj 2505 A multiplication game (類似於遞推思想和博弈)
題目連結:poj 2505 題意:Stan and Ollie 兩人玩遊戲,Stan先手,一開始 P=1,每次玩家可以在數字 [ 2 , 9 ] 範圍內選擇一個數與p相乘,當P>=n時,此時的某玩家獲勝。 題解:我們可以這樣思考,首先我們先設 X,滿足 X*9&g
【SSH網上商城專案實戰15】執行緒、定時器同步首頁資料(類似於部落格定期更新排名)
轉自:https://blog.csdn.net/eson_15/article/details/51387378 上一節我們做完了首頁UI介面,但是有個問題:如果我在後臺添加了一個商品,那麼我必須重啟一下伺服器才能重新同步後臺資料,然後重新整理首頁才能同步資
android開發之&使用ViewPager加gridView實現選單按鈕分頁滑動(類似QQ表情選擇翻頁效果)
剛做的專案中要用到選單分頁,以前沒做過,仔細想了想,既然是分頁,肯定就少不了ViewPager,大家都知道gridView可以實現九宮格,剛好滿足我們的需求,我做的是gridview單行顯示,大家如果需要向QQ表情一樣多行顯示,直接修改資料來源就可以。 好了,上程式碼 pu
點選新增按鈕--出現一個框框(類似於新增學習經歷-本科-研究生)
import React, { Component } from "react"; class Inner extends Component { defaultValue = { taskDescription: "", vehicleClean: "" }; c
微信小程式自定義元件TabLayout(類似於今日頭條的滑動選單)
有了安卓開發經驗,自定義微信小程式元件簡直易如反掌。 自定義微信小程式的步驟如下: 建立四個檔案 分別是邏輯控制js,配置檔案json,佈局檔案wxml,樣式檔案wxss。 配置檔案.json的編寫 component引數:說明這個資料
QT進行檔案上傳 (類似於百度雲網盤)
分為伺服器和客戶端 下面來具體貼出程式碼。 每一句的具體註釋都在,幫助理解: 先貼 客戶端 首先在專案檔案 .pro中新增 network widget.h #ifndef WIDGET_H #define WIDGET_H #include &l
PHPStorm 配置遠端伺服器資料夾在本地windows映象,實現程式碼自動同步(類似於Samba架構檔案同步功能)
場景介紹:這是一種類似samba架構,也和 filezilla+xshell 模式相類似的程式碼檔案同步的模式,但是卻更加優雅,也更加方便簡潔。環境介紹:本地windows端:編輯器phpstorm遠端Linux端:centos(香港節點伺服器)LNMP一、實現檔案同步1、在
Mac上安裝homebrew(類似於Linux上的apt-get)
apt-get是Linux上的一個重要的工具,很多軟體的安裝、解除安裝、更新都會用到它。 homebrew就是Mac上的“apt-get”啦。 但是,當前Mac上預設是沒有這個工具的,接下來記錄的是在Mac上安裝homebrew的過程。 安裝指令: cu
基於JavaScript程式碼去掉H5頁面中的頭尾及廣告部分(支援 Android 和 iOS)
提出問題: APP中嵌入一個H5的網頁,但出現的廣告條或是無關頭尾,相當大煞風景,該如何去掉? 分析問題: 1,加入廣告條是為了讓網站存活下去,這個普通使用者無法理解,就此點到為止吧; 2,大多H5
前端視訊直播技術總結及video.js在h5頁面中的應用
全手打原創,轉載請標明出處:https://www.cnblogs.com/dreamsqin/p/12557070.html,多謝,=。=~ (如果對你有幫助的話請幫我點個贊啦) 目前有一個需求是在移動端上內嵌h5實現點位的視訊直播,直播專案採用Vue編寫,後端主要輸出 RTMP 和 HLS 協議的直播流
簡單的切換頁面(類似於微信)
stat urn ima http end elf int idt lis //在App.js中實現import React from ‘react‘; import { StyleSheet, Text, View } from ‘react-native‘; impo
關於H5頁面中生成圖片的兩種方式!
ima 前端 不能 圖片 項目 自定義 dom對象 技術分享 ron 前言: 我們在做項目過程中,經常會遇到自定義生成一張圖片並可以長按保存。長按保存圖片在微信等瀏覽器中默認就有,那麽對於生成圖片的有哪些方式呢? 方法一: 利用canvas繪制圖形,然後生成圖片 代碼如下:
小程式的scroll-view元件的點選自動滑動效果(類似於微信流量充值中滑塊的效果)
廢話不多說,直接上圖吧!我的目的是想要達到滑鼠點選每項時,滑塊會自動滑動,具體可開啟微信流量充值體驗體驗。但是小程式scroll-view元件並不能達到這個效果,必須手動拖動,才能滑動,網上找了許久沒有找到相關的程式碼片段,最終發現zanUI有這個元件,參照這個元件的tab元件來完成的。zanU
h5頁面中使用JSBridge需要注意的點
產品提了一個新需求,需要每個h5頁面都具有分享功能,因為在每一個h5頁面中都已經引入了一個公用的檔案(該檔案的主要作用就是引入一個公用的css和js庫),所以,為了實現分享的功能,在該公用的檔案中加入了分享功能的程式碼。 common.js <link rel="stylesh
oracle中的區間查詢(類似mysql中的limit)
那麼Oracle中有limit嗎,答案是沒有。oracle中可以通過rownumber Oracle使用rownum的關鍵字來實現這種查詢: 首先我們假設有一個地域資訊表area,其表結構如下圖所示: 表中的資料如下圖所示(select * from a
前端:微信支付和支付寶支付在pc端和h5頁面中的應用
1:h5微信支付 使用的是https://pay.weixin.qq.com/wiki/doc/api/index.html 中的 (1):公司需要首先要配置公眾號微信支付地址和測試白名單(支付的時候顯示這個支付頁面沒許可權有可能是這個原因) 如上圖http://ww
HTML往頁面中加入背景音樂(簡)
第一種:<bgsound>標籤(只適用於IE瀏覽器) 在<head> </head> 裡面加入<bgsound src="音樂url" loop="-1"> loop=-1意思是設定為自動播放; 第二種:<audio>標籤(適合
獲取頁面中視訊的載入進度,音/視訊載入過程
當音訊/視訊處於載入過程中時,會依次發生以下事件: loadstart 定義和用法 當瀏覽器開始尋找指定的音訊/視訊時,會發生 loadstart 事件。即當載入過程開始時。 durationchange 定義和用法 當指定音訊/視訊的時長資料發生變化時,發生 dur