2007/10/11

Java スクロール

ヘッダーに定義
例えば
<script src="js/scroll_top.js" type="text/javascript"></script>
<a href="javascript:void(0);" onclick="scroller(0,0,100);return false;" onfocus="if(this.blur)this.blur()">▲</a>


ソースもついでに貼っとこう
// 現在のスクロール量を取得(汎用)
function getScroll(){
var x, y ;
if( document.all !== void 0 ){
x = document.body.scrollLeft ;
y = document.body.scrollTop ;
}else if( document.layers !== void 0 ){
x = window.pageXOffset ;
y = window.pageYOffset ;
}else{
x = window.scrollX ;
y = window.scrollY ;
}
return { x : x, y : y };
}

// スクロール始めのスクロール量
var SCROLL ;
var divCountScroller = 15 ; // 分割数(何段階でスクロールするか)

// 現在のスクロール位置から、指定座標(x,y)までスクロールします
// edging は加減速を決めるパラメータで -100〜100 で指定します
// 小さい程加速、大きいほど減速、0のとき等速です
// 最初の呼び出し時、count は指定する必要はありません。
function scroller( x, y, edging, count ){

if( count === void 0 ){
count = 0 ;
SCROLL = getScroll();
}

if( count++ < divCountScroller ){
var c = count/divCountScroller ;
var nx = SCROLL.x+( x-SCROLL.x )*( c+edging/(100*Math.PI)*Math.sin( Math.PI*c ) );
var ny = SCROLL.y+( y-SCROLL.y )*( c+edging/(100*Math.PI)*Math.sin( Math.PI*c ) );
window.scrollTo( nx, ny );
setTimeout( "scroller("+x+","+y+","+edging+","+count+");", 50); // 再描画時間 10[msec] 小さい程早い
}
}

2007/10/09

エラーページ

この概要は表示できません。投稿を閲覧するには ここをクリック してください。

2007/10/04

サイトメンテナンス

mod_rewriteを使ってサイトのアクセスを制限します。
.htaccessに以下のように書くと、.htaccessを置いたディレクトリ以下にはブラウザからアクセスできなくなり、代わりに『x.html』というファイルの内容が表示されることになります。
x.htmlには、『サイトメンテナンス中です』とか他のページへのリンクを入れておくと親切。

RewriteEngine on
RewriteBase /
RewriteRule .* x.html

2007/10/03

画像の直リンク

アクセス解析を見ているといろいろ解る。が、、
データは送ってるけどページビューが無い、
リンクを辿ると、画像の無断使用!!

常識的にむかつきます。
対策として、、

cgiを通すか、apacheの機能を使うか?cgiは重くなりそうなので
apacheの機能を使う事にする。

まずバージョンは1.3.13以降でないと使えないのでバージョンを確認。
htaccess書類を作ってftpでアップ後リネーム。
以下は内容。
SetEnvIfNoCase Referer "^http://www.yourdomain.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://www.yourdomain.com$" locally_linked=1
SetEnvIfNoCase Referer "^http://yourdomain.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://yourdomain.com$" locally_linked=1
SetEnvIfNoCase Referer "^$" locally_linked=1

Order Allow,Deny
Allow from env=locally_linked


サブドメインについて
SetEnvIfNoCase Referer "^http://www.account.yourdomain.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://www.account.yourdomain.com$" locally_linked=1
SetEnvIfNoCase Referer "^http://account.yourdomain.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://account.yourdomain.com$" locally_linked=1
SetEnvIfNoCase Referer "^$" locally_linked=1

Order Allow,Deny
Allow from env=locally_linked


*htaccess書類は、最後に改行を入れる事!
サブドメインについて、詳しくは借りてるサーバに問い合わせること。

2007/09/29

検索対策

googleなどの検索エンジンでは、動的ページはリスティングされないそうなので
.htaccessを使ってmod_rewriteを記述してルールを設定すれば静的ページとして表示されます。

読んで字のごとくRewriteEngineを起動させます。
RewriteEngine on
RewriteRule 『...』
以降にルールを設定して、〜.htmlとか入れておけば
htmlで作った風なアドレスになります。

2007/09/08

cssでロールオーバー

Javaでのロールオーバーも簡単なのですが、ヘッダーと分離していて面倒なので
メニューの部分をcssのロールオーバーで書いてみた。

リンクする所のバックグラウンドに画像(menu_a.gif)を敷いて上から文字を入れる。
枠の端から文字が近いので、text-indentで調整。

div#contentsleft dd.icon a:link{
display:block;
width:200px;
color:#333333;
text-indent: 12px;
background:url(../images/menu_a.gif) no-repeat;
height:30px;
line-height:30px;
text-decoration:none;
}

ポインタを乗せると(hover)バックグラウンドの画像が入れ替わり(menu_hover.gif)
バックグラウンドの画像は濃い青なので文字の色も白に変わるようにします。

div#contentsleft dd.icon a:hover{
color:white;
background:url(../images/menu_hover.gif) no-repeat;
}


訪問後の画像も変えることが出来ますがあえてそのままで。
文字の色だけ変えても良かったかも?

div#contentsleft dd.icon a:visited{
display:block;
width:200px;
color:#333333;
text-indent: 12px;
background:url(../images/menu_a.gif) no-repeat;
height:30px;
line-height:30px;
text-decoration:none;
}

SmartyでJavaScriptを使う

テンプレートエンジンであるsmartyを使ってみる、
javascriptなどでロールオーバーを作成すると
<script>〜</script>の所でエラーが出る。

ここはsmartyに解釈させないように
<script>〜</script>を{literal}{/literal}で括ると回避される。