「ツールチップ」を含む日記 RSS

はてなキーワード: ツールチップとは

2024-06-26

非エンジニアだけどClaude3に増田ミュート作ってもらったよ

これを改善してってお願いした。何書いてあるかわからないけど動いたよ。

https://anond.hatelabo.jp/20240125203115

// ==UserScript==
// @name         増田ミュート(白塗り版)
// @namespace    http://tampermonkey.net/
// @version      2024-06-26
// @description  ミューワードを含む最小限の範囲白塗りにする
// @author       You
// @match        https://anond.hatelabo.jp/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=hatelabo.jp
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const muteWords = [
        "弱者男性",
        "弱男",
        "弱者",
        "婚活",
        "男",
        "女",
        "年収",
        "下方婚",
        "発達障害",
        "発達",
        "ハッタツ",
        "ハッタショ",
        "ハッタショ",
        "競プロ",
        "競技プログラミング",
        "AtCoder",
    ];

    function whiteoutElement(element) {
        element.style.backgroundColor = 'white';
        element.style.color = 'white';
        element.style.textShadow = 'none';
        element.style.cursor = 'default';
        element.style.userSelect = 'none';  // テキスト選択を防止
        element.style.borderBottom = '1px dashed #ccc'; // 枠線を追加してテキストがあることを示す

        // リンク場合クリック無効化
        if (element.tagName === 'A') {
            element.style.pointerEvents = 'none';
            element.removeAttribute('href');
        }

        // 子要素にも適用
        Array.from(element.children).forEach(child => {
            child.style.backgroundColor = 'white';
            child.style.color = 'white';
            child.style.textShadow = 'none';
        });

        // ツールチップを追加
        element.title = 'この内容にはミューワードが含まれています';
    }

    function shouldMute(text) {
        return muteWords.some(word => {
            const parts = word.split('');
            const regex = new RegExp(parts.map(char => `${char}\\s*`).join(''), 'i');
            return regex.test(text);
        });
    }

    function findSmallestMuteableElement(element) {
        if (element.nodeType === Node.TEXT_NODE) {
            return shouldMute(element.textContent) ? element.parentElement : null;
        }

        if (element.tagName === 'PRE' || element.tagName === 'CODE') {
            return shouldMute(element.textContent) ? element : null;
        }

        for (let child of element.childNodes) {
            const result = findSmallestMuteableElement(child);
            if (result) return result;
        }

        return shouldMute(element.textContent) ? element : null;
    }

    function processElement(element) {
        const muteableElement = findSmallestMuteableElement(element);
        if (muteableElement) {
            whiteoutElement(muteableElement);
        }
    }

    function processAllElements(root = document.body) {
        const walker = document.createTreeWalker(
            root,
            NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT,
            null,
            false
        );

        let node;
        while (node = walker.nextNode()) {
            if (node.nodeType === Node.ELEMENT_NODE) {
                processElement(node);
            } else if (node.nodeType === Node.TEXT_NODE && node.parentElement) {
                processElement(node.parentElement);
            }
        }
    }

    function handleClickEvent(event) {
        setTimeout(() => {
            processAllElements(event.target);
        }, 100);
    }

    // 初回実行
    processAllElements();

    // クリックイベント監視
    document.body.addEventListener('click', handleClickEvent);

    // DOM変更の監視
    const observer = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            if (mutation.type === 'childList') {
                mutation.addedNodes.forEach(node => {
                    if (node.nodeType === Node.ELEMENT_NODE) {
                        processAllElements(node);
                    }
                });
            } else if (mutation.type === 'characterData') {
                processElement(mutation.target.parentNode);
            }
        });
    });

    observer.observe(document.body, { childList: true, subtree: true, characterData: true });
})();

2022-04-04

実務未経験から情報技術者として転職大手自動車メーカーへ勤めてる

経験から3ヶ月で外資IT勤めで年収1600万みたいなのがバズってたので

ただし俺の場合、実務が未経験なだけでプログラミング歴は20ちょっとある、いわゆる趣味グラマから転職
同人ゲーム制作やFLOSS系の活動はずっとやっていて、学生時代バイト出会い系サイト作ってた
前職の都合で自動車メーカーとも繋がりがあり、そのツテで昨今の自動車コンピューティングを強く導入するという流れがあったので誘われて転職することになった
まり草の根(もう死語だねコレ)の情報技術者が昔馴染みを頼って転職しただけと言ってしまえばその通りなのだ

