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

私的良スレ書庫

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

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

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
801 : Name_Not - 2021/08/29(日) 04:18:28.46 ID:???.net (+51,+30,+0)
802 : Name_Not - 2021/09/03(金) 21:02:01.45 ID:???.net (+20,-13,-49)
ここでの質問なのかわからないですが
アナリティクスなどで、訪問者のiPhoneのバージョンがわかるようにしたり、集計ってできますか?
例えばiPhone12が○○アクセス、全体シェア○○%のように
803 : Name_Not - 2021/09/03(金) 21:34:48.91 ID:???.net (+39,-29,-35)
>>802
GAならこっちで聞いた方がいいよ

【アクセス解析】Google Analytics 8 [無断転載禁止]©2ch.net
http://mevius.5ch.net/test/read.cgi/hp/1485660054/
804 : Name_Not - 2021/09/03(金) 21:44:48.13 ID:???.net (+41,-30,-238)
const $el = document.getElementById('hoge');
let func = () => {
console.log($el);
}
setInterval('func()',1000);

としたところ、$elはnullになってしまいます。

let func = () => {
const $el = document.getElementById('hoge');
console.log($el);
}
setInterval('func()',1000);

とすれば$elには値が入りますが、setIntervalを実行する度にconstをセットするのが
どうもスマートでないように思います

JSの作法的に正しくて、スマートに書こうと思ったら
どう改善したら良いでしょうか?
805 : Name_Not - 2021/09/03(金) 21:48:29.24 ID:???.net (+62,+29,-1)
>>803
アリガトウゴザイマス!
806 : Name_Not - 2021/09/03(金) 21:56:16.09 ID:???.net (-1,-30,-20)
>>804
setIntervalの気持ち悪い書き方を直すだけ
setInterval(func,1000);
807 : Name_Not - 2021/09/03(金) 22:07:25.41 ID:???.net (+57,+29,-6)
スマートな書き方を聞くやつはスマートじゃないの法則
808 : Name_Not - 2021/09/03(金) 22:10:45.15 ID:???.net (+63,+30,+0)
809 : Name_Not - 2021/09/07(火) 05:43:43.55 ID:???.net (+17,-29,-22)
Firefox のコンソールで 0/-2 など 0を-xで割ると -0と出るのですが
プログラミングでは一般的なのでしょうか
0と出てきて欲しいんですが
810 : Name_Not - 2021/09/07(火) 06:06:08.37 ID:???.net (+3,-29,-4)
>>809
一般的とは?そんなものはない
Object.is()で判定可能
http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/is
811 : Name_Not - 2021/09/07(火) 07:50:22.49 ID:???.net (+17,-12,-2)
>>809
>プログラミングでは一般的なのでしょうか

そこそこ一般的
812 : Name_Not - 2021/09/07(火) 09:51:01.19 ID:???.net (+57,+29,-7)
ありがとうございます。
よく考えれば今回は-0でも問題ありませんでしたのでそのまま処理しました。
813 : Name_Not - 2021/09/10(金) 18:39:26.33 ID:???.net (+11,-21,-31)
http://developer.mozilla.org/ja/docs/Web/JavaScript
完全な初心者向け
JavaScript ガイド
中級者向け
上級者向け
リファレンス
ツールとリソース
814 : Name_Not - 2021/09/13(月) 12:36:49.23 ID:???.net (+3,-30,-221)
<style>
#test{
filter:sepia(50%);
}
</style>

<ul id="test">
<li><img src="./img1.png"></li>
<li><img src="./img2.png"></li>
</ul>
<input type="button" value="クリック" オンクリック="aaa()">

