Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Исправить код (https://javascript.ru/forum/jquery/76237-ispravit-kod.html)

JAMLIGHT 16.12.2018 16:36

Исправить код
 
Использую код для фиксации сайдбара при прокрутке страницы. При перезагрузке страницы на якоре посреди страницы сайдбар до движения скролла пропадает и находится изначально вверху. как исправить баг?

<script type="text/javascript">
$(document).ready(function(){
$(window).scroll(function() {
if($(this).scrollTop() >=300) {
$('#SideBar').addClass('sidebarfix');
}
else{
$('#SideBar').removeClass('sidebarfix');
}
});
});
</script>

рони 16.12.2018 16:38

JAMLIGHT,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 16.12.2018 16:39

JAMLIGHT,
добавьте триггер скролл в строку надцать

JAMLIGHT 16.12.2018 16:42

минимальный код страницы подготовлю

рони 16.12.2018 16:48

JAMLIGHT,
<script>
$(function(){
$(window).scroll(function() {
$("#SideBar").toggleClass("sidebarfix", $(this).scrollTop() >=300)
}).trigger("scroll")
});
</script>

JAMLIGHT 16.12.2018 17:03

Спасибо за понимание.Действительно проблема пр загрузке решена

JAMLIGHT 20.12.2018 21:53

Как можно приписать такой же триггер для перезагрузки внизу страницы ко второму коду для фиксации об подвал или совместить 2 кода вместе
<script type="text/javascript">
$(function(){
$(window).scroll(function() {
$("#imSideBar").toggleClass("sidebarfix", $(this).scrollTop() >=300)
}).trigger("scroll")
});
</script>

<script type="text/javascript">
$(function(){
$(window).scroll(function (){
scrollBottom = $(document).height() - $(window).scrollTop();
if (scrollBottom <= 590){
$('#imSideBar').removeClass('sidebarfix');    
$('#imSideBar').addClass('sidebarbottom');
}
else
{
$('#imSideBar').removeClass('sidebarbottom');
}
})
});
</script>

JAMLIGHT 20.12.2018 22:53

Так?
<script type="text/javascript">
$(function(){
$(window).scroll(function (){
scrollBottom = $(document).height() - $(window).scrollTop();
if (scrollBottom <= 590){
$('#imSideBar').removeClass('sidebarfix');    
$('#imSideBar').addClass('sidebarbottom');
}
else
{
$('#imSideBar').removeClass('sidebarbottom');
}
}).trigger("scroll")
});
</script>

рони 20.12.2018 23:22

Цитата:

Сообщение от JAMLIGHT
Так?

если работает, то так. :)

JAMLIGHT 20.12.2018 23:27

работает, но может 2 кода следует переписать в один?


Часовой пояс GMT +3, время: 01:50.