Попробуйте сделать так:
$('html, body').animate({
scrollTop: $("#item_"+id).offset().top - 100
}, 1000, 'swing');
Поскольку вы хотите анимировать, это html и body, а не панель.
Кстати, я заметил, что на этот вопрос можно ответить с помощью этого: jQuery выделите элемент ;)
ОБНОВЛЕНИЕ:
Теперь я помню (после повторного тестирования), что я изменил ваше значение на a.Я также удалил некоторые стили из ваших оригинальных основных элементов.Если вы не можете запустить его таким образом, дайте мне знать, и мы попробуем другое.
$(document).on("click", ".goto", function(e) {
var id = $(this).data('id');
$('html, body').animate({
scrollTop: $("#item_" + id).offset().top - 100
}, 1000, 'swing');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<div id="panel">
<div id="item_a" style="margin:500px 0; display:block;">item1</div>
<div id="item_b" style="margin:500px 0; display:block;">item2</div>
<div id="item_c" style="margin:500px 0; display:block;">item3</div>
</div>
</div>
<a href="#" class="goto" data-id="a">go to item1</a>
<a href="#" class="goto" data-id="b">go to item2</a>
<a href="#" class="goto" data-id="c">go to item3</a>