<スクリプト>
function aaa(){
var elm_list = document.querySelectorAll("#test li");
elm.list[1].style.filter = "sepia(0%)";
elm_list[1].style.border="Solid 3px #0000ff";
}
</スクリプト>
セピアを0にして画像を元の色にしたいんだけど色が変わりません
borderの方は線が表示されたのでセレクタは正しいと思うけど
どうしてでしょうか?どうすれば元の色にできますか?
815 : Name_Not - 2021/09/13(月) 13:31:13.85 ID:???.net (+2,-29,-3)
elm.list になってるからでは
816 : Name_Not - 2021/09/13(月) 13:53:56.57 ID:???.net (-1,-29,-1)
>>815
elm_listでもできませんでした
817 : Name_Not - 2021/09/13(月) 14:28:45.90 ID:???.net (+26,-30,-68)
ulに対してsepia(50%)設定してるのにliを0%にしたところで変わらんよ
見た目は子孫に影響するけど、プロパティ値は継承しないのでdisplayやopacityなんかと一緒で親の効果を上書きできるわけではないよ
#test li {
filter: sepia(50%);
}
818 : Name_Not - 2021/09/13(月) 18:38:27.91 ID:???.net (+48,+25,-16)
スコープみたいなものですか?
819 : Name_Not - 2021/09/14(火) 07:50:54.02 ID:???.net (+39,+13,+0)
>>817
なるほどー
820 : Name_Not - 2021/09/14(火) 13:43:26.00 ID:???.net (+40,-30,-115)
特定の要素から特定のイベントのイベントリスナーを削除することは可能でしょうか?
関数への参照を保持していない状態です。

具体的にはwindow.addEventListener("storage",function(){~})の形で登録されているようなものです。
ピンポイントで上記だけ削除するのが難しいようであれば、window要素に紐づくstorageイベント全てを一括削除という形でも問題ないです。
821 : Name_Not - 2021/09/14(火) 19:34:00.52 ID:???.net (+3,-30,-51)
chromeはできるかわからないけど
firefoxならublock originで
yahoo.co.jp##+js(aeld, storage,/functionの中身を正規表現で/)
でいけそうだけど
822 : Name_Not - 2021/09/14(火) 20:32:24.79 ID:???.net (+66,-30,-11)
>>820
要素のイベントを全て削除
elm.replaceWith(elm.cloneNode(true))
windowはアキラメロン
823 : Name_Not - 2021/09/14(火) 22:56:39.52 ID:???.net (-1,-29,-47)
イベント登録前に割り込めるならEventTarget.prototype.addEventListenerあたりをフックするとか
824 : Name_Not - 2021/09/15(水) 11:19:42.58 ID:???.net (+76,+29,-73)
addEventListenerをフックするのが一番現実的なんですかね?

しかし、要素に紐づくイベントリスナーや、管理している全てのイベントリスナーを出力するみたいな関数は存在しないんですね……
ありそうなものだけど、というか無いならどこでどうやって管理してるんだろう……
825 : Name_Not - 2021/09/15(水) 12:22:46.44 ID:???.net (+61,-10,-5)
>>824
普通は関数の参照をとっておく
826 : Name_Not - 2021/09/15(水) 12:45:18.50 ID:???.net (+68,+28,-45)
>>825
自分で書く部分ならもちろんそうするんですが、Chromeの拡張で特定のページの邪魔な動作をシャットアウトしたいんですよね。
827 : Name_Not - 2021/09/15(水) 16:46:22.85 ID:???.net (+62,+29,-39)
X軸方向のスクロールを常に禁止にし、常にスクロールをゼロの位置にする事って可能でしょうか?
cssでスクロールバーを出さない方法はありますが、要素が自由に動いてしまうのでスクロールしてしまう事が多々あります
828 : Name_Not - 2021/09/15(水) 17:55:31.30 ID:???.net (+62,+29,-53)
>>822 に一票
クローンして差し替えることによりelmとその子孫のイベントリスナーが消え、その他の属性は残る
829 : Name_Not - 2021/09/15(水) 19:03:27.68 ID:???.net (+57,+29,-6)
スクレイピングすると地獄へ落ちるって本当ですか?
830 : Name_Not - 2021/09/15(水) 19:21:25.96 ID:???.net (+42,-29,-17)
>>826
キャプチャリングフェーズでstopPropagation
831 : Name_Not - 2021/09/16(木) 12:37:19.77 ID:???.net (+25,-30,-82)
#test li{
background:#0000ff;
}
#test li:hover{
background:#00ff00;
}
というcssがある場合hoverのbackgroundを取得したいんだけど
querySelectorAll("#test li:hover")とやっても取得できませんでした。
どうやればいいんですか?
832 : Name_Not - 2021/09/16(木) 14:04:33.43 ID:???.net (+34,+5,-2)
取得しようとした部分を書いて
833 : Name_Not - 2021/09/16(木) 14:47:41.06 ID:???.net (-2,-30,-19)
:hoverはquerySelectorAllで取得できません
ちなみにgetComputedStyle(element, ":hover")もできない
834 : Name_Not - 2021/09/16(木) 15:15:39.66 ID:???.net (+57,+29,-17)
どうやったらできるかを考えるのが、
あなたたちの仕事です
835 : Name_Not - 2021/09/16(木) 15:27:53.95 ID:???.net (+230,-29,-34)
hoverのプロパティ自体を見たければstyleエレメントを見ればいいんじゃないかな
いまカーソルがのってるかを見たいなら
mouseoverイベントか対象にtransition入れておいてtransitionのイベントを見ればいいんじゃないかな
836 : Name_Not - 2021/09/16(木) 15:47:02.52 ID:???.net (+52,+29,-3)
仕事と言われると対価が欲しくなる
837 : Name_Not - 2021/09/16(木) 18:11:46.09 ID:???.net (+43,-30,-93)
>>832
<ul id="test">
<li>aaa</li>
<li>bbb</li>
</ul>
var element_list = document.querySelectorAll("#test li:hover");
var st = getComputedStyle(element_list[0]);
var val = st.getPropertyValue("background");
alert(val);

