uupaa.js

Effectの再実装(Tweenの実装)がだんだんと形になってきた。

Tweenを実装するにあたり、いろいろと探りつつ設計をしています。 肝となる、Tweenの演算周りは、Robert Penner's easing equations を使わせてもらっています。現時点の実装はこんな感じ(Firefoxで見てね)。 http://uupaa-js.googlecode.com/svn/trunk/demo…

Effectの再実装(リアルタイム→プリレンダ)

easingを組み込んだEffectがほしいので実装を開始しました。今までは、現在の状態を元に次の状態を演算で(リアルタイムに)求めていましたが、 あらかじめ演算した結果(プリレンダ)を元に描画を行う方式に変更します。骨子はこんな感じ。 uuclass.Easing = {}…

uupaa-selector.js version 1.2 をリリースしました。

Ver 1.1との違い XMLDocument, HTMLDocumentを区別し動作する HTMLDocument(content-type: text/html) なら タグ名の大文字/小文字を無視して要素を検索するが、XMLDocument(content-type: application/xml or application/xhtml+xml or text/xml)なら区別す…

HTMLDocument と XMLDocument を見分ける方法

HTMLDocument と XMLDocument を見分ける方法を模索していました。2008-10-12追記: 内容を大幅に更新しました 何がしたいのか uupaa-selector.js version 1.2では、HTMLDocuemnt と XMLDocument で、CSSセレクタの挙動が変化します。 HTMLDocuemnt なら 小文…

uupaa-selector.js version 1.1 をリリースしました。

uupaa-cssselector.js を改名し、機能を大幅に強化したものを uupaa-selector.js としてリリースし直しました。2008-10-11追記: uupaa-selector.js version 1.2 をリリースしました。 - latest log uupaa.js(ver 0.7)の実装をベースに、 getElementById() ge…

JavaScript の高速化その2 「全てを疑い、自分の目で確認すること」

こういう泥臭い資料作りもやってるので、一応書き残します。 問題1. array.length へのアクセス var ary = new Array(100000); な配列があるとします。IE6環境下で、配列の長さを求める方法を、早い順に並べてください。TEST1. a.length; TEST2. var L = "le…

uupaa.jsの開発開始から6ヶ月が経過。ここから楽しいはず!

