ipadのviewportって厄介?
viewportって、画面幅表示、最大拡大率2倍にしてるけど、
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0, user-scalable=yes">
これだとipadでうまくいかなかった!
縦表示から横表示に傾けると、コンテンツが画面をはみ出てしまった。
initial-scale=1.0をとるとうまくいくけど、
それだとスマホで、画面を横に向けた時の、文字サイズが大きすぎて、
すごく気になる!
ということで、ipadのときだけ、initial-scaleの指定を取ることにしたけど・・・・
var ua = navigator.userAgent;
var tabletFlg = (ua.indexOf('Android') > 0 && ua.indexOf('Mobile') == -1) || ua.indexOf('iPad') > 0;
if(tabletFlg){
$('head').children('meta[name="viewport"]').attr('content','width=device-width, maximum-scale=2.0, user-scalable=yes');
}
PC表示をそのままスマホでも表示させたいときにも同じだった。
initial-scale=1.0入れてると、はみ出て一部しか見れない状態になっちゃいました。
オブジェクトのプロパティにjquery要素入れたのに、なぜか使えない。。
なぜかエラーになる。。ready関数の中にも入れてるのにどうして・・><
var fxP = {
scrollPosition:$(window).scrollTop(),
box : $('#fixedPrice'),
fixedTop : fxP.box.offset()
};
→TypeError: fxP is undefined
オブジェクトのプロパティの数取得も、値の変更も、for in 文を使えば自由にできた、
今まで繰り返し文といえば、forだけしか使ってなかったけど、
for in文が便利すぎて感動><
var month = {
tab01 : myMonth,
tab02 : myMonth+1,
tab03 : myMonth+2
}
for(var j in month){
monthCount++;
if(month[j]>12){
month[j]= month[j]-12;
}
}
monthCountでオブジェクトmonthのプロパティの数がわかるし、
j(おそらくなんでもよさげ)でプロパティ名取ってこれた。
連番にした変数をforで回して使いたい
何がしたいかうまく説明できないことだけど、つまづいたのでメモ。
オブジェクトを文字列に変換したいというか、変数を文字列で指定したいというか・・・。
下のだと、('time0'+i)のところが文字列になってしまって、forで回してスマートにしようっていうのに失敗
var time01 = '11:00~',
time02 = '13:00~',
time03 = '15:00~',
time04 = '午前',
time05 = '午後';
for(var i=1;i<=n;i++){
t = 'time0'+ i;
td.append('<p>'+('time0'+i)+ '</p>');
}
それで、
オブジェクトtextに、触りたいものをプロパティとして入れる。
↓
text[文字列]だとオブジェクトの中身を文字列でアクセスできた。
var text = {
time01 : '11:00~',
time02 : '13:00~',
time03 : '15:00~',
time04 : '午前',
time05 : '午後'
}
for(var i=1;i<=n;i++){
t = 'time0'+ i;
$td.append('<p>'+text['time0'+i]'</p>');
}
このへんのページ参考になるかと思ったけど難解。。
JSONらしき文字列をオブジェクトに変換するJavaScript - Takazudo hamalog