I'm scrolling some panels which contain some YouTube clips using jQuery Tools Scrollable. I'd like to hide them during the transition to avoid a jerky animation.
Markup:
<div id="panel_items">
<div id="wrap">
<div class="event">
<div class="header">Event 1</div><!-- Header is always displayed -->
<div class="youtube">youtube clips</div><!-- hide during transition, then show -->
</div>
<div class="event">
<div class="header">Event 2</div>
<div class="youtube" style="display: none">More youtube clips</div>
</div>
</div>
</div>
Current JS:
$("#panel_items").scrollable({
onBeforeSeek: function() { console.log("hide .child .youtube"); },
onSeek: function() { console.log("Show chi开发者_开发技巧ld .youtube"); }
});
Bonus question: How can I automatically set the height of #panel_items
to match the current panel height (.event
)?
Something like this might work (untested):
$("#panel_items").scrollable({
onBeforeSeek: function() { this.getItems().css({'visibility': 'hidden'}); },
onSeek: function() { this.getItems().css({'visibility': 'visible'});}
});
Did you try it like that? :
var api = jQuery("#panel_items").data("scrollable");
api.onBeforeSeek(function() {
jQuery(". youtube").fadeOut(100);
});
fadein and fadeout throws off the count. After some testing, this works:
onBeforeSeek: function (e,i) {
$(".items").animate({opacity:0},400);
},
onSeek: function (e,i) {
$(".items").animate({opacity:1},400);
}
精彩评论