2013
4
15
window.onload = function() {
scrollTo(0, 0);
}
尚、こちらの記述が利くのはiOS5以降となります。ios4とAndroidではscrollToのパラメーターが1以上(スクロールが初期位置から少しでも移動した状態)でないと記述が反応しない様です。
window.onload = function() {
scrollTo(0, 1);
}
こちらはAndroid機種に対応した記述だがios4には利かないまま。
window.onload = function() {
setTimeout(function() {
scrollTo(0, 1);
}, 100);
}
このsetTimeoutメソッドで0.1秒後に処理を行う事でios4にも対応する様です。
とりあえずこの記述でメジャーな現行の機種には対応できます。
function(){
var p = location.hash;
alert(p);
});
現在のページURLのアンカーID、つまりハッシュを取得します。URLにハッシュが含まれていればアラートにハッシュIDが出て、ハッシュが無ければ何もないアラートが出ます。
function(){
var p = location.hash;
var hashId = p.indexOf("#");
if(0 == hashId){
alert("ハッシュあるアルよ~");
}else{
alert("ハッシュないアルよ~");
}
});
これで現在のURLにハッシュが含まれていれば『ハッシュあるアルよ~』アラートが、含まれていなければ『ハッシュないアルよ~』のアラートが出ます。
function(){
var p = location.hash;
var q = $(p).offset().top;
var hashId = p.indexOf("#");
if(0 == hashId){
alert("q");
}else{
alert("q");
}
});
これで前回の課題はクリアーできました。
$(document).ready(function(){
var p = location.hash;
var q = $(p).offset().top;
var hashId = p.indexOf("#");
if(0 == hashId){
$('html,body').animate({ scrollTop: q }, 'slow');
return false;
}
});
これで遷移したページURLにハッシュが含まれていた場合、そのハッシュIDと同名のIDコンテンツまでのパラメーター分スクロールさせるスクリプトが起動します。
#aaaコンテンツへ
#bbbコンテンツへ
#cccコンテンツへ
#dddコンテンツへ
これでどうでしょうか?
このスクリプトとアドレスバーの非表示用のスクリプトを組み合わせればプラグインの完成です(笑
window.onload = function() {
setTimeout(function() {
scrollTo(0, 1);
}, 100);
var p = location.hash;
var q = $(p).offset().top;
var hashId = p.indexOf("#");
if(0 == hashId){
$('html,body').animate({ scrollTop: q }, 'slow');
return false;
}
}