こうやっても取得できなかった
他に方法はないんですかね
838 : Name_Not - 2021/09/16(木) 18:30:00.02 ID:???.net (+96,-29,-14)
>>837
document.styleSheets
839 : Name_Not - 2021/09/16(木) 18:36:24.59 ID:???.net (+46,+18,-22)
クエリーセレクターにホバーは入れられないって言ってるだろ
840 : Name_Not - 2021/09/16(木) 18:40:44.66 ID:???.net (+59,+30,+0)
841 : Name_Not - 2021/09/16(木) 21:45:16.33 ID:???.net (+32,-30,-23)
>>835
それは
var element = document.getElementById("test");
element.styleということですか?
842 : Name_Not - 2021/09/17(金) 06:20:01.48 ID:???.net (+0,-28,-15)
jQuery には、hover 時のイベントがあるけど
843 : Name_Not - 2021/09/17(金) 09:12:27.75 ID:???.net (+100,+21,-32)
>>841
>>835は意味不明
style要素といってるから、まずはstyle要素でスタイルを定義するところからなんじゃない?
844 : Name_Not - 2021/09/17(金) 12:36:55.97 ID:???.net (+43,-28,-5)
>>843
styleは>>831で定義してある
845 : Name_Not - 2021/09/17(金) 12:48:54.07 ID:???.net (+5,-29,-48)
>>844
style要素だよな?
link要素で外部CSS定義していたら、style要素に書き換える必要がある
何のためにそんなことする?
内容からCSS記述をパースさせるのか?
846 : Name_Not - 2021/09/17(金) 17:57:46.99 ID:???.net (+16,-30,-44)
>>845
element.onmouseover = function(){
element.style.background = cssのhoverから取得したbackground;
}
というふうにしたかった
847 : Name_Not - 2021/09/17(金) 19:02:09.68 ID:???.net (+22,-12,-44)
>>846
それは「styleプロパティ」という
>>835は「styleエレメント」といっていたから意味不明だった
そして、styleプロパティでは>>831定義のCSSを取得出来ない
848 : Name_Not - 2021/09/17(金) 19:23:45.68 ID:???.net (+120,-30,-49)
>>Array.from(document.styleSheets).map(e=>Array.from(e.rules).map(e=>e.cssText).join()).join().includes(":hover")
←true
849 : Name_Not - 2021/09/17(金) 19:36:12.39 ID:???.net (+46,+19,-2)
>>838で既出やん
850 : Name_Not - 2021/09/17(金) 19:44:13.42 ID:???.net (+42,+19,-1)
取得できないって人がいたので
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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