.video-embed {
position: relative;
padding-bottom: 56.25%;
padding-top: 0px;
height: 0;
margin-bottom: 20px;
}
.video-embed iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
<div id="video-embeds">
<div class="video-embed" style="">
<iframe width="560" height="315" src="http://www.youtube.com/embed/pa4IxrIsr9g" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen=""></iframe>
</div>
</div>
现在,当用户向下滚动视频时,我希望<div id="video-embeds">
与iframe一起跳到每个@media css具有不同大小的右上角,并停留在那里直到用户返回到实际视频位置为止,视频将再次出现在页面上...
如何执行此操作?用CSS可以吗?
更新: 滚动后我有想要的CSS。
#video-embeds-fixed {
opacity: 1;
pointer-events: auto;
display: block;
width: 400px;
height: 225px;
transition-property: opacity, height;
transition-duration: 366ms;
transition-timing-function: cubic-bezier(0.05, 0, 0, 1);
position: fixed;
overflow: hidden;
box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 3px 6px 0 rgba(0,0,0,0.20);
right: 12px;
bottom: 10px;
}
.video-embed-fixed iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
现在将滚动#video-embeds更改为#video-embeds-fixed并将.video-embed更改为.video-embed-fixed的javascript或jQuery吗?
答案 0 :(得分:0)
仅使用CSS,这是不可能的,您必须使用javascript。 但是首先将您的CSS固定ID选择器更改为类(在您的CSS文件中将#video-embeds-fixed更改为.video-embeds-fixed)。
JQuery解决方案:
var video = $('#video-embeds');
var sticky = video.offset().top;
var videoHeight = video.height();
$(window).on('load scroll resize', function() {
if ((window.pageYOffset) >= (sticky + videoHeight)) {
video.addClass('video-embeds-fixed');
video.children('.video-embed').addClass('video-embed-fixed');
} else {
video.removeClass('video-embeds-fixed');
video.children('.video-embed').removeClass('video-embed-fixed');
}
});