По щелчку перейдите на другую страницу в определенной точке

#javascript #jquery #hash #jquery-cookie

#javascript #jquery #хэш #jquery-cookie

Вопрос:

При нажатии на ссылку на странице 1 она должна перейти на страницу 2 в определенной точке. Я пробовал использовать файлы cookie, хэштеги.. Это не работает. У кого-нибудь есть какие-либо предложения относительно того, как я могу это сделать?

 jQuery('.acco').click(function() { // Page - 1
    jQuery('body.page-id-2').animate({ // Page - 2
        scrollTop: jQuery('a#example').offset().top
    }, 1000);    
});
 

Я использовал settimeout. Он работает нормально. Но проблема снова в том, что если мы обновим страницу, она прокручивается вниз. Только при нажатии на ссылку page-1 она должна прокручиваться на странице-2. Вот код.

 jQuery(document).ready( function() {
    setTimeout(function() {     
        jQuery('body.page-id-2').animate({            
            scrollTop: jQuery('a#example').offset().top
        }, 1000);    
    }, 2000);
});
 

Комментарии:

1. Ваш вопрос не имеет смысла, не могли бы вы объяснить это подробнее?

2. Если вы хотите, чтобы люди помогали вам, вам нужно, по крайней мере, вставить фрагмент вашего проблемного кода.

3. @Нуржан, не могли бы вы, пожалуйста, проверить приведенный выше код?

4. можете ли вы поделиться фрагментом HTML-кода

5. Это решение может быть полезным web-design-weekly.com/snippets/scroll-to-position-with-jquery

Ответ №1:

Чтобы анимировать страницу в определенной позиции, просматривая хешру, вы можете использовать следующий код.

 jQuery(window).load(function(){
    if(window.location.hash == '#example'){
        jQuery('html,body').animate((
              scrollTop: jQuery('#example').offset().top
         }, 1000);
     }
});
 

Комментарии:

1. Это заставит страницу прокручиваться даже после ее обновления, в вопросе говорится, что «Но проблема снова в том, что если мы обновим страницу, она прокручивается вниз»

Ответ №2:

Чтобы решить проблему с обновлением страницы, вам нужно установить файл cookie на странице 1, а на странице 2 проверьте наличие этого файла cookie, и если вы его найдете, прокрутите страницу и удалите файл cookie, в противном случае ничего не делайте

Комментарии:

1. Спасибо.. Я пробовал .. $.cookie(‘demo_cookie’, ‘Demo Cookie’); Проблема в том, что $.cookie не является функцией в <anonymous>:1:3 .. также пробовал jQuery.cookie с той же ошибкой в консоли.. Любая идея, чтобы решить эту проблему..

2. просто используйте document.cookie

3. функция WriteCookie() { document.cookie = «demo_page1=page1»; var webUrl = window . location.href; если (webUrl.search(«/страница-2/») >= 0) { document.cookie = «demo_page2=страница 2»; } }