2015-07-03 2 views
2

Я хочу использовать плавный свиток для анимации для div, который открывается (я также хочу, чтобы он удалял кнопку при нажатии); однако я не хочу использовать фиксированное смещение для гладкой прокрутки.Smooth Scroll to Top of Div, запускаемый Bootstrap Toggle

Я попытался:

<script type="text/javascript"> 
$('#toggleContact').on('click', function(event) { 
    event.preventDefault(); // To prevent following the link (optional) 
$(this).remove(); 
    $('html, body').animate({ 
     scrollTop: $('#DIV_ID').offset().top - 20 
    }, 'slow'); 
});</script> 

Вот Fiddle: Вот скрипку https://jsfiddle.net/s7sq58v2/

спасибо.

ответ

2

Вы можете сделать это с этим:

// To remove button, you can also use .hide() instead .remove() 
$('.opencontact').on('click', function(event) { 
    event.preventDefault(); // To prevent following the link (optional) 
    $(this).remove(); 
}); 

// To scroll when collapse is completed 
$('#toggleContact').on("shown.bs.collapse", function(){ 
    $('html, body').animate({ 
     scrollTop: $(this).offset().top - 20 
    }, 'slow'); 
}); 

DEMO

+0

По какой-то причине, я добавил его в scripts.js на http://pivoture.com/ux-service-offerings/user-experience -анализ и что-то мешает ему работать, не может ли быть версия jQuery? –

+0

Да, похоже, версия jQuery. Вы можете [проконсультироваться здесь] (https://github.com/twbs/bootstrap/blob/v3.3.5/bower.json), какие версии jQuery поддерживаются в последней версии. Возможно, вам нужно '' jquery ":"> = 1.9.1 "на вашем сайте;) – lmgonzalves

+1

Да, спасибо. Я использовал плагин WP для обновления до последнего jQuery. –

1

Чтобы скрыть кнопку, вы можете использовать:

$('.opencontact').hide(); 

Вы можете захотеть назначить идентификатор для кнопки, так что другие классы не затрагиваются.

<script type="text/javascript"> 
$('#toggleContact').on('click', function(event) {event.preventDefault();  // To prevent following the link (optional) 
$(this).remove(); 
$('html, body').animate({ 
    scrollTop: $('#DIV_ID').offset().top - 20 
}, 'slow'); 
$('.opencontact').hide(); 
}); 
</script> 

Вы должны добавить код javascript к своей скрипке, чтобы его можно было легко отредактировать и отладить.