我得到以下代码:
<script type="text/javascript">
jQuery(document).ready(function(){
var Opened = false;
jQuery('.expend-schedule').click(function(e){
// On empêche l'action
e.preventDefault();
// Variable
var DataType = jQuery(this).attr('data-type');
// On va fermer toutes les tables
jQuery('.schedule').each(function(){
// On va fermer uniquement si ouverte
if( jQuery(this).css('display') != 'none' && jQuery(this).attr('data-type') != DataType ){
// On ferme
jQuery(this).fadeOut( 500, function(){
// Est-ce que l'animation et l'ouverture s'est produite déjà ?
if(Opened === false){
var TableElement = jQuery('.schedule[data-type="'+DataType+'"]');
// On ouvre et on s'y déplace de façon automatique
TableElement.fadeIn(TableElement.height() * 0.47, function(){
jQuery('html, body').animate({
scrollTop: TableElement.offset().top - 50
}, 'slow');
});
// On dit que c'est ouvert, afin d'empêcher l'ouverture à de multiples reprises
// si'il y a eu un bug
Opened = true;
}
});
}
});
// On reset
Opened = false;
});
</script>
这是我的页面的示例:
<h4 class="sep_bg"><a class="expend-schedule" data-type="week" href="#">Monday to Friday</a></h4>
<table class="schedule table table-condensed" data-type="week">
<thead>
<tr>
<th style="width: 60px;">Hour</th>
<th style="width: 710px;">Transit</th>
</tr>
</thead>
<tbody>
<tr>
<td>04h</td>
<td>04h15, 04h27, 04h39, 04h59</td>
</tr>
</tbody>
</table>
<h4 class="sep_bg"><a class="expend-schedule" data-type="saturday" href="#">Saturday</a></h4>
<table class="schedule table table-condensed" data-type="saturday">
<thead>
<tr>
<th style="width: 60px;">Hour</th>
<th style="width: 710px;">Transit</th>
</tr>
</thead>
<tbody>
<tr>
<td>04h</td>
<td>04h15, 04h27, 04h39, 04h59</td>
</tr>
</tbody>
</table>
所以我的问题是:
每次我单击类所在的某个位置时expend-schedule
,它应该从当前滚动位置移动到元素位置。这是可行的,只是当我单击时,它会直接转到页面顶部,然后移动到元素位置。
有任何想法吗?谢谢。