ScrollTop в полноэкранном jQuery

Когда браузер находится в обычном режиме, пользователь может нажать кнопку и перейти к блоку div вверху страницы:

$('html,body').animate({scrollTop:$('.backTop').offset().top}, 150);

https://jsfiddle.net/f6xr93b7/

Но имея браузер в полноэкранном режиме, не работает

Вы хотите, чтобы он не прокручивался вверх, если он находится в полноэкранном режиме? Что не так с тем, что вы пробовали?

showdev 05.09.2018 02:22

нет, я хочу, чтобы вы прокрутили вверх, если это нормальный или полноэкранный режим.

sNniffer 05.09.2018 03:00

Так работает только в нормальной теме, на весь экран ничего не происходит.

sNniffer 05.09.2018 03:01

Вам не нужно проверять, полноэкранный он или нет. jQuery найдет позицию элемента независимо от того, в каком режиме вы находитесь. Он не работает в полноэкранном режиме, потому что у вас буквально есть условие (если), которое говорит, что если он не в полноэкранном режиме, прокрутите вверх. Избавьтесь от var и if, просто оставьте строку .animate ..

VVV 05.09.2018 03:02

проблема не в этом, я уже удалил if для тестирования, но он все еще не работает

sNniffer 05.09.2018 20:51

Если у вас возникнет такая проблема, убедитесь, что в следующий раз вы будете использовать полный код.

Ramesh 06.09.2018 05:10
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
6
802
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я думаю, это то, что вы ищете. Прежде всего вам нужно установить гиперссылку на раздел, который вы хотите прокрутить. В моем случае это #top. Затем несколько кодов jquery для плавной прокрутки.

Run the sippet, Go the bottom of the page ( to the blue coloured section). Click on the white box on bottom, right .

// Add smooth scrolling to all links
$("a").on('click', function(event) {

  // Make sure this.hash has a value before overriding default behavior
  if (this.hash !== "") {
    // Prevent default anchor click behavior
    event.preventDefault();

    // Store hash
    var hash = this.hash;

    // Using jQuery's animate() method to add smooth page scroll
    // The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
    $('html, body').animate({
      scrollTop: $(hash).offset().top
    }, 800, function() {

      // Add hash (#) to URL when done scrolling (default click behavior)
      window.location.hash = hash;
    });
  } // End if
});
#top {
  height: 300px;
  width: 100%;
  background: red;
}

#second {
  height: 300px;
  width: 100%;
  background: blue;
}

.icon {
  height: 30px;
  width: 30px;
  position: fixed;
  bottom: 20px;
  right: 20px;
  background: white;
}
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id = "top">
</div>
<div id = "second">
</div>
<a href = "#top">
  <div class = "icon">
  </div>
</a>

@sNniffer Что вы подразумеваете под полноэкранным режимом. Если раздел отображается в полноэкранном режиме, вы не попадете в раздел. Вы можете подробнее рассказать о своей проблеме, сэр?

Ramesh 06.09.2018 05:33

простой, полноэкранный режим, мой друг jsfiddle.net/sirfizx/2jkt3z5e, просто нажав кнопку в полноэкранном режиме, экран будет направлен в div, то же самое, что вы сказали, но в полноэкранном режиме. Заголовок сообщения именно такой

sNniffer 06.09.2018 06:06

Значит, вы здесь используете iframe? Не могли бы вы обновить вопрос своим HTML-кодом?

Ramesh 06.09.2018 06:54

Я не уверен в вашем вопросе. Когда я проверяю ваш код, я вижу, что ваш html в полноэкранном режиме находится внутри iframe. Так что вопрос не только в ScrollTop, а в ScrollTop внутри iframe. Я просмотрел несколько примеров и не смог найти ответа. Мне это кажется немного новым. Так что на это нужно время. Я дам вам знать, если найду какое-нибудь решение.

Ramesh 06.09.2018 17:37

Вы можете почерпнуть некоторые идеи здесь: stackoverflow.com/questions/1852518/…

Ramesh 06.09.2018 17:39
Ответ принят как подходящий

Решено:

Просто используя:

$('html,body').animate({scrollTop:$('.backTop').offset().top}, 150);

назначал прокрутку тела, но должен назначать прокрутку div, которая находится в полноэкранном режиме, получая:

(Сначала нам нужно поместить прокрутку в начало, чтобы правильно измерить смещение)

$('#leitor').scrollTop(0); $('#leitor').animate({ scrollTop: $(".backTop").offset().top }, 150);

Другие вопросы по теме