【前端】类似苹果官网,使用滚轴事件控制视频播放

苹果官网的效果 网址:https://www.apple.com/homepod/

完成的效果:滚动滚轴播放相同比例时间的视频,向上滚动倒播视频。

目前碰到的问题是 只有一下下滚动滚轴才可以完成这个效果,如果一下滚动很长滚动的时间就没有设置的那么长了。还有就是向上滚动的问题,video现在没有倒播API,不知道怎么实现。
使用 video.currentTime 可以解决这两个问题,但是就没有平滑的播放效果了。求救各位大神~~

下面是我做的的demo和代码,demo页面打开控制台可以看到滚动信息。
DEMO: http://blog.isnomo.com/airpro...
代码:

// 获取到 video 元素

var video = document.getElementById("videoPlayer");

// 计算出需要滚动的中距离

var scrollNum = $('#videoPlayer').height() - $(window).height();

var temp,time,preTime = 0;

$(window).scroll(function () {

// 滚轴事件,a = 已经滚动的距离

var a = $(this).scrollTop();

function playVideo(){

// 播放视频的函数 , temp = 当前滚动距离与总滚动距离的比例. scrollNum /2 为了减少播放距离。

temp = ( scrollNum / 2 ) / a;

// 使用滚动条的相同比例得出每次滚动所需要播放的时间

time = video.duration / temp;

video.play();

// 本次滚动的时间要减去上次滚动的时间

setTimeout( 'video.pause()' , ( time - preTime ) * 1000);

preTime = time;

console.log('本次播放时间:'+time);

}

playVideo();

console.log('滚轴距离:'+ a);

console.log('已播放到的时间:'+ video.currentTime );

});

回答

就我访问到的苹果首页的这个效果,并不是用视频来做的。
而是用transform: translate3d+canvas来做的。
transform 只是起到一个调整视角的辅助作用,
主要还是通过canvas生成一系列的图像,通过判断滚动条位置去分别显示,形成逐帧动画的效果。
【前端】类似苹果官网,使用滚轴事件控制视频播放

以上是 【前端】类似苹果官网,使用滚轴事件控制视频播放 的全部内容, 来源链接: utcz.com/a/80368.html

回到顶部