jquery animate scoll не работает в iframe? - PullRequest
0 голосов
/ 02 января 2012

Это работает:

$('html, body').animate({scrollTop:0});

Но это не так, если я использую его в Facebook-Tab! Если это слишком мало информации, чтобы ответить на вопрос, я придумаю несколько деталей для вас.

Может быть, это из-за фрейма? Я попробовал сделать это с помощью другого селектора внутри моей вкладки Facebook (контейнер div), но он тоже не работает

Ответы [ 2 ]

4 голосов
/ 03 января 2012

Проблема в том, что IFrame (Javascript: окно) в точности соответствует размеру документа. Так что нечего прокручивать. Когда вы хотите прокрутить, вы должны использовать методы FB.Canvas. *:

https://developers.facebook.com/docs/reference/javascript/FB.Canvas.scrollTo/

0 голосов
/ 02 января 2012

try $('body').animate({scrollTop:0}); Или вставьте DIV в DOM и используйте $('#some_div_id').animate({scrollTop:0});

Или попробуйте этот код вместо своего для целей тестирования, как только вы получите приведенный ниже код, а затем медленно добавляйте свой собственный контент, пока он не сломается. Я подтвердил, что scrollTop: 0 будет отлично работать на вкладке страницы.

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
  function gotoTop() {
    $('body').animate({scrollTop:0});
  }
</script>
</head>
<body>
  <div id="top-div" style="width:300px; height: 800px; padding: 30px 10px; background-color: #eeaaaa;">
    This is top-div
  </div>

  <div id="bottom-div" style="width:300px; height: 100px; padding: 30px 10px; background-color: #aaeeaa;">
    This is bottom div
    <a href="javascript:gotoTop()">goto top</a>
  </div>

</body>
</html>
...