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

私的良スレ書庫

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

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

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
201 : 194 - 2013/06/13(木) 09:03:39.42 ID:??? (+3,-30,-97)
(自己レス:Web上で高度な描画ができるサービス)

見つかりました! タイトルは Sketchpad です。 ttp://mudcu.be/sketchpad/

10 Best HTML5 Sketching and Drawing Tools for Designers っていうサイトに載ってました。
http://smashinghub.com/10-best-html5-sketching-and-drawing-tools-for-designers.htm
203 : Name_Not - 2013/06/13(木) 13:20:35.17 ID:??? (-11,-29,+0)
eq使え
204 : Name_Not - 2013/06/13(木) 14:48:26.95 ID:??? (+3,-30,+0)
$('.hover_white').hover(

function(){
$(this).append('<div class="div_white">'+'</div>');
this.height = $(this).height();
$(this).find('.div_white').css({height:this.height})
$('.div_white').fadeIn("slow");
},
function(){
$('.div_white').fadeOut("slow");
$('.div_white').remove();
}

);

.div_white{display:none; position:absolute; left:0; top:0; width:100%; background:#ffffff; opacity:0.5;}


マウスが乗ると半透明の白いdivがふわっとフェードインして、更にマウスアウトで
ゆっくりフェードアウトさせたいのですが、上記のコードだとフェードアウトが作動
せずに.div_whiteがいきなり消えてしまいます。
マウスアウト時にきっちりフェードアウトさせるには、どうすればいいんでしょうか?

removeの行を消してしまうと、短時間で連続してマウスオンしたときの挙動がおかしくなります・・・
205 : Name_Not - 2013/06/13(木) 14:50:44.94 ID:??? (-1,-29,-27)
fadeoutが終わってからremoveする
206 : Name_Not - 2013/06/13(木) 14:53:50.58 ID:??? (-1,-29,-15)
removeしないでstop使えばいいかもしんない
207 : Name_Not - 2013/06/13(木) 15:55:29.35 ID:??? (+3,-30,-158)
「fadeoutが終わってからremoveする」というのは、
$('.hover_white').fadeOut("slow",function(){$('.hover_white').remove();});
この書き方で合っていますか?

こうすると、一見、正常に動作しているように見えたのですが
.hover_whiteにマウスオンしたカーソルが一旦その上で動きを止めると、フェードインしたdiv_whiteが
何故か一度サッと消えてしまうようになりました。
更にそこから1pxでもカーソルを動かすと、またすぐにフェードインして現れるんですが・・・
何がいけないのでしょうか;
208 : Name_Not - 2013/06/13(木) 16:13:57.91 ID:??? (+52,+29,-1)
普通に続けて書くだけ
209 : Name_Not - 2013/06/13(木) 16:25:27.71 ID:??? (-1,-29,-23)
appendだから場合によってはclass="div_white"が複数になってる可能性が高いな
あと、フェードアウトが終わる前に再度hoverした場合は無効にする等のフラグも多分要る
210 : Name_Not - 2013/06/13(木) 16:39:26.38 ID:??? (+7,-30,-215)
度々すみません。さっき
$('.hover_white').fadeOut("slow",function(){$('.hover_white').remove();}); と書いたところを
$('.hover_white').fadeOut("slow",function(){.remove();}); にしたら、大分良い感じに動くようになりました!
div_whiteがサッと消えてしまう現象も無くなりました。後ろの$('.hover_white')が余計だったようです(?)

これで解決したかと思われたのですが、よく見るともうひとつ問題点があることを発見してしまいました
どうやらマウスアウトでフェードアウトする処理が、必ず最初のフェードインが終わりきってからでないと実行されないようです
なので、高速でマウスを乗せたり外したりを繰り返すと少し奇妙な挙動になってしまいます・・・

出来れば、マウスオンでフェードインが始まってから、その途中でマウスアウトした場合はすぐさまフェードインを中止して、
hoverの第2引数の処理へと移ってほしいのですが・・・難しいでしょうか?
211 : Name_Not - 2013/06/13(木) 16:41:03.64 ID:??? (+52,+29,-22)
>>202
動くはずだよ?ケアレスミスじゃない?
212 : Name_Not - 2013/06/13(木) 18:06:57.90 ID:??? (-1,-30,-43)
>>210
.hover_white消しちゃダメだろw

fadeIn、fadeOutする前に、$('.div_white').stop();してやってはどうか?
213 : Name_Not - 2013/06/13(木) 23:34:16.81 ID:??? (-1,-29,-26)
漢字とひらがなだけの羅列5万字を圧縮してJavaScriptのStringリテラルで書く方法教えてください
215 : Name_Not - 2013/06/14(金) 21:27:31.61 ID:??? (+27,+11,+0)
>>214
文書型宣言を書く
217 : Name_Not - 2013/06/14(金) 22:09:30.40 ID:??? (+10,+28,-45)
>>216
jQueryちゃんと勉強しな
てかリファレンスくらい読みなよ
218 : Name_Not - 2013/06/14(金) 22:10:31.01 ID:??? (-4,-30,-37)
$(function() {
while(216==fool){
alert("馬鹿には無理");
}
});
220 : Name_Not - 2013/06/14(金) 22:26:54.74 ID:??? (+5,-29,-8)
$(".class").text("こうだろが馬鹿野郎");
221 : Name_Not - 2013/06/14(金) 22:28:03.80 ID:??? (+10,-30,-40)
ちなみにそのまま書いたらjs実行時にclassは存在しないから変化しないけどな
$(document).ready(function(){
$(".class").text("こうだろが馬鹿野郎");
});
222 : Name_Not - 2013/06/14(金) 22:40:26.90 ID:??? (+10,-19,-2)
>>220
>>221
ありがとうございました。

.textは読み取り専用なんですか・・・
223 : Name_Not - 2013/06/14(金) 22:46:53.65 ID:??? (+37,+29,-64)
なんかサイト新規オープンのサイトの不具合修正とかの案件受けてても>>216みたいに中途半端なjquery読み込まれてる事があるんだけど何なんだよ
224 : Name_Not - 2013/06/14(金) 23:18:11.17 ID:??? (+3,-29,-122)
ブラウザがHTMLをダウンロード → jQueryで操作(たとえば要素を消す) → ブラウザの見ているHTMLからも要素が消える


このとき、ブラウザから右クリックでHTMLのソースを見てもその要素は残っているのですが、
これはブラウザがローカルにダウンロードしたHTMLはそのままになっているだけで
メモリの中のHTMLは変更されたということですか?
225 : Name_Not - 2013/06/14(金) 23:19:44.56 ID:??? (-1,-29,-52)
innerHTMLが変更された
ブラウザの開発者用のツールで見てみろ
firebugとかOpera dragonflyとか
226 : Name_Not - 2013/06/15(土) 06:25:45.32 ID:??? (+57,+29,-32)
リファレンスが見当たらないんですが。
オフラインで見れるやつ。
227 : Name_Not - 2013/06/15(土) 13:54:29.65 ID:??? (+39,-30,-119)
for文のなかでインクリメントしながらsetIntervalで関数を実行しているのですが、
インクリメントが終了した状態のあた値のみが関数に渡ってしまうのですがなぜでしょうか?

for(i = 0; i < num; i++) {
  a_data = a[i];
setInterval("func()",1000);
}

function func(){
document.getElementById("hello").innerHTML += "あ";
}

---実際出力される結果----
あ × num数
↓1秒後
あ × num数

---出力して欲しい結果----

↓1秒後
228 : Name_Not - 2013/06/15(土) 14:02:09.75 ID:??? (+52,+29,-16)
てか、めちゃくちゃなコードだなw
229 : Name_Not - 2013/06/15(土) 14:13:16.56 ID:??? (-1,-29,-11)
>>227
a_data とか a[i] とかには何の意味があるの?
あと、期待する結果が意味不明なんだが、変化しないってこと?
230 : Name_Not - 2013/06/15(土) 20:55:29.08 ID:??? (+3,-30,-183)
Web Workers って、他ブラウザとのやり取り出来なかったっけ?
ブラウザのタブ間でのやり取りは出来たんだが・・・
それとも、書いたコードのどこか間違ってるかな。

// main.js
var worker = new SharedWorker('worker.js');
worker.port.onmessage = function (e) {
console.log(e.data);
};
worker.port.start();
worker.port.postMessage('ハロー');

// worker.js
var ports = [];
onconnect = function (e) {
var port = e.ports[0];
port.onmessage = function (e) {
ports
.forEach(function (port) {
// すべてのポートにメッセージを送信
port.postMessage(e.data);
});
};
ports.push(port);
};
231 : Name_Not - 2013/06/15(土) 21:54:16.52 ID:??? (+61,+27,-33)
>>227
func()を文字列で書いたら呼び出された時点(1秒後)には
forループはすべて実行し終わっているだろ。途中に値を保持したいなら
まずはクーロジャの勉強をしてこい。話はその後だな。
233 : Name_Not - 2013/06/15(土) 23:16:12.12 ID:??? (+2,-30,-14)
処理系がES5対応だったら A.map(function(x){return x.B;}).join('') かな。試してないけど。
234 : Name_Not - 2013/06/16(日) 00:29:40.69 ID:??? (-1,-29,-10)
>>233
ありがとうございます
とりあえず

var 変数

A.forEach(function(a) { 変数 += a.B });


としました
235 : Name_Not - 2013/06/16(日) 22:58:17.36 ID:??? (+87,+26,-8)
javascriptでブラウザ内の時間の進み方を遅くする
とかできるんですか?
236 : Name_Not - 2013/06/16(日) 22:59:45.69 ID:??? (+68,+28,+0)
>>235
できない。できたらマズい。
237 : Name_Not - 2013/06/17(月) 00:28:55.95 ID:??? (+7,-30,-104)
document.getElementById("nm").onclick=function(){bullet();}
document.getElementById("nm").onclick=function(){bullet2();}
ってやるとonclickイベントって上書きれて、関数bullet2のみ実行
ってなるようなのですが、上書きされないようにするって可能でしょか?
238 : Name_Not - 2013/06/17(月) 03:53:50.01 ID:??? (+69,-30,+0)
var FeedReader = function (feedUrl) {
 this.initialize.apply(this, arguments);
}

FeedReader.prototype = {
 initialize: function(feedUrl) {
  this.feedUrl = feedUrl;
  this.entries = [];
 },
 collect : function() {
  var feed = new google.feeds.Feed(this.feedUrl);
  
  feed.setResultFormat(google.feeds.Feed.JSON_FORMAT);
  feed.setNumEntries(100);
  
  feed.load(function(result)){
   if(!result.error) {
    // result.feed.entriesは配列でcloneメソッドは実装済みとする
    this.entries = result.feed.entries.clone();
    console.log(this.entries.length); // *1
   }
  }
 },
 logging : function() {
  console.log(this.entries.length); // *2
 }
}
239 : 238 - 2013/06/17(月) 03:55:57.85 ID:??? (+3,-30,-229)
(続き)

var fd = new FeedReader('http://...');
fd.collect(); fd.logging();

もう数時間嵌まって抜け出せないんだけど、上の例を解決できる人いますか?
関数内の関数でthis.変数(this.entries)を参照できなくて、this.entriesがundefinedになります。
this.entriesを止めて
var FeedReader = function (feedUrl) {
 var entries = [];
 this.initialize.apply(this, arguments);
}
にすると*1で、console.log(entries.length);とするとエントリー数を取得できますが、*2では0になってしまいます。
クロージャーの問題なのかなと考えてますがthis使いつつ上手く回避する方法を知ってる方是非教えて下さい。
お願いします。
240 : Name_Not - 2013/06/17(月) 04:28:53.69 ID:??? (+12,-30,-50)
>>238
collect:function(){...}の最初あたりにvar that=this;を追加して、
collect:function(){...}の中の無名関数内の二つのthis.entriesをthat.entriesへ変更
242 : 238 - 2013/06/17(月) 08:57:53.32 ID:??? (+8,-29,-75)
>>240
ありがとうございます。
無事参照できました。

しかしながら、entriesは0になってしまいます。
どうもfeed.loadが非同期になるからみたいです。
collect関数内での処理が終わるまで待つみたいな実装は無理なんでしょうか・・・。
JQUERYのDeferredとか使ってコールバック関数を記述するしかないんだろうかねえ。
243 : Name_Not - 2013/06/17(月) 08:59:10.16 ID:??? (-1,-30,-52)
>>237
onclickに代入だったら上書きで当然。追加して行きたい場合は
addEventListener()とかを使う。あとは自力で調べられるでしょ。
244 : Name_Not - 2013/06/17(月) 10:29:00.28 ID:??? (+5,-29,-19)
>>242
取得後の処理のための関数をcollect()へ渡すようにしてもいいし
collect()がPromiseを返すようにしてもいいし好きにすればいい
246 : 238 - 2013/06/18(火) 02:58:19.13 ID:??? (+7,-30,-133)
>>244

Deffered実装した関数オブジェクト作って$when(...).then(...)
しても非同期処理はそこで一旦待ってくれないんだな。
先に*2で0になってからthen(...)が実行される。
SetTimeoutで関数の実行を送らせてやるとちゃんと取得できるのでタイミングの問題だなぁ。

> 取得後の処理のための関数をcollect()へ渡すようにしてもいいし
のように、手っ取り早いのはコールバック関数を渡すしかないね。

因みに実装はほぼこれと同一にしてみたが駄目だった。
http://gurimmer.lolipop.jp/daihakken/2012/05/31/javascriptjquerygoogle-feed-api%E3%81%A8defferd%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/
247 : Name_Not - 2013/06/18(火) 03:09:00.82 ID:??? (+5,-30,-36)
>>246
普通、Deffered使うなら*2の処理をthenに登録するだろ
fd.collect().then(functinon(){fd.logging();});
248 : Name_Not - 2013/06/18(火) 03:20:01.49 ID:??? (-11,-29,-69)
>>245
Testをコンストラクターとして使うならhogeはコンストラクターのローカル変数
コンストラクター内と、コンストラクター内で定義された関数からしかアクセスできんよ
250 : Name_Not - 2013/06/18(火) 16:47:41.68 ID:??? (-1,-29,-30)
aaa("target")とかにしてやれば?

んで、htmlがへん
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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