2012年2月2日(木)
インターネットの使い方が変わるかも?
世界的SNS大手Facebookが米証に上場申請したそうで、大きなニュースになっています。
これにより予想される調達額がものすごい金額で、その後のFacebookの動向によっては小さなSNSは吹っ飛んでしまうかもしれません。一般ユーザーのインターネットの使い方も、徐々にですが確実に様変わりしていくでしょう。
だいたい、ネットサーフィンというとブックマークを巡回しながら気になった話題や言葉について検索をかけて他のページへ移動、というものだと思います。そして、ブックマークの上位にはニュース情報を提供しているポータルサイト。
これがどのように様変わりするかといいますと、「ブラウザを立ち上げる」=「SNSにログインする」という使い方。この流れがそのまま「SNSにログインする」=「OSを起動する」=「電源を入れる」ということになるのではないかと考えています。むしろ、GoogleやFacebook、Microsoft、Appleなどは社風はあれどそうなることを睨んでいるような感じです。
電源を入れれば、意識することなくSNSにログイン、フレンド登録している知り合いや友人がその日に気にしたこと・話題にしたいことがリストで表示されています。わたしたちは、それらについてのチェック(これがサーフィンに当たる)やリアクション(返信)をします。そうしながら世界情勢から身近な社会に至るまでの必要な情報にアクセスして、かつリアルとネットの円滑なコミュニケーションを図る…という使い方。検索エンジンはSNSを強力にサポートする側となり、ポータルサイトをはじめとする他のサイトへの誘導を行う感じです。
現在のポータル(入り口)としての役割が、ポータルサイトや検索エンジンからSNSに移行しつつあると言えます。
そうなると、考えなければいけないのはウェブサイト。いままで常識とされていた概念が時代遅れとなる日も、ひょっとしたら間近まで迫っているのかもしれません。HTML5だのCSS3だの言っても、ウェブデザイナーさんやウェブディレクターさん、そしてウェブ屋の私にとって、それが結構切実な問題です。
これについて、ちょろちょろと考えていることはあるんですが、それはまた後日。
2012年2月2日(木)
Javascriptでスクロールバーで隠れている領域の高さ(height)を取得したい
ちょっと試したいことがありまして、動的にCSSを書き換えてdivを領域(ページ)いっぱいにするようなJavascriptのテストプログラムを書いていたら困ったことに。スクロールバーで隠れている部分も含めた領域のサイズってどうやって取得すればいいのか悩んでしまったのでメモです。
特に高さ(height)で悩みました。
divを領域いっぱいにする時、幅(width)は
CSS >
width:100%;
Javascript >
obj.style.width="100%";
でOKなんですが、高さ(height)が取得できないんです。「height:100%;」でもダメ。
検索したら、html,body{ height:100%; }と記述すればいいというのがありましたが、なんか上手くいかず。body直下に該当のdivがいないのが理由だと思いますけど、だとしたら汎用性はあまりなさそう。
「document.body.scrollHeight」「document.documentElement.scrollHeight」で取得できるというページも見つけました。でも、確かめてみたらChromeとIEで数値の入り方が逆になっていて、どうしたものかとひとしきり思案。こうなるとブラウザやその他バージョンによっても数値の入り方がバラバラかもしれません(調べてません)
基本的にはクロスブラウザ思考なんですが、CSSにしろJavascriptにしろ、ブラウザやバージョンの違いを判別してそれによって処理を分岐させるというような複雑なコードは、新バージョンが出るたびに不安要素を抱えるコードにもなるのであまり書きたくないんですよね。なるたけブラウザ共通で後方互換してそうな書き方をするのが好みです。
キッチリカッチリしたコードを書きたいスクリプターさんには申し訳ないんですが、ちょっとズルイ書き方で誤魔化しました。ひとまず動くようなので採用としました。
if(document.body.scrollHeight >= document.documentElement.scrollHeight){
obj.style.height=document.body.scrollHeight + "px";
}else{
obj.style.height=document.documentElement.scrollHeight + "px";
}
「document.body.scrollHeight」「document.documentElement.scrollHeight」双方のプロパティはずいぶん古いバージョンのブラウザから導入はされているようです。そして、取得したい「スクロールバーで隠れている領域の高さ」はこの2つのどちらかに必ず入っているとした場合、両方を比べて大きい方がそれに当たるわけで、ブラウザやそのバージョンを細かく調べる必要はないということになります。試しに上記のスクリプトでChrome、IE、Safari、Firefox(それぞれ2012年2月1日現時点での最新版)で動かしてみましたが、問題なく動作するようです(Operaユーザーさんごめんなさい)。旧バージョンについてはメーカーさんの後方互換に期待するものとします。とはいえ、スクロールバーが表示されていない場合も確認できたので、そこそこには使える記述かもしれません。
まあ、Javascriptを勉強したい人向けのサンプルコードにはならないちょっとズルイ書き方なんでしょうね。
お。今回のログはWEB屋らしいログになりました。でも専門的過ぎます。