#jquery
#jquery
Вопрос:
Я использую это для переключения отображения div…
<script>
jQuery(".trigger").not('.edit .trigger').click(function(event){
event.preventDefault();
jQuery("#target").slideToggle();
});
</script>
Но я пытаюсь адаптировать его так, чтобы он не только расширял скрытый div, но и прокручивался до расширенного div (#target). Пока все, что я пробовал, полностью ломает его, есть идеи?
Я только что попробовал
<script>
$element = $('#target');
$element.hide();
$('.trigger').click(function(event){
event.preventDefault();
$a = $(this);
$element.slideToggle(250, function(){
$(window).scrollTop($a.offset().top);
});
});
</script>
Но я получаю $ не является функцией
Комментарии:
1. Вы должны добавить код, который вы пробовали, чтобы мы могли помочь вам исправить это
Ответ №1:
Если вы получаете сообщение об ошибке «$ не является функцией», попробуйте использовать jQuery() вместо $().
Вы должны определить переменные словом var.
Ваша функция scrollTop прокручивается до элемента .trigger, а не до цели. Это будет выглядеть так (не проверено):
<script>
var element = jQuery('#target');
element.hide();
jQuery('.trigger').click(function(event){
event.preventDefault();
element.slideToggle(250, function(){
jQuery(window).scrollTop(element.offset().top);
});
});
</script>
Комментарии:
1. Большое вам спасибо за это. Это работает отлично. Единственная проблема, с которой я сталкиваюсь сейчас, — это когда открывается #target div, страница автоматически прокручивается до него, что идеально, но сейчас я пытаюсь выяснить, возможно ли снова скрыть #target div, когда кто-то прокручивает до 300 пикселей от верхней части страницы. Снова я рисую пробел… javascript не является моей сильной стороной.
2. @user2227359 Я бы сказал, взгляните на функцию jQuery(window).scroll() с помощью jQuery(this). scrollTop() для позиции прокрутки, чтобы проверить высоту прокрутки.