2013/09/24
Android標準ブラウザでアンカーリンクが効かない場合の解決策
Androidブラウザでアンカーリンクがうまく動作しないので調べてみたところ
同じURLには1度しか飛ばないという仕様があることが判明。
要は#link1に1度リンクしたら2度目以降はリンクしないそうだ。
http://d.hatena.ne.jp/koba04/20120803/1343919758
それを解決するための簡単なスクリプトを作成した。
要は指定したリンク元が指している飛び先のx座標を調べて強制的にスクロールさせるというもの。
1 2 3 | android_ss( $( 'a' ) ); android_ss( $( '.smooth' ) ); android_ss( $( 'a.scroll' ) ); |
例えばこのような形でスクロールさせるターゲットを引数として渡してもらえればOK。
プラグイン化するまでもないので、以下をコピペで貼り付けてもらえれば動作します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function android_ss( a ) { for ( var i = 0; i < a.size(); i++ ) { a.eq( i ).click(function() { var h = $( this ).attr( 'href' ); var p = $( h ).offset().top; $( 'html, body' ).animate( {scrollTop: p}, 500, 'swing' ); return false; }); var h = $( this ).removeAttr( 'href' ); } } |
Author Profile
HOSHINO
ECのことを中心に書きたいと思います。 ネタが無いときはプログラムやデザインのことも書きます。
SHARE