2008/04/01の開発開始から6ヶ月が経過しました。 この6ヶ月で、クロスブラウザを実現するための基礎資料もかなり出揃い、高速な足回りも実装することができました。 今後はコア部分の開発よりも、Webサイトで多用される機能やユーザが欲しがる機能(見栄えやU…

世界最速のCSSセレクタ(getElementsBySelector とか querySelectorAll みたいなもの)をリリースしました。

http://code.google.com/p/uupaa-js-spinoff/2008-10-11 追記 uupaa-selector.js version 1.2 をリリースしました。 - latest log おまたせ 最新のjQuery(1.2.6)よりも早く、jQueryと比較にならないほどの高い精度で正しく動作するCSS3セレクタの実装(uupaa-…

uupaa.js 0.7 1001%+ Faster! - CSSセレクタの精度と速度でjQueryを超えてみた。

CSSセレクタのチューン開始から、えーと… 今は、20時間目かな(もうそんなに…)20時間前に立てた目標は、IE上で動作するjQueryの速度を超えること。 結果発表 uupaa.js 0.6 uupaa.js 0.7(α) jQuery1.2.6 kQuery Prototype.js 1.6.0 3174 317 371 495 2007 uupa…

uupaa.jsのquerySelectorAll相当の機能(uu.css)をもっと高速化

CSSセレクタをチューンしてます。作業開始から4時間が経過し、速度向上ぐあいはこんな感じ(in IE6)。 uuppa 0.6 uuppa 0.7(α) jQuery 1.2.6 Prototype 1.6.0 3161 653 382 2046 途中省略 テストツールとテスト内容は、http://slickspeed.googlecode.com/svn/…

uupaa.js version 0.6 をリリースしました。

変更点: http://uupaa-js.googlecode.com/svn/trunk/CHANGELOG.htm 注意点 version 0.6 では CSSセレクタ(uu.css)を書き直しています。 → querySelectorAll相当の機能を実装してみた(uupaa.jsのCSSセレクタを書き直した) - latest logjQueryと比較した場合に…

こっそりと特定の要素をマーキングし取得する

CSS + JavaScript(uupaa.jsも)を使い、ユーザに悟られないように要素をマーキングし、要素を特定する方法です。昨日までの一連のエントリから、ユーザに知られずに要素をマーキングする妥当な方法がやっと見つかりました。 IE なら ruby-align: center を、…

JavaScriptでマウスカーソルがポイントしている要素(:hover)を取得する方法

さっき書いたエントリは前フリでこっからが本題。マウスカーソルが乗っている要素を直接取得する関数があったら色々と便利です。ゲームなどにも使えそうですし。 document.elementFromPoint(x, y) とすることで x,y直下の要素を取得できますが、Firefox2 に…

Operaはライブラリ側の創意工夫でなんとか出来ないことが多い

他のブラウザで出来るのにOperaで出来ないこと ユーザーに気づかれないようにスタイルを設定しづらい ブラウザをHackして、本来実装されていない機能を実現するために、CSSを使って要素をマーキングをしたい場合があります。 そのような場合は、ユーザには気…

uupaa.js 0.6 RC1がダウンロード可能になりました。

uupaa.js(ver 0.6 RC1)がダウンロード可能になりました。RC0からの変更は、 uu.readyの再実装 uu.unreadyの追加 となっています。

uupaa.js 0.6 RC0がダウンロード可能になりました。

uupaa.js(ver 0.6 RC0)がダウンロード可能になりました。version 0.6 では、 新しいCSS3 Selector IE6でDataScheme(image/gif)が使用可能に IE6でposition:fixedが使用可能に ModuleReady状態のサポート いくつかのBugFix 等の変更があります。特に問題が無…

IE6 で position: fixed をサポートしました。

uupaa.js(0.6) から IE6 でも position: fixed が使用可能になります。こんな感じのCSSが使えるようになりますよ。 position: fixed; top: 100px; position: fixed; bottom: 5em;em単位で指定した場合は、フォントサイズを変更すると自動的に追従しますし、…

なめらか卵のとろけるプリン

今日はおもに、Effectのなめらかさを向上させる方法を模索していました。Effectはタイマードリブンです。タイマーから定期的なタイミングで呼ばれ式を評価し結果を描画します。 タイマーを細かく設定すれば理論上のなめらかさは向上しますが、実際にはブラウ…

querySelectorAll相当の機能を実装してみた(uupaa.jsのCSSセレクタを書き直した)

ここ数日は、uupaa.js の CSSセレクタ部分を書き直してました。 CSSセレクタ部分とは、jQuery("div > p") とか $$("#hoge~span") を解釈し要素を選択する機能です。document.querySelectorAll() としても標準化されています。uupaa.js(ver 0.5)まではCSSセレ…

querySelectorAll

古いブラウザ向けに、getElementsBySelector いわゆる querySelectorAll を実装しようと、色々と取り組んでいるんですが、いくつか問題が。 なんかきれいに実装できない。 "E + F" と "E ~ F" のFは先読みしたほうがいいのか、しないほうがいいのか :first-l…

最近のOperaってデグレードしてませんか?

例えばマルチプルセレクトのセレクトボックスで、ドラッグしたままアイテムをずずずって選択し、セレクトボックスの外に移動してドラッグを止めると、アイテムの選択状態は変化しているのに onchange イベントが発生しないとか。 # Opera9.2xまでは問題なか…

ベンチマーク

ベンチマークは、できるだけ多様な条件で取得すべきです。たとえば、Array.prototype.forEach のベンチを取る場合は、 var ary = [0, 1, 2, ...]; ary.forEach(function(v, i) { // なにか }); のようにすると思いますが、これでは不十分です。どれが、とは…

uupaa-datasceheme.js Version 1.0をリリースしました。

今回のリリースで以下の改善を行いました。 インターレースGIFが正しく表示されるようになった 256byte以上のデータを持つ画像が正しく表示されるようになった 表示サイズを制限する機能を盛り込んだ(デフォルトは48x48) 試してみたい方はこちらから http://…

uupaa-datasceheme.js Version 0.6をリリースしました。

連日開発していた機能を単体で動作するようにギュギュッと固めて、リリースしてみました。 http://code.google.com/p/uupaa-js-spinoff/お試しページはこちら http://code.google.com/p/uupaa-js-spinoff/ IEでアクセスしてください。 Canvasを使った描画機…

IE5〜IE7でも、RFC2397(Dataスキーム, DataURI)を使えるようにした!(続き)

ある程度の描画速度の改善と、描画品質(拡大/縮小)の大幅な改善に成功しました。 速度的なロスを回避しつつ描画品質を改善できたときは、心の中でガッツポーズがでました。 ほかに大きな問題が見つからなければ、DataURIをデコードする機能をリリースできそ…

IE5〜IE7でも、RFC2397(Dataスキーム, DataURI)を使えるようにした!

IE5,IE5.5,IE6,IE7 とおよそ10年に渡り、実装されなかった機能の一つに、Dataスキーム(DataURI) が あります。 uupaa.js version 0.6(近日中にリリース予定)では、DataURI をデコードする機能をエミュレートします。 DataURIって何 ラリーさんがRFC2397で提…

突如登場した新ブラウザGoogle Chromeへの対応

先ほどGoogle Chromeをダウンロードできました。 http://www.google.com/chromeアイコンもメトロイド風味で良い感じ。(今ならポケモンって言うんだろうけど)これから、uupaa.js を Chrome に対応させるための作業を開始します。 ファーストインプレッション …

uupaa.js version 0.5の問題

自分で自分にIssueチケットを発行してもあれなんで、ver0.5で見つかった問題をここに列挙しておきます。 uu.css() uu.config.cacheID の値を参照していないためキャッシュが常に有効になっている 修正方法 - uupaa.js(217) if (expr in uu._cacheXPath) { + …

uupaa.js version 0.5 リリース!

Google Code Archive - Long-term storage for Google Code Project Hosting. で、uupaa.js version 0.5 をリリースしました。 前回のリリースが七夕だったので、53日ぶりのリリースとなります。今回は、 FirebugLite1.2の自動組み込み セレクタの戻り値をNo…

SafariのCanvas::createPattern が反転する

uupaa.js version 0.5のリリース作業に取り掛かっていますが、ひとつ非常にこまったバグが残っていたりします。それは、Windows上のSafari3.1で発生するのですが、 <html><head><title>Safari3.1(525.13.3) createPattern is overturnd</title></head><body> <div> <img id="img" src="cover0.jpg" alt="" /> </div></body></html>