私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.103 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
フォントといえば数時間前アドビが何か出してたな
ソースコードを表示するためのフォント「Source Code Pro」をアドビが無料公開
http://engawa.2ch.net/test/read.cgi/poverty/1348539877/
> プログラミングやマークアップなど、コーディング作業のときにソースコードを表示する目的で開発されたフォント「Source Code Pro」を米アドビがオープンソースとして無料公開しました。
> 以下がSource Code Proの見本。
>
ソースコードを表示するためのフォント「Source Code Pro」をアドビが無料公開
http://engawa.2ch.net/test/read.cgi/poverty/1348539877/
> プログラミングやマークアップなど、コーディング作業のときにソースコードを表示する目的で開発されたフォント「Source Code Pro」を米アドビがオープンソースとして無料公開しました。
> 以下がSource Code Proの見本。
>
0に/入って無い辺りは素人なのか、まさか常識を超えたプロなのか
(0+/)<(0+・)だとでも言うのか?
(0+/)<(0+・)だとでも言うのか?
色々寄り道して結局EmEditor Pro買ったわ
フォントは前からVLゴシックを使っているけど、
コロンとセミコロンが結構紛らわしい
フォントは前からVLゴシックを使っているけど、
コロンとセミコロンが結構紛らわしい
質問です
Array.prototype.sort がChromeで不安定だったので実装し直しました
目的の結果は得られたのですが、ライブラリとして使いやすくするために
比較関数は省略出来るようにして、Array.prototype.sort と同じ比較方法をとりたいのですが
Array.prototype.sort が使用している比較関数を取り出す方法はないでしょうか?
Array.prototype.sort がChromeで不安定だったので実装し直しました
目的の結果は得られたのですが、ライブラリとして使いやすくするために
比較関数は省略出来るようにして、Array.prototype.sort と同じ比較方法をとりたいのですが
Array.prototype.sort が使用している比較関数を取り出す方法はないでしょうか?
>>258
If omitted, the array is sorted lexicographically (in dictionary order) according to the string conversion of each element.
とのことなので、比較関数が省略されたときは各要素を文字列として辞書順にソートされるっぽい
実際のアルゴリズムは実装依存では?
http://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort
If omitted, the array is sorted lexicographically (in dictionary order) according to the string conversion of each element.
とのことなので、比較関数が省略されたときは各要素を文字列として辞書順にソートされるっぽい
実際のアルゴリズムは実装依存では?
http://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort
>>258
具体的にはどこが不安定だったのでしょう?
具体的にはどこが不安定だったのでしょう?
258じゃないけど。
var a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16];
a.sort(function () {return 0;});
console.log(a); // [9, 1, 3, 4, 5, 6, 7, 8, 2, 10, 11, 12, 13, 14, 15, 16]
chromeは不安定なソートを使っているようだね。(quicksortかなあ)
mozilla系は安定なソートらしいが。
var a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16];
a.sort(function () {return 0;});
console.log(a); // [9, 1, 3, 4, 5, 6, 7, 8, 2, 10, 11, 12, 13, 14, 15, 16]
chromeは不安定なソートを使っているようだね。(quicksortかなあ)
mozilla系は安定なソートらしいが。
ああ、そういう意味か、安定的ね。不安定って言われたら整列に失敗するとかそいういう
トラブルを思い浮かべると思うなー。で、自分で整列を書かなくても、キーの後ろに
元の列での並び順をくっつけてから整列し、最後にくつつけたものをはがせば安定ソート
できるよね。まあそうしたいかどうかは本人が決めるとして。
トラブルを思い浮かべると思うなー。で、自分で整列を書かなくても、キーの後ろに
元の列での並び順をくっつけてから整列し、最後にくつつけたものをはがせば安定ソート
できるよね。まあそうしたいかどうかは本人が決めるとして。
配列のシャッフルのアルゴリズムを簡略したくて、
[1,2,3,4,5,6].sort(function(){ return Math.random() - .5; })
と書いて大怪我した事がある。実際に動かしたら笑うに笑えない結果になった
[1,2,3,4,5,6].sort(function(){ return Math.random() - .5; })
と書いて大怪我した事がある。実際に動かしたら笑うに笑えない結果になった
$('html,body')
っていうの見たんですが、JavaScriptだけでhtmlエレメントを取得するのってどうやるんですか?
bodyなら
body = document.getElementsByTagName('body')[0]
でいけそうですが
っていうの見たんですが、JavaScriptだけでhtmlエレメントを取得するのってどうやるんですか?
bodyなら
body = document.getElementsByTagName('body')[0]
でいけそうですが
>>268
document.defaultView
document.defaultView
ブラウザ内の画面をキャプチャするために
javascriptだけでもできますか?
javascriptだけでもできますか?
>>273
ライブラリを使えば可能
http://html2canvas.hertzen.com/
あと、Firefoxで、かつ特権がある場合はcanvasのdrawWindowメソッドで可能
http://developer.mozilla.org/ja/docs/Drawing_Graphics_with_Canvas#_.E3.81.95.E3.82.89.E3.81.AA.E3.82.8B.E6.A9.9F.E8.83.BD_
ライブラリを使えば可能
http://html2canvas.hertzen.com/
あと、Firefoxで、かつ特権がある場合はcanvasのdrawWindowメソッドで可能
http://developer.mozilla.org/ja/docs/Drawing_Graphics_with_Canvas#_.E3.81.95.E3.82.89.E3.81.AA.E3.82.8B.E6.A9.9F.E8.83.BD_
スムーズスクロールを実装できたんですが、#つきのページを読み込んだ後もスムーズにスクロールしたいです。
現在はページを開いてから#付きのリンクをクリックするとその位置までスムーズにスクロールするというところまで出来ています。
#つきのページを読み込んだ後にもスムーズにスクロールさせるには、#付きのページを開いたときに自動でその位置まで移動するデフォルトイベントをまず止めなければなりません。
そこでwindowオブジェクトのonloadイベント時にcancelBabble,returnValueもしくはstopPropagation(),preventDefault()でとめようと思ったんですが、
効果がありませんでした。
どうすればいいでしょうか?
現在はページを開いてから#付きのリンクをクリックするとその位置までスムーズにスクロールするというところまで出来ています。
#つきのページを読み込んだ後にもスムーズにスクロールさせるには、#付きのページを開いたときに自動でその位置まで移動するデフォルトイベントをまず止めなければなりません。
そこでwindowオブジェクトのonloadイベント時にcancelBabble,returnValueもしくはstopPropagation(),preventDefault()でとめようと思ったんですが、
効果がありませんでした。
どうすればいいでしょうか?
ロードした後って言ってもURLには最初から#nameがついてしまってるので、
デフォルトの動作としてこの名前を持つidもしくはnameのところに飛んでしまいますよね?
この動作をとめて、スムーズにその位置までスクロールさせたいんです。
不可能なんでしょうか?
デフォルトの動作としてこの名前を持つidもしくはnameのところに飛んでしまいますよね?
この動作をとめて、スムーズにその位置までスクロールさせたいんです。
不可能なんでしょうか?
>>278
DOMContentLoadedのタイミングでscrollTo(0, 0)すればよさげ
DOMContentLoadedのタイミングでscrollTo(0, 0)すればよさげ
>>279
ありがとうございます!
ieはこのイベントないんですね。。
今doScrollで対応しようと頑張ってます。
>>280
つまりidやname属性を使わなければurlの末尾に#を含む文字があっても自動で移動せずに済むってことですよね?
確かに良い方法ですね
一応DOMcontentLoadedで実装は出来たんですが、
例えばその#URL付きのページを下に少しスクロールした状態でリロードすると、
ブラウザがそのスクロール位置まで自動的に移動させてしまいますよね?
そのイベントはとめられないんでしょうか?
動作的には、
スクロール位置を少し下げた状態でページをリロード
↓
スムーズスクロールで#nameの場所までスクロール
↓
最初の少し下げたスクロール位置まで戻る
こういう動作になってしまいます。
ありがとうございます!
ieはこのイベントないんですね。。
今doScrollで対応しようと頑張ってます。
>>280
つまりidやname属性を使わなければurlの末尾に#を含む文字があっても自動で移動せずに済むってことですよね?
確かに良い方法ですね
一応DOMcontentLoadedで実装は出来たんですが、
例えばその#URL付きのページを下に少しスクロールした状態でリロードすると、
ブラウザがそのスクロール位置まで自動的に移動させてしまいますよね?
そのイベントはとめられないんでしょうか?
動作的には、
スクロール位置を少し下げた状態でページをリロード
↓
スムーズスクロールで#nameの場所までスクロール
↓
最初の少し下げたスクロール位置まで戻る
こういう動作になってしまいます。
JSの外での出来事に、JSの中から対応使用としているので
どこかで無理が出てくると思う
先のdataハイフン属性を使う方法も含め
どこかしらに落としどころを見つけないと
堂々巡りになる
どこかで無理が出てくると思う
先のdataハイフン属性を使う方法も含め
どこかしらに落としどころを見つけないと
堂々巡りになる
そうですか・・・
すいません
イメージとしては日テレの番組表なんですよ
http://www.ntv.co.jp/program/
このページだと少し下にスクロールした状態でリロードしても指定した位置までスムーズスクロールして、
そこでちゃんと止まってくれてます
今解析中なんですけどねー。
もうちょっと頑張ってみます。
すいません
イメージとしては日テレの番組表なんですよ
http://www.ntv.co.jp/program/
このページだと少し下にスクロールした状態でリロードしても指定した位置までスムーズスクロールして、
そこでちゃんと止まってくれてます
今解析中なんですけどねー。
もうちょっと頑張ってみます。
aタグのhref=に#nameが混じったURLが入ってると、IEだけ一旦そのnameのid or name属性を持つ位置まで移動した後、
すぐスクロールが一番上まで戻ってしまうんですけど何が原因ですか?
JavaScript無効にすると発生しません。
っていってもどっかのjavascriptにそういう動作させるコードが書いてあるんでしょうけどね。。
すぐスクロールが一番上まで戻ってしまうんですけど何が原因ですか?
JavaScript無効にすると発生しません。
っていってもどっかのjavascriptにそういう動作させるコードが書いてあるんでしょうけどね。。
>>283
そのページのは規定通りの動きだと思う
ページの途中までスクロールした状態でリロードすると
その位置までスクロールした状態になるのはブラウザの実装。
で、JSが発火して現在の時刻の位置めがけてスムーズスクロールする
URLのlocation.hashで指定されたIDの位置に移動するのとは
全く関係ない話だと思う
そのページのは規定通りの動きだと思う
ページの途中までスクロールした状態でリロードすると
その位置までスクロールした状態になるのはブラウザの実装。
で、JSが発火して現在の時刻の位置めがけてスムーズスクロールする
URLのlocation.hashで指定されたIDの位置に移動するのとは
全く関係ない話だと思う
>>285
あ、すいません。
ちょっと伝わりにくかったようです。
location.hashで指定されたID位置に移動する件に関しては、DOMContentLoadedのときにデフォルトの動作をとめることで解決できたんですが、
今度やりたいのは日テレの番組表みたいに、
途中までスクロールした状態でスクロールすると、その位置までスクロールした状態になる動作をとめたいんです。
日テレのやつは、途中までスクロールした状態でリロードしても最初から現在の時刻めがけてスムーズスクロールしてくれますよね?
これはブラウザの基本動作である途中までスクロールしておいた位置に戻る、という動作がストップされてるから出来るんだと思いますが、
その方法がわかりません。
どのイベントのデフォルトの動作をストップさせれば出来るのかがわかればいいんですが。。
今現在はwindowオブジェクトのDOMContentLoadedが発生したときにスクロールしています。
でもこれだと、
途中までスクロールした状態でリロードする
↓
スムーズスクロールでhashで指定された要素までスムーズスクロールする
↓
途中までスクロールしてた位置まで戻っちゃう
今はこんな感じです。
どのイベントをとめれば最後のステップの動作をさせずに済むのかわかりません
あ、すいません。
ちょっと伝わりにくかったようです。
location.hashで指定されたID位置に移動する件に関しては、DOMContentLoadedのときにデフォルトの動作をとめることで解決できたんですが、
今度やりたいのは日テレの番組表みたいに、
途中までスクロールした状態でスクロールすると、その位置までスクロールした状態になる動作をとめたいんです。
日テレのやつは、途中までスクロールした状態でリロードしても最初から現在の時刻めがけてスムーズスクロールしてくれますよね?
これはブラウザの基本動作である途中までスクロールしておいた位置に戻る、という動作がストップされてるから出来るんだと思いますが、
その方法がわかりません。
どのイベントのデフォルトの動作をストップさせれば出来るのかがわかればいいんですが。。
今現在はwindowオブジェクトのDOMContentLoadedが発生したときにスクロールしています。
でもこれだと、
途中までスクロールした状態でリロードする
↓
スムーズスクロールでhashで指定された要素までスムーズスクロールする
↓
途中までスクロールしてた位置まで戻っちゃう
今はこんな感じです。
どのイベントをとめれば最後のステップの動作をさせずに済むのかわかりません
>>286
戻っちゃう?ブラウザ何?
Firefox、Safari、chrome、IE8で
ページの最下部までスクロール(スクロール量最大)してからリロード、を試してみたけど
FirefoxとIE8はリロード後、スクロール量最大になり
(※遅いPCだと一瞬スクロールゼロ状態になり、すぐスクロール量最大になる)
その後JSで規定位置までスムーススクロールされる
Safariとchromeはリロード後、スクロール量ゼロの状態になり
その後JSで規定位置までスムーススクロールされる
> 途中までスクロールしてた位置まで戻っちゃう
これは再現できなかった
戻っちゃう?ブラウザ何?
Firefox、Safari、chrome、IE8で
ページの最下部までスクロール(スクロール量最大)してからリロード、を試してみたけど
FirefoxとIE8はリロード後、スクロール量最大になり
(※遅いPCだと一瞬スクロールゼロ状態になり、すぐスクロール量最大になる)
その後JSで規定位置までスムーススクロールされる
Safariとchromeはリロード後、スクロール量ゼロの状態になり
その後JSで規定位置までスムーススクロールされる
> 途中までスクロールしてた位置まで戻っちゃう
これは再現できなかった
ajaxで内容を追加しているからとかじゃね?
リロードするとHTMLから再構築するわけだから、先頭に戻ると…
未確認だが。
リロードするとHTMLから再構築するわけだから、先頭に戻ると…
未確認だが。
>>287
戻っちゃうのはChromeです。
あ、戻っちゃうのは日テレの番組表での話しじゃなくて自分が今テスト環境でやってるコードの方での話ですよ。
日テレの番組表でやったらおっしゃるとおりの動作になりました。
言われるまで日テレの番組表をChromeでしか見てませんでした。
IEやFireFoxの動作を見ると完全に読み込んでからスクロールしてるっぽいので、
onload完了後に動かして見るとか色々やってみます。
そうすればChromeでもスクロールした後に戻るっていうへんな動作は無くなりそうな気がするので。
まあChromeみたいにリロード後スクロール量ゼロになってから、規定位置までスムーズスクロールさせるっていう理想の形ではないですけどね。
その辺もスクロール量を一旦ゼロにしてから動かすとか色々やってみます。
戻っちゃうのはChromeです。
あ、戻っちゃうのは日テレの番組表での話しじゃなくて自分が今テスト環境でやってるコードの方での話ですよ。
日テレの番組表でやったらおっしゃるとおりの動作になりました。
言われるまで日テレの番組表をChromeでしか見てませんでした。
IEやFireFoxの動作を見ると完全に読み込んでからスクロールしてるっぽいので、
onload完了後に動かして見るとか色々やってみます。
そうすればChromeでもスクロールした後に戻るっていうへんな動作は無くなりそうな気がするので。
まあChromeみたいにリロード後スクロール量ゼロになってから、規定位置までスムーズスクロールさせるっていう理想の形ではないですけどね。
その辺もスクロール量を一旦ゼロにしてから動かすとか色々やってみます。
>>288
Ajaxは一切使ってません
Ajaxは一切使ってません
URL に必ずパス部があると仮定するなら簡単。
クエリとフラグメントと、URL 先頭から最後の "/" までを削除。
var file = url.replace(/\?.*$/, "").replace(/#.*$/, "").replace(/.*\//, "");
クエリとフラグメントと、URL 先頭から最後の "/" までを削除。
var file = url.replace(/\?.*$/, "").replace(/#.*$/, "").replace(/.*\//, "");
>>291-292
「/」でsplitして最後の要素を取るのがいちばん素直だと思うが。
「/」でsplitして最後の要素を取るのがいちばん素直だと思うが。
>>274
どうもありがとうございます。
firefoxアドオンの開発で参考にしたかったのでたすかります。
もう一つ質問があるのですが
canvasでキャプチャした画像を左右に分割したブラウザの片方に表示させることはできますか?
ブラウザは<hbox>を使って分割されています。
既存のWebページは表示させられるのですが調べてもわからなくて困っています。
どうもありがとうございます。
firefoxアドオンの開発で参考にしたかったのでたすかります。
もう一つ質問があるのですが
canvasでキャプチャした画像を左右に分割したブラウザの片方に表示させることはできますか?
ブラウザは<hbox>を使って分割されています。
既存のWebページは表示させられるのですが調べてもわからなくて困っています。
>>291
/^(?:[^?/#]*/)*([^?/#]*)/
/^(?:[^?/#]*/)*([^?/#]*)/
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.107 + (1001) - [97%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.123 + (966) - [97%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.133 + (1001) - [97%] - 2018/6/8 10:45
- + JavaScript の質問用スレッド vol.123 + (1002) - [97%] - 2015/4/27 23:30
- + JavaScript の質問用スレッド vol.108 + (1001) - [97%] - 2013/9/21 15:16
- + JavaScript の質問用スレッド vol.109 + (1001) - [97%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.106 + (1001) - [97%] - 2013/7/20 9:30
- + JavaScript の質問用スレッド vol.105 + (1001) - [97%] - 2013/5/20 4:45
- + JavaScript の質問用スレッド vol.104 + (1001) - [97%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.102 + (1001) - [97%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.101 + (1001) - [97%] - 2012/7/16 14:15
- + JavaScript の質問用スレッド vol.143 + (753) - [97%] - 2020/4/19 5:00
- + 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
トップメニューへ / →のくす牧場書庫について