【发布时间】:2014-06-01 20:04:54
【问题描述】:
我必须实现一个设计,其中 div 覆盖视频iframe(youtube 视频、vimeo 等)的 15-20%。当用户点击视频并且视频开始播放时,div 应该向下滑动 (animate marginTop: 0)。然后,当用户再次点击视频停止播放时,应该会出现 div (marginTop: -100px)。
这是我用来捕获iframe 上的点击事件并设置 div 向下滑动的动画的脚本。
jQuery(document).ready( function() {
var overiFrame = -1;
jQuery('iframe').hover( function() {
overiFrame = jQuery(this).closest('.video-container');
}, function() {
overiFrame = -1
});
jQuery(window).blur( function() {
if( overiFrame != -1 )
jQuery('.header-container').animate({
marginTop: '0'
})
});
});
我不知道如何捕获对iframe 的第二次点击并将 div 向上滑动。我尝试使用toggleClass,但在脚本添加类后它不会删除它。
稍后编辑
我对脚本进行了一些修改,但它仍然无法正常工作。仅当用户在 iframe 上单击一次、在 iframe 外单击一次等等时,它才有效。如果用户在 iframe 内多次单击,动画将不起作用。
jQuery(document).ready( function() {
var overiFrame = -1;
jQuery('iframe').hover( function() {
overiFrame = jQuery(this).closest('.video-container');
}, function() {
overiFrame = -1
});
jQuery(window).blur( function() {
if( overiFrame != -1 ) {
if (jQuery('.header-container').hasClass('animate')) {
jQuery('.header-container').removeClass('animate')
} else {
jQuery('.header-container').addClass('animate')
}
}
});
});
这是我正在尝试实现的设计的屏幕截图:
【问题讨论】:
-
你能和我们分享你的 HTML 吗?
-
你对这部分有什么期望:jQuery('iframe').hover(function() { overiFrame = jQuery(this).closest('.video-container'); }, function( ) { overiFrame = -1 }); ?
-
naota,这是网址:george.grigorita.me/zune/this-is-a-video-post。 enguerranws,该部分用于捕获 iframe 上的第一次点击。
标签: javascript jquery iframe onclick