15

私は過去 1 時間、ズームや.scrollTop()操作のバリエーションに関する数多くの質問を読んで、少なくとも 20 の異なることを試しました。

3 つのフィールドと続行するためのボタンがあるフォームがあります。[続行] ボタンをクリックすると、フォームの残りが開きます。テキストフィールドを選択すると、Safari モバイルがズームインします。そこは特に気にしません。ズームを禁止すると、小さすぎてフィールドを読み取ることができず、読み取り可能なズーム レベルでロードすると、ページの一部しか表示されないため、ズームインの動作は問題ありません。

ボタンをクリックしてフォームの残りの半分が表示された後、ウィンドウがまだズームインされていて、ページのランダムな部分が表示されているという状況です。


1) ボタンをクリックした後に実際にズームアウトする
2) フォームの次の部分が表示される場所までスクロールする

viewport content widthズームアウトとタグ内の処理で見つけられるすべてを試しましたmetaが、ビューポートを大きくまたは小さくするだけで、実際にはまったくズームアウトしないため、処理しません。これは他の人にとっては機能する可能性がありますが、私には多くのスタイリングが既に行われているため、オプションではない可能性があります.

私はスクロールソリューションに落ち着いており、.scrollLeft()正常に動作していますが、.scrollTop()どのセレクターを指定しても機能しません。私はもう試した:

$('body').scrollTop
$('html').scrollTop
$('document').scrollTop
$('body,html,document').scrollTop
$('html:not(:animated),body:not(:animated)').scrollTop
$('html:not(:animated),body:not(:animated),document:not(:animated)').scrollTop
$('#content').scrollTop // that's a wrapper div
$(window).scrollTop

.scrollTop()Safari Mobile で作業する方法を知っている人はいますか?

4

3 に答える 3

0

アンカーを使用しようとしましたか?

これらはブラウザのネイティブ機能であるため、どこでも動作するはずです。

このコードを含む元の投稿はこちら

$(function() {
  $('a[href*="#"]:not([href="#"])').on('click', function() {
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
      var target = $(this.hash);
      target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
      if (target.length) {
        $('html, body').animate({
          scrollTop: target.offset().top
        }, 1000);
        return false;
      }
    }
  });
});
于 2016-04-27T17:37:06.857 に答える
-2

これを行うために jquery を使用する必要はありません。

window.scrollTo(0, 0);

メタタグを使用して、ズームをまとめて防止することもできます。

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

問題が発生しているページだけでこれを行うことができますか?

于 2013-03-19T11:36:05.107 に答える