のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,434,803人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.78 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
752 : Name_Not - 2010/06/13(日) 00:25:09 ID:??? (+48,+20,-20)
フルブラウザ用に即席で単純なbookmarkletを作ったことあるけど
あのダイヤル入力でサクサクは無理だった
753 : Name_Not - 2010/06/13(日) 00:47:30 ID:??? (-4,-29,-1)
>>751
色ごとにbeginPathが必要
755 : Name_Not - 2010/06/13(日) 01:11:35 ID:??? (+22,-30,-37)
>>754
var self = this;
req.send(function(){
alert(self.name)});
}}
756 : Name_Not - 2010/06/13(日) 01:23:33 ID:??? (+57,+29,-6)
一日ずーといじってたら、何をどうして良いのか分からなくなって仕事がすっかり止まってしまった
757 : 751 - 2010/06/13(日) 01:36:04 ID:??? (+2,-30,-192)
>>753
レス有難うございます。beginPathを含めましたが、今度は線そのものが出なくなりました。
Googleで調べましたが、面内のグラデーション記述はありましたが、線の色変更は見つかりませんでした。
下記が試したコードです。

context0.moveTo(0, 0)
context0.lineWidth = 5;

var x = 10;
var dx = 1;
var iroX;

function draw() {
x += dx;
y += dy;
iroX="#9999"+x.toString(16);
//
context0.beginPath();
context0.strokeStyle = iroX;
context0.lineTo(x, y);
context0.closePath();
context0.stroke();
}

function startDraw() {
timerID=setInterval(draw, 20);//繰り返す
}

再度間違いをご指摘頂けないでしょうか?
758 : Name_Not - 2010/06/13(日) 01:43:49 ID:??? (+4,-30,-27)
context0.beginPath();
context0.moveTo(0, 0);
759 : Name_Not - 2010/06/13(日) 01:44:29 ID:??? (+60,+29,-27)
>>755
有り難うございます。
思った通りの動作をしました。
760 : 751&757 - 2010/06/13(日) 02:07:37 ID:??? (+7,-30,-48)
>>758
すいません、変更箇所は

context0.beginPath();をcontext0.moveTo(0, 0); の前に置くだけなのでしょうか?
変化がありませんが・・・

HTML全体をTxtでUpしました。
http://uproda11.2ch-library.com/247176oLw/11247176.txt
761 : Name_Not - 2010/06/13(日) 04:22:24 ID:??? (+39,-29,-22)
>>760
draw内の
beginPathとlintToの間にmoveToでアンカーを初期化しないとあかん
762 : Name_Not - 2010/06/13(日) 04:27:08 ID:??? (+11,-30,-99)
てか、
var grad = ctx.createLinearGradient(0, 0, WIDTH,0);
grad.addColorStop(0,'#999900');
grad.addColorStop(1,'#9999ff');
ctx.strokeStyle = grad;
ってしておいて、setIntervalのなかで
ctx.lineTo(x, y);
ctx.stroke();
だけでいけるよ
yの初期化忘れないようにね
763 : Name_Not - 2010/06/13(日) 06:01:25 ID:??? (+113,+29,-23)
>747
>748
>749
>750
ありがとうごさいます
友達に携帯でもJavaScriptが使えるiswebというサイトを教えてもらいました
作れたらまた書き込みます
764 : Name_Not - 2010/06/13(日) 06:15:01 ID:??? (+72,+29,-20)
>>763
お前は何を言っているんだ
てか、JSに関係ないことは書かなくていいから
765 : Name_Not - 2010/06/13(日) 06:23:58 ID:??? (+50,+29,-66)
あんま中学生いじめてやるなよ
書籍かえばノートにでも考えながら書いて
いざパソコンを触る機会があったら
コードをうつして実行してみればよい
昔の人は机上デバッグで本当にそんなことやってたらしいよ
766 : 751&757& - 2010/06/13(日) 11:11:03 ID:??? (+61,+29,-1)
>>761-762
さんくすですう。
試してみます。
767 : 751&757& - 2010/06/13(日) 12:08:09 ID:??? (+7,-30,-194)
>>761-762
できました。下記が試した記述です。

var x = 0;
var y = 0;
var dx = 1;
var dy = 1;
var iroX;

context0.lineWidth = 5;
function draw() {
context0.beginPath();
context0.moveTo(x, y)
x += dx;
y += dy;
iroX="#9999"+(x+16).toString(16);
// (x+16)で色の補正。これが無いと黒から始まってしまう。
context0.strokeStyle = iroX;
context0.lineTo(x, y);
context0.closePath();
context0.stroke();
}

