[MooTools] テキストや画像のコピー禁止処理

Webサイト上にあるコンテンツのコピーを出来なくさせるプラグインを書いてみた。
Ajaxと併用するといい感じ。

ロジックは以下:

  1. 透過画像をbody全体に被せる(オプション:cover)
  2. oncopy を return false;
  3. Ctrl+AとCtrl+Cを無効にする
  4. B:前に戻る N:次に進む(オプション:move)

主な弱点と対策:

  • メニューから選ぶ「すべて選択」「コピー」
    →メニューやステータスバーを消した別窓に表示
  • ファイルへの直アクセス
    →アクセス制限、データベースの使用
  • ソース表示
    この記事この記事のようにデータベースやデータファイルからXHRでコンテンツを得る
    →jsファイルの難読化

window.openで表示

普通に表示

いずれも開発者ツールには無力です。
Ajax中心でいろいろ考えてみたけど、やっぱり画像にしたりFlash使うのが最強なのかな。
HTML5環境であればCanvasを使用するのがいいかもしれない。

“[MooTools] テキストや画像のコピー禁止処理” の続きを読む

[MooTools] SpriteNavigation Plugin

MooToolsとCSSでFlashのような滑らかなマウスオーバーやカレント表示を実装するプラグイン。

spritenavigation plugin

元ネタはCreate a Sprited Navigation Menu Using CSS and MooToolsで、
よくやるコーディングに合わせて作り直しつつちょっとロジックを変えてクラス化した。
使用する際にはHTMLとCSSにいくつかルールがあります。

DEMOはこちら

Image

全部つなげて作る。順番はなんでもいいです。
デモのやつは上から、通常・マウスオーバー・クリック・カレント、になってます。

navigation

Download(psd file):

“SpriteNavigation Demo Base” をダウンロード nav.zip – 610 回のダウンロード – 41 KB

Creative Commons License

“[MooTools] SpriteNavigation Plugin” の続きを読む

[MooTools] mooZoomGallery Plugin

mooZoomGalleryはサムネイル画像から拡大画像への表示を、画像が並んでいるエリア内で行うMooTools用ギャラリープラグインです。
LightBoxのようにレイヤーを被せて表示するのではなく、他のサムネイルを非表示にする事で画像を表示する場所を確保します。
……なんかこの動きどこかで見たような気がしなくもないですが、
このプラグインは全て同じサイズのサムネイル画像を並べたレイアウトに特化しています。

View DEMO
View Demo

“[MooTools] mooZoomGallery Plugin” の続きを読む

[MooTools] mooContreGallery Plugin

mooContreGalleryはhttp://www.contreforme.ch/のProjectsページで使われている
画像拡大、スクロール、インフォメーション表示など一連のエフェクトを貴方のサイトに実装するプラグインです。
本家サイトの動きをClass化+最新バージョンに対応させつつ再現したものですが、
オプションを変更する事によってエフェクトをお好みにアレンジすることが出来ます。


moocontregallery demo

View Demo

当プラグインの公開についてはcontreforme sàrlの中の人に許可を頂きました。
This class original source created from contreforme sàrl. Thank you!

また、このプラグインは「これどうやって作るの?」という質問がきっかけで出来たものです。
jQueryではやる気が出ず、MooToolsでの回答になりましたが(笑)質問を送ってくれたH氏にも感謝!
チュートリアル記事はこちら »

“[MooTools] mooContreGallery Plugin” の続きを読む

[mootools]カイジっぽく「ざわ…ざわ…」を表示する…

何となく思いつきだけで作ってみたっ…!
このプラグインは、ページに「ざわ…」を延々表示し続ける…たったそれだけの機能しかない…!


直接見る »

おっと……忘れるところだった………
一度しか言わない…… このプラグインはmootools ver1.2 が必要だ…
jQueryとprototype.jsでの作成は検討していない…が、要望があったら作る…かもしれないっ…

“[mootools]カイジっぽく「ざわ…ざわ…」を表示する…” の続きを読む

[mootools]スクロールに追随させる – mooFollow.js

スクロールした時勝手に追随して動く要素を作成するクラス。mootools ver1.2以上用。
どう見てもwrapScrollです本当に(ry)っていうツッコミは置いといて、
スクロールした時とし終わった時のイベントとか、
トランジションや遅延の指定とかがしやすい。と思う。

“[mootools]スクロールに追随させる – mooFollow.js” の続きを読む

[mootools] Class – KitchenTimer

前エントリーのカウントダウンタイマークラスにカウントアップとか追加してキッチンタイマーっぽい代物に。
Javascriptなのでページ内埋め込みが出来るんだけどmootoolsが必要っていう。

使い方は続きに。

“[mootools] Class – KitchenTimer” の続きを読む

[mootools] ひらがなをローマ字に変換するクラス

人が作ったのを使って楽したかったんだけどいいのが無かったので、ひらがなをローマ字に変換するクラスを自作した。
タイピングゲーム製作でどうしても必要になる問題文章を、ひらがな(数字+一部記号も可)で作るだけで全部ローマ字に変換します。
※mootools.1.2が必要

日本語は母音と子音の組み合わせで出来てる。
「く」ならK+U、「し」ならS+I/SH+I/C+I、「わ」ならW+A。
入力方式が変わるのは、「し」や「じ」等特定の文字と、「ん」、小文字のや行、小文字の「つ」との組み合わせの時だけで
あとは特定の子音1種と母音5種類の組み合わせで成り立つ。

で、大体次のような流れで変換を行います。

  1. パブリックメソッドに文章投入→「このぶんしょうはさんぷるっぽいなにかです!」
  2. 1文字または2文字単位に分割して配列化。小文字は前後の文字とセットにする。
    →[こ,の,ぶ,ん,しょ,う,は,さ,ん,ぷ,る,っぽ,い,な,に,か,で,す]
    「っ」で終わる場合や記号・数字とセットになる場合はそれぞれを1文字とする。
  3. ループ文で1文字か2文字か判別。変換関数に飛ばす
    →こ:1文字  しょ:2文字
  4. 1文字の場合はそのまま変換。この時、入力方式の設定がある文字についてはその方式に従う。
    →こ:K+O  ん:NまたはNN
  5. 2文字の場合、最初に「つ」があるかどうか捜査。
    【小文字のつがある場合】
    2文字目を1文字変換のメソッドに通して子音を2つに増やす。
    →っぽ:P+PO →っと:T + TO
    【小文字のつがない場合】
    switch文で入力方式の設定がある文字(し+小文字や行、じ+小文字や行等)を変換。
    他は、1文字変換のメソッドに通して子音+小文字や行ローマ字にする。
    →しゃ:(SH)(SY)+A にゃ:N(i)+YA
  6. 結果を返す
    →[ko,no,bu,nn,syo,u,ha,sa,nn,pu,ru,ppo,i,na,ni,ka,de,su,!]
    →[k,o,n,o,b,u,n,n,s,y,o,u,h,a,s,a,n,n,p,u,r,u,p,p,o,i,n,a,n,i,k,a,d,e,s,u,!]

以下全文。長いw

“[mootools] ひらがなをローマ字に変換するクラス” の続きを読む