位置固定IE6 +ドラッグアンドドロップ

それについて多くのことが書かれていますが、ポイントではありません...



画面上の固定位置を持つドラッグ可能なレイヤー、スクロールページ-レイヤーはそのまま残ります。 ご存じのように、このアイデアはFF、Opera、Google Chromeで元気に具体化されていますが、IEは私のアイデアをゴミ箱にインテリジェントに送信しました。スクロールすると、移動したレイヤーがページに沿ってクロールされます。



ネットワークで詳細に説明されているレイアウト、100%高などのオプションは、レイヤーを任意のデザインで使用できるようにするための汎用性を必要としたため、私には向いていないと言わなければなりません。



その結果、選択は表現に委ねられ、この状況では論理的であることが判明しました。 この実装で考えられるすべてのドックを読んで、いくつかの重要な結論に達しました。



1. <DOCTYPE ...>



宣言の前に、空のHTMLコメントが配置され、バリデーターはこれについて文句を言わず、エクスプローラーはこのdoctype広告の受け入れを停止します。 これにより、多くの問題が軽減されます。



2.固定レイヤーで次のCSS構成が使用されます。

position:fixed; _position:absolute; top:0; _top:expression( eval(document.body.scrollTop) + 'px' );







3.フィルターを使用すると、IEの固定レイヤーの単収縮を取り除くことができます。

if (document.body.filters) true;





偶然に気づきました。



そして今、最も重要なこと。 設計はそれ自体非常に標準的であり、転送後にレイヤーがマウスで転送されるまで機能します-修正する機能はなくなります。 多分それはすでに誰かによって行われたか、どこかで説明されたかもしれません、その場合、私はただ見苦しかったのですが、自分で方法を掘らなければなりませんでした、それが判明した方法です...



レイヤーが常に同じ絶対位置にとどまるスクロールの上部に等しくなる代わりに、ドラッグ時に保存されたCookieからインデントの値を取得し始めました。



_top:expression( Math.round(my_class_cookies.get('POSY')) + Math.round(offsetParent.scrollTop) + 'px' );







my_class_cookies.get('POSY')



は、Cookieから値を取得するだけのJavaScriptクラスメソッドです。 すべての操作の後、コードは次のようになりました。



IE6で修正された位置



レイヤーは、ドラッグアンドドロップ後もロックされたままです。 動作デモを見る



All Articles