なお、今回の線描画は最終的には直線でなく関数の曲線で行いたい
ので>>762さんの方法は適用できません。
768 : Name_Not - 2010/06/13(日) 12:26:51 ID:??? (+8,-30,-31)
canvasで作成された画像のみが表示されているhtmlがあるのですけど、
このhtmlを<img src="hoge.html">みたいな感じにできないでしょうか?
769 : Name_Not - 2010/06/13(日) 12:30:13 ID:??? (+34,-24,-11)
そこはiframeだべ
770 : 768 - 2010/06/13(日) 12:35:35 ID:??? (+67,+30,-151)
>>769
やっぱそうしないとだめですか。
サーバ側のでードから画像を生成するプログラムなんかは、
HTTPヘッダでContent-typeを指定すればブラウザで画像として扱われるのですが、
JavaScriptはクライアントサイドですし、
canvasはそもそもそれら画像生成プログラムとは根本的に仕組みが違う気がするので、
無理なのかなぁとは思ってました。
どうもレスありがとうございました。他の方法でページにうまく組み入れることにします。

それより地震だよ結構長く揺れてるよコワイヨママン
772 : Name_Not - 2010/06/13(日) 12:44:26 ID:??? (+31,-27,-4)
onload使うのを止めても同じ結果?
773 : Name_Not - 2010/06/13(日) 12:58:44 ID:??? (+13,-30,-123)
javascriptで
function test(x,y,z){
}
という関数を作って
test()と引数を入れないでもエラーが出ることなく動作します
xは必須でyとzはオプションにしたい場合
function test(x,y,z){
 if(!x) {
  return;
 }
}
といった感じで実装しないといけないのでしょうか?

それとyとzは指定しなかった場合デフォルトでとある値を使いたいので某言語風に
function test(x,y=1,z=2){
 var yy=y;
 var zz=z;
}
のような書き方をしたのですが動きませんでした
この場合
function test(x,y,z){
 var yy=y;
 var zz=z;
 if(!y){
  yy=1;
 }
 if(!z){
  zz=2;
 }
}
と書くしかないのでしょうか?よろしくお願いします。
774 : Name_Not - 2010/06/13(日) 13:11:14 ID:??? (+55,+28,+0)
>>772
うーん、変りません。
775 : Name_Not - 2010/06/13(日) 13:16:21 ID:??? (+34,-30,-26)
function test(x,y,z){
 if(typeof x != 'undefined') {
y = y || 1;
z = z || 2;
処理
 }
}
776 : Name_Not - 2010/06/13(日) 13:19:08 ID:??? (+9,-30,-260)
>某言語風に
トライ&エラーも大切だけどそのぐらいはリファレンスで済まそうぜ

false扱いの引数を無視していい場合
if (!x) throw "arguments error";
y = y || "default";

厳密にチェックしたいなら
if (arguments.length < 1) throw "arguments error"; // 最低1個

switch (argument.length) {
case 0: throw "arguments error";
case 1: y = "default";
case 2: z = 0;
}
777 : 773 - 2010/06/13(日) 13:32:01 ID:??? (+72,+29,-55)
>>775-776
レスありがとうございます
本質的には同じような感じに処理しないといけないんですね
throwはどこに投げてるのか分かりませんがこういう書き方もできるんですね
その辺も含めてわからないことが多いので
ご指摘通り>>1にあるMozillaのリファレンスをじっくり読んでみたいと思います
778 : Name_Not - 2010/06/13(日) 13:39:19 ID:??? (+50,-30,-25)
>>776
重箱だけど、 throw "文字列" はIEでエラーになるよ
エラーが起これば良いわけだから動作的にはあんまり問題ないけど
正しくエラーを投げるには throw new Error("文字列");
779 : Name_Not - 2010/06/13(日) 17:04:00 ID:??? (-1,-29,-8)
FirefoxとIE6では問題なかったからそれでいいと思ってた> throw "hogehoge";
780 : Name_Not - 2010/06/13(日) 19:18:02 ID:??? (+9,-29,-49)
>>777
強いて言えばエラーコンソールに

>>778
知らなかったthx
IE8で試してみたら、catchする分には問題がないけど
エラーメッセージとして投げるにはErrorオブジェクトの必要があるみたい
781 : Name_Not - 2010/06/13(日) 21:16:50 ID:??? (-2,-30,-20)
If Crockford catches an error, he roundhouse kicks it again.
782 : Name_Not - 2010/06/13(日) 23:51:08 ID:??? (+76,+30,-59)
>>778
それって↓で説明されてる件?
http://d.hatena.ne.jp/uupaa/20100127/1264566103

JavaScriptで明示的に例外投げさせる場面って、設計にもよるけどそう頻繁にあるわけじゃないからな・・・
そもそも「例外?なにそれおいしいの?」って輩が多くて泣ける(実体験)
783 : Name_Not - 2010/06/13(日) 23:57:52 ID:??? (+19,-30,-205)
*** JS **************************
var skip;
$("#box").click(function(){
skip = 0;
$("#box a").click(function() {
skip = 1;
});
if (skip == 0) {
alert ("box selected");
}
});

*** HTML **************************
<div id="box" style="width:100px;height:100px;">
<a href="">link</a>
</div>