こんな転職の仕方だからプログラミングスクール出身者のレベルがどんなもんだか知らんけど、もともと俺は電気系のオタクシーケンスに関して理解があってH8あたりからプログラミングへ手を出しているって感じがスタートなんだ
たぶんイマドキの純粋培養情報技術者の中には電気回路まったくわからんって人も居るとは思うけど、電気関係素養があったほうがプログラミング習得には今でも有利なんじゃないかな?と思わなくもない
例えば俺へ対してパソコン通信インターネットを通じてプログラミングノウハウを教えてくれたお兄さんたちはゲームメーカーエレメカやってるって人が居たりして、後にゲームハードROM作り始めたなんて話もリアルタイムに聞いていた。今じゃお偉いさんになってるだろうけど

そんなんだから俺はハードソフトネットワークスペシャリストほどではないけれど満遍なく知る変な素養があり直接声がかかった次第だ
イマドキ流行りのGoとかSwiftとかRustみたいなイケイケな言語ではなくC++とかJavaとかBashとかの方が得意だっていうのも評価としてはあったかも知れないけどね
あと日常的なLinuxデスクトップ使いというのも最近Linux興隆の流れから後押しがあったかも知れん

もちろん苦手な部分もある、GUIがそれだ
GUI設計なんて言うものデザイナーがやるべき仕事だね。今流行りのそれっぽいのとかツールチップ使いましたみたいな古典的スタイルを真似たGUIを作ろうと思えば作れるけど、単なるモノマネなので本職のそれとは出来が違う

というわけでプログラミングスクール出身者、どこかで俺みたいな草の根出身者に出会うこともあるだろうから、そのときはヨロシクな

2015-03-16

ラノベの(動|導)線

レーベルアクセス数ラノベの杜のそれより多いのだろうか。ぼーっとラノベの杜の発売予定を見る。タイトルを見て気になるのをクリックする。その次にレーベルサイトで詳しく見る。ラノベの杜経由でアクセスする場合が多い。自分がこれなのだけれど、他の人はどうやってるんだろう。それともインターネットで見たり触れたりはしないのだろうか。デザイナとイラストレータラノベの杜のサムネサイズ訴求力があるカバーにしたほうがいい(俺カメラ)。

あと読書メーターラノベの杜がひっついてくれると非常に楽だ。ツールチップナイスの多いレビューが出てくれるとなおよい。次に作者、イラストレータ個人サイトやらSNSアカウントアクセスできればもっといい。「ジャスコ」以来、売れるかどうかは情報流通量で決まると言っていい状況だ。「なろう」発が売れる、選ばれるのは情報量がケタ違いに多いからだ。200ページ立ち読み可能、なんてのはダメなんだよ。一気に200ページを公開しても好きな奴しか読まない。それより作家の納品を10枚単位にして、公開していくべきだ。あとから「加筆訂正」すればいい。なんなら「完全版」でもいい。継続的に5分で読み終わる量を公開し続けることが重要なんだ。公開の価値は低い。公開「し続ける」ことに価値がある。

とにかく流通している情報量を期間を最大限にしなければ、俺が選ばない。

俺ガイル、楽しみです(暗喩)。

2015-02-04

増田Chrome拡張更新まとめ

あれからさら機能追加しておきました。

多分、読み専門でも使いやすくなってると思うので、Chrome使いの人は使ってみて感想要望もらえるとうれしいです。

https://chrome.google.com/webstore/detail/masudalert/clkiaalhgfhgcllngddndbghoaahhnfa



機能一覧


かいところでいくつか修正ありますが、おおまかな機能はこれだけです。

とくにツールチップトラバ先表示する機能ROM専の方でもあったらいいなと思う機能じゃないでしょうか。

自分はすごく気に入ってます

なんかあればツッコミ歓迎です。

要望があればなにかしらレスポンスすると思います

http://anond.hatelabo.jp/20150203042628

2014-12-24

はてブエントリ一覧ページに「あとで読むボタンが表示されるようになったのだが、

直感的なアイコンではないし、カーソルを合わせてもツールチップが表示されないので、何のボタンなんだか分からなくなっている。

最近の「あとで読む」推しは、おそらくPocketの勢いに脅威を感じてのものだと思うが、もう少し整理しないとただ煩雑になってしまうだけに終わるだろう。

はてなブックマークのPC版・スマートフォン版の各種一覧ページに「あとで読む」ボタンが付きました。その場ですぐにタグ「あとで読む」を付けてブックマークできます - はてなブックマーク開発ブログ

2014-11-26

増田Chrome拡張更新URLマウスオーバーで内容取得)したよ

