私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.106 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
(自己レス: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
見つかりました! タイトルは 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
$('.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の行を消してしまうと、短時間で連続してマウスオンしたときの挙動がおかしくなります・・・
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の行を消してしまうと、短時間で連続してマウスオンしたときの挙動がおかしくなります・・・
「fadeoutが終わってからremoveする」というのは、
$('.hover_white').fadeOut("slow",function(){$('.hover_white').remove();});
この書き方で合っていますか?
こうすると、一見、正常に動作しているように見えたのですが
.hover_whiteにマウスオンしたカーソルが一旦その上で動きを止めると、フェードインしたdiv_whiteが
何故か一度サッと消えてしまうようになりました。
更にそこから1pxでもカーソルを動かすと、またすぐにフェードインして現れるんですが・・・
何がいけないのでしょうか;
$('.hover_white').fadeOut("slow",function(){$('.hover_white').remove();});
この書き方で合っていますか?
こうすると、一見、正常に動作しているように見えたのですが
.hover_whiteにマウスオンしたカーソルが一旦その上で動きを止めると、フェードインしたdiv_whiteが
何故か一度サッと消えてしまうようになりました。
更にそこから1pxでもカーソルを動かすと、またすぐにフェードインして現れるんですが・・・
何がいけないのでしょうか;
appendだから場合によってはclass="div_white"が複数になってる可能性が高いな
あと、フェードアウトが終わる前に再度hoverした場合は無効にする等のフラグも多分要る
あと、フェードアウトが終わる前に再度hoverした場合は無効にする等のフラグも多分要る
度々すみません。さっき
$('.hover_white').fadeOut("slow",function(){$('.hover_white').remove();}); と書いたところを
$('.hover_white').fadeOut("slow",function(){.remove();}); にしたら、大分良い感じに動くようになりました!
div_whiteがサッと消えてしまう現象も無くなりました。後ろの$('.hover_white')が余計だったようです(?)
これで解決したかと思われたのですが、よく見るともうひとつ問題点があることを発見してしまいました
どうやらマウスアウトでフェードアウトする処理が、必ず最初のフェードインが終わりきってからでないと実行されないようです
なので、高速でマウスを乗せたり外したりを繰り返すと少し奇妙な挙動になってしまいます・・・
出来れば、マウスオンでフェードインが始まってから、その途中でマウスアウトした場合はすぐさまフェードインを中止して、
hoverの第2引数の処理へと移ってほしいのですが・・・難しいでしょうか?
$('.hover_white').fadeOut("slow",function(){$('.hover_white').remove();}); と書いたところを
$('.hover_white').fadeOut("slow",function(){.remove();}); にしたら、大分良い感じに動くようになりました!
div_whiteがサッと消えてしまう現象も無くなりました。後ろの$('.hover_white')が余計だったようです(?)
これで解決したかと思われたのですが、よく見るともうひとつ問題点があることを発見してしまいました
どうやらマウスアウトでフェードアウトする処理が、必ず最初のフェードインが終わりきってからでないと実行されないようです
なので、高速でマウスを乗せたり外したりを繰り返すと少し奇妙な挙動になってしまいます・・・
出来れば、マウスオンでフェードインが始まってから、その途中でマウスアウトした場合はすぐさまフェードインを中止して、
hoverの第2引数の処理へと移ってほしいのですが・・・難しいでしょうか?
>>202
動くはずだよ?ケアレスミスじゃない?
動くはずだよ?ケアレスミスじゃない?
漢字とひらがなだけの羅列5万字を圧縮してJavaScriptのStringリテラルで書く方法教えてください
>>214
文書型宣言を書く
文書型宣言を書く
$(function() {
while(216==fool){
alert("馬鹿には無理");
}
});
while(216==fool){
alert("馬鹿には無理");
}
});
ちなみにそのまま書いたらjs実行時にclassは存在しないから変化しないけどな
$(document).ready(function(){
$(".class").text("こうだろが馬鹿野郎");
});
$(document).ready(function(){
$(".class").text("こうだろが馬鹿野郎");
});
なんかサイト新規オープンのサイトの不具合修正とかの案件受けてても>>216みたいに中途半端なjquery読み込まれてる事があるんだけど何なんだよ
ブラウザがHTMLをダウンロード → jQueryで操作(たとえば要素を消す) → ブラウザの見ているHTMLからも要素が消える
このとき、ブラウザから右クリックでHTMLのソースを見てもその要素は残っているのですが、
これはブラウザがローカルにダウンロードしたHTMLはそのままになっているだけで
メモリの中のHTMLは変更されたということですか?
このとき、ブラウザから右クリックでHTMLのソースを見てもその要素は残っているのですが、
これはブラウザがローカルにダウンロードしたHTMLはそのままになっているだけで
メモリの中のHTMLは変更されたということですか?
innerHTMLが変更された
ブラウザの開発者用のツールで見てみろ
firebugとかOpera dragonflyとか
ブラウザの開発者用のツールで見てみろ
firebugとかOpera dragonflyとか
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秒後
あ
インクリメントが終了した状態のあた値のみが関数に渡ってしまうのですがなぜでしょうか?
for(i = 0; i < num; i++) {
a_data = a[i];
setInterval("func()",1000);
}
function func(){
document.getElementById("hello").innerHTML += "あ";
}
---実際出力される結果----
あ × num数
↓1秒後
あ × num数
---出力して欲しい結果----
あ
↓1秒後
あ
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);
};
ブラウザのタブ間でのやり取りは出来たんだが・・・
それとも、書いたコードのどこか間違ってるかな。
// 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);
};
処理系がES5対応だったら A.map(function(x){return x.B;}).join('') かな。試してないけど。
javascriptでブラウザ内の時間の進み方を遅くする
とかできるんですか?
とかできるんですか?
>>235
できない。できたらマズい。
できない。できたらマズい。
document.getElementById("nm").onclick=function(){bullet();}
document.getElementById("nm").onclick=function(){bullet2();}
ってやるとonclickイベントって上書きれて、関数bullet2のみ実行
ってなるようなのですが、上書きされないようにするって可能でしょか?
document.getElementById("nm").onclick=function(){bullet2();}
ってやるとonclickイベントって上書きれて、関数bullet2のみ実行
ってなるようなのですが、上書きされないようにするって可能でしょか?
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
}
}
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
}
}
(続き)
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使いつつ上手く回避する方法を知ってる方是非教えて下さい。
お願いします。
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使いつつ上手く回避する方法を知ってる方是非教えて下さい。
お願いします。
>>238
collect:function(){...}の最初あたりにvar that=this;を追加して、
collect:function(){...}の中の無名関数内の二つのthis.entriesをthat.entriesへ変更
collect:function(){...}の最初あたりにvar that=this;を追加して、
collect:function(){...}の中の無名関数内の二つのthis.entriesをthat.entriesへ変更
>>240
ありがとうございます。
無事参照できました。
しかしながら、entriesは0になってしまいます。
どうもfeed.loadが非同期になるからみたいです。
collect関数内での処理が終わるまで待つみたいな実装は無理なんでしょうか・・・。
JQUERYのDeferredとか使ってコールバック関数を記述するしかないんだろうかねえ。
ありがとうございます。
無事参照できました。
しかしながら、entriesは0になってしまいます。
どうもfeed.loadが非同期になるからみたいです。
collect関数内での処理が終わるまで待つみたいな実装は無理なんでしょうか・・・。
JQUERYのDeferredとか使ってコールバック関数を記述するしかないんだろうかねえ。
>>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/
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/
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.126 + (952) - [97%] - 2015/11/18 13:15
- + JavaScript の質問用スレッド vol.107 + (1001) - [97%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.116 + (1002) - [97%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.126 + (348) - [97%] - 2023/1/12 17:00
- + JavaScript の質問用スレッド vol.109 + (1001) - [97%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.108 + (1001) - [97%] - 2013/9/21 15:16
- + JavaScript の質問用スレッド vol.136 + (1001) - [97%] - 2019/1/8 11:30
- + JavaScript の質問用スレッド vol.105 + (1001) - [97%] - 2013/5/20 4:45
- + JavaScript の質問用スレッド vol.104 + (1001) - [97%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.102 + (1001) - [97%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.101 + (1001) - [97%] - 2012/7/16 14:15
- + JavaScript の質問用スレッド vol.100 + (1001) - [97%] - 2012/6/13 22:46
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
- + JavaScript の質問用スレッド vol.125 + (1001) - [95%] - 2015/10/7 17:45
- + JavaScript の質問用スレッド vol.124 + (1001) - [95%] - 2015/7/16 1:30
- + JavaScript の質問用スレッド vol.123 + (1002) - [95%] - 2015/4/27 23:30
トップメニューへ / →のくす牧場書庫について