Ранее я написал простой аккордеон для раздела артистов на сайте, над которым я работаю. Аккордеон отлично работает, однако из-за размера контента, отображаемого в каждом разделе, я решил, что было бы лучше, если бы каждый раздел перемещался в верхнюю часть экрана, чтобы избежать прокрутки каждого посетителя вручную.
Однако у меня возникла небольшая проблема - то, что, похоже, происходит с текущим сценарием, который я написал для того, чтобы каждый раздел скользил в поле зрения, зависит от того, где находится скользящий элемент div относительно области просмотра / экрана, анимация не выглядит чтобы функционировать правильно ... почти как если бы ему нужно было сбросить себя или что-то еще, чтобы понять, что запускается новый идентификатор ?? ... Я не знаю ...
Вот как выглядит моя текущая разметка:
HTML
<div id="locate_artist_01"><!-- Unique ID assigned to each artist wrapper -->
<div class="artist_leadimg">
<h3 class="artist_bandname">ARTIST NAME</h3><!-- Band Name -->
<div class="artist_toggle_trigger" id="artist_01" title="Show/Hide"></div><!-- Toggle Button -->
</div><!-- .artist_leadimg -->
<div class="artist_toggle_container"></div>
</div>
<!-- ....repeated for each artist, but with different unique ID's -->
JQUERY - Аккордеон
$(document).ready(function(){
//Hide (Collapse) the toggle containers on load
$('.artist_toggle_container').hide();
//On Click
$('.artist_toggle_trigger').click(function(){
if( $(this).parent().next().is(':hidden') ) { //If immediate next container is closed...
$('.artist_toggle_trigger').removeClass('artist_toggle_active').parent().next().slideUp(); //Remove all "active" state and slide up the immediate next container
$(this).toggleClass('artist_toggle_active').parent().next().slideDown(); //Add "active" state to clicked trigger and slide down the immediate next container
}
return false; //Prevent the browser jump to the link anchor
});
});
JQUERY - Слайд для артиста - ЭТО ЧАСТЬ, ЧТО МНЕ НУЖНА ПОМОЩЬ С ПОЖАЛУЙСТАМ
$(document).ready(function(){
$('#artist_01').click(function(){
$('html, body').animate({
scrollTop: $("#locate_artist_01").offset().top
}, "slow");
});
$('#artist_02').click(function(){
$('html, body').animate({
scrollTop: $("#locate_artist_02").offset().top
}, "slow");
});
$('#artist_03').click(function(){
$('html, body').animate({
scrollTop: $("#locate_artist_03").offset().top
}, "slow");
});
$('#artist_04').click(function(){
$('html, body').animate({
scrollTop: $("#locate_artist_04").offset().top
}, "slow");
});
$('#artist_05').click(function(){
$('html, body').animate({
scrollTop: $("#locate_artist_05").offset().top
}, "slow");
});
});
Я надеюсь, что кто-то может указать мне правильное направление, потому что я очень близок к тому, чтобы заставить это работать правильно, но я просто еще недостаточно знаю java / jquery, чтобы понять, чего мне не хватает ...
Заранее спасибо за помощь.