************************************
jQuery 1.3.2です。
100x100のDIVボックスがあり、ボックス内をクリックすると「box selected」とメッセージを出します。
しかし、Aリンクをクリックした場合は表示しないようにしたいのですが、上手く動作しません。
784 : Name_Not - 2010/06/14(月) 00:13:39 ID:??? (+17,-29,-55)
>>783
.clickの指定からしておかしいな。それはboxがくりっくされたときにaのonclickにつけてないか?
aがクリックされたらイベントの伝播を止めればいけるはず。ぐぐれば山ほど情報が出てくるよ。
785 : Name_Not - 2010/06/14(月) 00:16:27 ID:??? (+17,-30,-72)
var skip = 0;
$("#box").click(function(){
if (skip == 0) {
alert ("box selected");
}
skip = 0;
});
$("#box a").mousedown(function(){
skip = 1;
});

こうだな
786 : Name_Not - 2010/06/14(月) 00:19:35 ID:??? (+50,-30,-238)
>>784が答えてるが補足。
http://semooh.jp/jquery/cont/doc/event/

要素が重なってるので、clickイベントが上の要素下の要素、
つまりaタグからdivタグへと順に伝播(バブリング)してゆく。
aタグのclickイベントの中で return false とするか、
Eventオブジェクトの stopPropagation() 等を呼んでやればいい。

>>782
テキストフォームの値をバリデーション関数に渡して
エラーだったらalertを出して処理中止、そうでなければ続行、
なんていうときにこう書いたり……しない?
try {
 バリデーション関数(xxx);
} catch(message) {
 alert(message);
 return false;
}
787 : Name_Not - 2010/06/14(月) 00:27:35 ID:??? (-1,-29,-52)
void型の関数の場合、無名関数を使って、
プロパティのように呼ぶことも可能ですが、
()を省略したいがために、
無名関数を使うのはやめたほうがいいですよね?
788 : Name_Not - 2010/06/14(月) 00:33:49 ID:??? (+53,+25,-3)
なにを勘違いしたのかわからんが関数実行に()は不可欠
789 : Name_Not - 2010/06/14(月) 00:55:20 ID:??? (+57,+29,-14)
すみません無名関数を何か勘違いしていたようです
790 : 783 - 2010/06/14(月) 01:09:11 ID:??? (+6,-29,-51)
>>784
>>785
>>786
ありがとう!
重なると伝播するんだな…
aタグのclickイベントの中で return false とすると、
今度はaタグのリンクが機能しなくなってしまうので、
>>785さんの方法で希望する動作になりました。
791 : Name_Not - 2010/06/14(月) 02:05:09 ID:??? (+3,-30,-151)
jQueryのanimateについてです。
変数ABCの中の数字をbackgroundPositionに入れる場合

$("#Contents").stop().animate({
backgroundPosition : ABC+"px 0" },
'slow','swing');

とすれば背景の横の位置にはABCの値が入りますが
縦の位置に入れたい場合どうすればよいのでしょうか?

おしえてください。
792 : Name_Not - 2010/06/14(月) 02:39:38 ID:??? (+19,-29,-20)
>ABC+"px 0"
自分で答え書いてないか?
何か勘違いしてる?
793 : Name_Not - 2010/06/14(月) 02:58:05 ID:??? (+75,+26,-13)
コピペか?
まあそんなのはどうでもいいけど
pxのうしろの0はなんなの?
794 : Name_Not - 2010/06/14(月) 03:28:47 ID:??? (+40,+0,-119)
>>792
上の例の場合
水平がABC 垂直位置が0
になってしまいます。
これを逆にしたいのです。

>>793
コピペではないです。
>pxのうしろの0はなんなの?
背景の垂直の位置です。
これがないと水平位置ABC 垂直位置50%になってしまいます。
795 : Name_Not - 2010/06/14(月) 03:31:25 ID:??? (+58,+26,-20)
逆にしたいならABCと0を逆にしたらいいじゃないのさ
796 : Name_Not - 2010/06/14(月) 06:08:11 ID:??? (+62,-30,-29)
>763です
無事使えましたが質問があります
document.write("テスト")
はiモードとフルブラウザ両方で動いたのですが
alert("テスト")
がiモードだけ動きません
どうしてなのでしょうか
797 : Name_Not - 2010/06/14(月) 06:13:14 ID:??? (+64,+29,-21)
>>796
セキュリティの関係で無効化されてるだけ
iモードがしょぼいとしか言いようがない
フルブラウザでそのまま開発して下さい
798 : Name_Not - 2010/06/14(月) 06:31:42 ID:??? (+76,-30,-27)
>>795
ためしに
backgroundPosition : "0px menuTop+px"
としましたが動かないです。

逆にしたい場合どう記述すれば良いでしょうか?

799 : Name_Not - 2010/06/14(月) 07:02:14 ID:??? (+33,-30,-16)
alert("0px menuTop+px")
800 : Name_Not - 2010/06/14(月) 07:22:21 ID:??? (+99,+28,-8)
>>786
バリデーション関数は例外前提で作らないだろ…
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について