数学、電気の勉強始めました!プログラムにも挑戦しています!|ω・)ノ

ねごとめも背景

# ねごとめも

# カウンター

# プロフィール

negotoy

Author:negotoy
電気の勉強始めました!
テキストエディタを使ってプログラミングに挑戦中。
fc2 ブログに公開しているテンプレート等は、自由にカスタマイズして、ご活用ください。
プログラム実行の前に必ずコードの確認をお願いします。

# 最新記事

# カレンダー

12 | 2017/03 | 03
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

# スポンサードリンク


使用ブラウザ:chrome
HTML5から導入された属性に contenteditable というのがあるらしい。
これは、前回の { テキストエリアに色付き文字を表示出力する } を作成する過程でみつけたもの。
この属性は、html タグの div タグなどを編集可能なテキストエリアにしてしまうもの。
使いみちは、いまいち分からないけど、面白い機能だと思った。

前回のは、テキストエリア要素に、JavaScript で色付きの文字を表示させましたが、
これは、見た目そう見えるだけで、テキストエリアは透明にして見えないように設定しています。
テキストエリア要素の中にタグを設置しても反映されないので、文字に色を付ける事はできません。
なので、その下に、pre タグを重ね合わせ、文字が入力されると、
pre タグに対して処理を行うものでした。

しかし、この contenteditable 属性は、色などを指定したタグを
直接設置することが出来るとの記事を見つけたので、
さっそく、試してみました。
最初は、 div 要素を使ってテキストエディタ風の色文字の出力に挑戦したのですが、
改行をうまく処理する JavaScript を書くことが出来ません。_(:3」∠)_

contenteditable 属性を利用した簡易テキストエディタ

プログラムはこちらのサイトで公開しています
→ contenteditable 属性を利用したテキストエディタの作成


なので、改行のエスケープシーケンスが使用できる pre タグで試してみると、同じく動作。
改行もエスケープシーケンスが使用出来たので、処理が楽になり、
目標の色付き文字を出力する所までは作成する事が出来ました。


作成に使用したブラウザは chrome 
この要素の処理を行う JavaScript には互換性がないので、chrome 以外では動作しません。
なので、ブラウザのバージョンが上がると動かなくなる可能性もあると思います。


fc2 ブログにもあるテキストエリアの文字が色付で表示出来る html エディタ。
これは、JavaScriptで動作してるのかな?
詳しくは分からないけど、{ テキストエリアに色付き文字を表示出力する } に挑戦してみました。
本格的なものは無理なので、触りの部分のみ。
テキストエリアに入力した文字を色付で表示させる所まで。

テキストエリアの文字に色をつけるには、透明なテキストエリアと pre タグを
重ねることで、それらしく動作させることが出来ました。

最初に作成したのは、 setInterval 関数でテキストエリアを監視して
文字に色を付けてましたが、
onkeypress イベントが発生したときのキャレットの正しい位置を setTimeout 関数で
遅らせる事で取得出来る事がわかりました。
なので、 setInterval 関数を使わないように修正しました。

キャレットの位置の確認 → テキストエリアのキャレットの位置の取得

JavaScript で動作するプログラムは、
こちらのサイトに置いてます → テキストエリアに色付き文字を出力する( javascript )

{ テキストエリアに色付き文字を出力する:β }

red
blue
green
purple
 red
blue
green
purple
{ 色をつけて出力する文字群 }


ブログのテンプレートに設置している画像拡大機能の
ドラッグ時の挙動をブラウザ外でマウスイベントが発生しても
取得出来るように、javascript を修正。

今までは、要素ドラッグ時、ブラウザの外にマウスポインタが移動すると、
ドラッグイベントが停止してしまっていた。

このことについて、調べてみると、javascript のイベントを html の要素ではなく、
document に登録するとブラウザ外でのイベントの位置情報の取得が出来ることがわかった。

参考にしたのはこちらのサイト様 → マウスをウィンドウ外で離されてもイベントを受け取る

動作確認 → fc2 ブログテンプレート画像拡大機能


fc2 ブログに公開しているテンプレート、 [ wi-sepia-a ] の画像拡大機能を
等倍表示出来るように、css と javascript を追記してみた。

動作確認は最新の IE,Chrome,Firefox。
最新以外の環境はないので、以前のブラウザで動くかどうかは分からない。


縦長画像サンプル


横長画像サンプル

2016/06/06 の今現在、サイトの上部にブログの最新記事へのリンク機能を追加してる。

作っていく中で、要素を移動させるときのフラグの取り方が、うまく行かず、
なんかウニャウニャした javascript を書いてしまった。

もう一回、最初から作りなおすと、もう少しスキっとした javascript が書けるかも。
これ作成するのに数日掛かってしまったので、いまはその気持ちにはなれない。

動作確認はやってるつもりだけど、不具合があったら、こっそり修正します。

# スポンサードリンク