コンパクトな増田 - Chrome Web Store

更新


 

とりあえず追加したかった機能は全部実装できたかな。

自分増田が使いにくいと思ってた原因は

  • スクロール量が多すぎる
  • 興味のない話題強制的に目に入る
  • 何に対する返信なのか分からない(確認のためにいちいちページ遷移したくない)
  • 返信が面倒くさい

だったので、一応、これで不満が解消できたかなあと思っている。


今回は慣れてきたからか、それほど苦戦しなかった。

backgroundページからcontents_scriptへメッセージ送る方法を知らなくて

色々勘違いして少し手間取ったぐらいかな。

一応、要望があったのでgithubリポジトリ作ってある

https://github.com/aoi-tomoyuki/compact_na_masuda

追記

ページ内にある同じURLマウスオーバーすると、一番最初に表示された位置にポップアップされることに今気づいた。

なおします。

追記:23:14

なおした。

2014-10-25

最近スマホサイト

◻︎よくわからないヘッダーがついていて情報量が減ってる

⚫︎マイナビニュース

マイナビニュースはヘッダー+広告+現在位置の3コンボで本当に最悪

⚫︎はてブ

改悪では?

⚫︎ITmedia

あんまりゆるせん、変なツールチップ?だすのやめろ

⚫︎毎日新聞朝日新聞日経ビジネス

まあまだゆるせる

◻︎文字サイズが大きすぎる

⚫︎朝日新聞

なんなんだあれは

◻︎広告がとにかくうざい

⚫︎追随広告全般

目に全く入らないが、画面が狭くなるのでやめてほしい

⚫︎+大きさが変わるやつ

アメブロとかをうっかり開くとよくある、下部の奴が膨れるやつ

めちゃくちゃに不快だし今すぐやめてほしい

⚫︎全画面で広告遷移

ワンクリックやすのやめろ

ITmedia

⚫︎画面描画後に挿入されるアドワーズ

はてぶのことだよ!誤クリックしまくり

⚫︎突然のエロ広告

サイゾーから仕方ないのかもしれんが…ビジネスジャーナルはほんとひどい

⚫︎とにかく広告がでかい

ライブドア最近エントリエントリあいだに広告差し込んでくるようになってるな…

追記するかも

2013-12-05

MacTYpeを使うとChromeツールチップの表示が変になる人へ

My Chrome テーマで作ったテーマを使ってるせいかもしれません

テーマデフォルトに戻してみましょう

2010-05-27

ウェブサイトでよく使われるデザインや機能の呼称のまとめ

「あちこちでよく見かける『あの機能』を実装するためにCSSのテクニックとかJSライブラリとか探したいんだけど、どういうキーワードで探したらいいのかわからない…」という人向け。

注意

※この呼称が正しいとは限りません

※この呼称に統一されているわけではありません

ブロック要素等の角を丸め

角丸

複数の画像を一枚にまとめてCSSbackground-positionで制御する(メニューのマウスオーバーなどでよく使われる)

CSSスプライト

フォームにうっすらと説明文が表示される & フォームにフォーカスすると消える

プレースホルダ

フォームに入力された文字にあわせて入力候補を表示する

サジェスト

ページ内リンク等をクリックした際に滑らかにスクロールさせる

スムーズスクロール

他のメニューを押しのけるようなアニメとともにサブメニューが表示される & 開いているメニューは常にひとつだけ

アコーディオンメニュー

メニューの横にある+マークなどをクリックするとその下にサブメニューが表示される & 複数のメニューを開くことができる

→ ツリーメニュー

水平メニューから垂れ下がるようにサブメニューが表示される

→ プルダウンメニュー

横一列に並んだアイテムスクロールバーでスライド表示 & アイテムが床面に反射したようなエフェクト

カバーフロー

水滴のように光沢のあるデザインボタン

→ アクアボタン

画像サムネイルクリックするとオリジナルサイズの画像が画面中央に表示される

ライトボックス

警告ウィンドウ等が画面中央に表示される & その他の操作を受け付けない(※指摘を受けて追記しました)

→ モーダルボックス

説明文等が書かれた小さな吹き出しをマウスカーソルの隣に表示させる

ツールチップ

タグアルファベット順に並べる & その使用頻度等に応じてフォントサイズや色を変えて表示する

タグクラウド

ひとつの記事を分割してページ番号を振る

ページャー、ページネーション

フッター部分が常に最下部に固定されている

→ フッタースティック

 
ログイン ユーザー登録
ようこそ ゲスト さん