+ JavaScript の質問用スレッド vol.81 +
ページ内クリックしたら目的の場所に移動に移動させるために 飛びたい場所にname="#hoge"とつけてhrefで飛びますが この飛ぶときに一気に飛ぶのではなく ビジュアル効果で徐々にそこに向かって縦方向の高速marqueeみたいな感じで移動してるページがあります あれをやりたいのですが技術的にどうやればいいのでしょうか?
それ見てる方はえらい迷惑。lightboxみたいなもんだよ >1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
>>1 に書いてるユーザに迷惑ってのはそういう意味じゃないんだが
ブラクラとかウイルス踏ませたりとかそっち方面ね
ただビジュアル的にウザイとかじゃなくて危害があるもの
実際にそういうページがあるならそこを参考にしろよw
>>955 今までそういう意味の迷惑で取られてるよ
過去ログ読もうね
958 :
953 :2010/12/10(金) 03:35:18 ID:???
>>954 別に実際に使うわけではありません
技術情報を知りたかっただけです
スクロールバーがでてる状態で下のほうの位置情報をとってると思うので
なんかそういうのをとるプロパティがあるのかなぁと思ったので聞きました
>>956 おっしゃるとおりなのですがwikiのページでして
ソース量が多すぎて苦戦しています
簡素化したようなものを見つけてそこを参考にしようと思います
フリースペースでは画像だけを表示することを禁止(つまり広告の無いページは違反) してるところもあるからlightboxは結構便利だぞ スクロールのアニメーションも1秒以内なら許容範囲 JSで飛ぶ場合には逆にアニメーションが無いと混乱するからな(戻るボタンで戻ろうとする)
960 :
953 :2010/12/10(金) 03:51:18 ID:???
一応座標系を調べてるうちに DOM座標はgetBoundingClientRect()で取得できることがわかりました var elm = document.getElementById('hoge'); alert(elm.getBoundingClientRect().top); スクロールしてるページがこのプロパティを使用しているかは不明ですが DOMの座標を取得できることがわかったので自己解決ということにします
jqueryでそこらへんのプラグインなかったっけ?
技術情報が知りたいのにフレームワークを勧めてどうする まぁソース見れば参考になるだろうが目的のもの探すには時間かかるだろうな ちなみにprototype.jsだとElement.scrollTo(element)で簡単にできる
今回はテンプレ議論しなくていいの?
>>1 に次スレ立てる人指定して欲しいんだが
lightboxが迷惑とかそりゃないだろ・・・ ユーザビリティ考えられて作られたものなのに 迷惑かどうかを感じるのは人それぞれだけど 俺に言わせれば新タブやら新ウインドウ開いて画像表示されるほうがむしろ迷惑だわ そんな画像マジマジとみないだろ?ちょっと拡大してフーンで閉じておしまい そんならワンクリックのほうが断然いいわ
エフェクトとかアニメーションとかビジュアル効果とかきくと 脊椎反射的に迷惑と考えるアホウがいるからな ユーザビリティなんていったって理解できないだろ
そうだよな ユーザビリティ考えるならJavaScriptなんてOFFだよな
あほばっかw
>>966 ユーザビリティが何か勉強してこい
JavaScript OFFが一番親切じゃない
969 :
Name_Not_Found :2010/12/10(金) 11:01:06 ID:jWxNBfYs
a.x と、 b.x の値を全く同じにするにはどのようにしたらよいのでしょうか? a.x = 1; とすると b.x もそうなってる、といったシンボリックリンクみたいな感じなのですが、宜しくお願いします。
Firefoxでalertを無限ループさせてしまいました 他のタブを閉じたくないのですが ブラウザを強制終了させる以外に何か方法はありませんか? ブラウザスレで聞くべきだとは思うのですが こちらのほうがデバッグ中同じ経験にあわれた方もいると思うので どなたかわかる方お願いします
ソースコードを書きなおす→リロード なら割り込めた気がする
>>969 同じオブジェクトを指すようにしたらどうだ
a.x = b.x = { val: 0 };
a.x.val = 1;
ユーザビリティを考えたlightboxならいいけど、自己満足なだけのページが多いからな flashにしたって同じ事
974 :
Name_Not_Found :2010/12/10(金) 13:00:29 ID:jWxNBfYs
>>972 そうなんですけど、基本型?Atomic?のリンクみたいな事ができると面白いなと思って。
>>972 みたいな単純なことじゃなかったか。。。
すまん、意味がわからん
976 :
Name_Not_Found :2010/12/10(金) 13:43:25 ID:jWxNBfYs
こういうやり方で一方通行のは出来るんですけど、 function A(){ this.x=null; } function B(){}; var a = new A(); B.prototype = a; var b = new B(); a.x=1; alert([ a.x, b.x ].join(',')); a.x=2; alert([ a.x, b.x ].join(',')); a.x=3; alert([ a.x, b.x ].join(','));
977 :
Name_Not_Found :2010/12/10(金) 13:44:20 ID:jWxNBfYs
ただ、今回やりたいのが、b を作った後の処理で a を作る必要があるのでこの方法が取れなくて。 インスタンスの prototype を動的に変えられるといいんですけど・・。
978 :
Name_Not_Found :2010/12/10(金) 14:44:57 ID:8tOixelJ
セッターやらゲッターやらでやれば
>>976 なんとなくやりたいことはわかったけど、継承を利用したいなら
チェーン(prototype参照)が切れちゃうから、インスタンスにプロパティxを作ってはダメ。
プロパティxは参照のみ。書き換えはメソッドを通すとか工夫が必要。
var Base = new Function;
Base.prototype.x = 0;
Base.prototype.reWriteX = function(n) {
Base.prototype.x = n;
};
var A = new Function;
var B = new Function;
A.prototype = B.prototype = new Base;
A.prototype.constructor = A;
B.prototype.constructor = B;
var a = new A;
var b = new B;
a.reWriteX(1); alert([ a.x, b.x ]);
b.reWriteX(2); alert([ a.x, b.x ]);
テンプレ論議全然できませんでした。出先で今立てられません。 どなたかテンプレ同じで立ててくださいー。(スレ立て人)
規制されてなかったら俺が建てる
建てられなかった…すまん
983 :
Name_Not_Found :2010/12/10(金) 15:44:02 ID:8tOixelJ
よしがんばれ 駄目だったら俺がやるわ
984 :
Name_Not_Found :2010/12/10(金) 15:51:41 ID:8tOixelJ
986 :
Name_Not_Found :2010/12/10(金) 21:07:05 ID:jWxNBfYs
>>979 コードまでありがとう御座います。検討したいと思います。
>>927 です。また質問があります。
rowSpanがあるテーブルの列をクリックしたときに、
その列の数を数える方法を教えてください
1 2 3
5
7 8
空白になっている部分がrowSpanです
7をクリックしたら2、
3をクリックしたら1を取得したいです。
>その列の数を その列の行の数じゃねーの
プロンプトを出して、ユーザに数えてもらうのが一番楽じゃないかな。
htmlに埋め込んでおけばいいと思うよ。
とりあえずhtml出してくれ
そしたら値を埋め込んでやるから。
<table border="1"> <tr><td>1</td><td>2</td><td>3</td></tr> <tr><td colspan="3">5</td></tr> <tr><td>7</td><td colspan="2">8</td></tr> </table> <hr> <table border="1"> <tr><td>1</td><td>2</td><td>3</td></tr> <tr><td></td><td>5</td><td></td></tr> <tr><td>7</td><td>8</td><td></td></tr> </table> 上か下かハッキリしてくれ
上のほうのhtml間違ってた <table border="1"> <tr><td rowspan="2">1</td><td>2</td><td>3</td></tr> <tr><td colspan="2">5</td></tr> <tr><td>7</td><td colspan="2">8</td></tr> </table> こうか? まぁこんな感じでテーブルのデータ出してくれ
995 :
987 :2010/12/11(土) 12:59:33 ID:2b6nLnHO
<table border="1"> <tr><td rowspan="2" bgcolor="red">1</td><td>2</td><td rowspan="3" bgcolor="red">3</td></tr> <tr><td>5</td></tr> <tr><td bgcolor="red">7</td><td>8</td></tr> </table> <script language="javascript"> var table = document.getElementsByTagName('table')[0]; var td = document.getElementsByTagName('td'); for (i=0; i<td.length; i++) { td[i].onclick = function() { for (j=0; j<table.rows.length; j++) { //alert(table.rows[this.cellIndex].cells.length); } } } </script> みなさんありがとうございます こんな感じで赤い部分の数を縦に数えたいのですがうまくできません。 1と7をクリックすると2、 3をクリックすると1がかえってくるようにしたいです よろしくおねがいします
個人的にはデータ配列を用意してHTMLは変更せずになんとかする
ゴミクズ埋め
999 :
987 :2010/12/11(土) 13:39:01 ID:2b6nLnHO
次スレで同じ質問してもいいですか?
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。