時々圌らは戻っおきたす...再び

ごく最近、快適なTrackBarスラむダヌに関する投皿 がナヌザヌburによっおハブに公開されたした。 それらがシンプルであり、jQueryず組み合わせお䜿甚​​できる点で気に入っおいたす。 少し埌に、時間範囲を決定するスラむダヌに関する投皿もありたしたが、その重さず「重さ」のために非難されたした。 次に、TrackBarに基づいおスラむダヌを䜜成し、任意の時間範囲を遞択するずいうアむデアを思い぀きたした。 発明-完了。 そしお今、私はhabra-publicityの成果を発衚したす。



だから



次のようになりたした





基瀎ずしお、jQueryに適応したTrackBarの3番目のバヌゞョンを䜿甚し、それのみをアップグレヌドしたした。必芁に応じお、アドオンを元のバヌゞョンに転送するこずができたす。

すぐにリンクを提䟛しおください

TrackBarの3番目のバヌゞョンずその説明

TrackBarの4番目のバヌゞョンずその議論

曎新されたTrackBarのデモ



䜕が悪かった

最初は、スラむダヌは1぀たたは2぀の排他的敎数を決定するためにのみ蚈算されおいたした。 したがっお、その実装䞊のすべおの欠陥は次のずおりです。
  1. 敎数でのみ動䜜したす
  2. サンセリフ
  3. 数字ではなくテキストを割り圓おるこずができない
これらすべおの欠点の修正には、午埌3時ほどかかりたした。



新機胜

私の倢のスラむダヌを䜜成するために、初期の実装を真剣に修正し、新しい倉数ずむベントを導入する必芁がありたした。 そのため、スラむダヌでできるこずは次のずおりです。
  1. 小ず倧の2皮類のセリフを衚瀺する
  2. カスタム眲名を䜜成したす。
    • 倧きなセリフの䞊
    • スラむダヌ䞊
    • 巊右の境界線䞊
  3. 倀にスラむダヌをドラッグしながら正確に配眮する
  4. 独自にフォヌムの独自の非衚瀺入力を䜜成したすonMoveを蚘述する必芁はありたせん
  5. その堎でオヌバヌラむド
    • スラむダヌの䜍眮ず倉数倀
    • 巊右の制限
    • セリフ
  6. 確立された境界を超える倀の間隔を衚瀺するには
  7. 倀が範囲倖の堎合、スラむダヌを非衚瀺にしたす
  8. 䞊蚘のすべおを柔軟に構成する
  9. バヌゞョン4互換
革新のいく぀かはここで芋るこずができたす



すべおのファむルでアヌカむブする



新しい蚭定の完党なリストず簡単な説明



远加のパラメヌタヌパラメヌタヌデフォルト倀

showSmallTickstrue-小さなセリフの衚瀺を蚱可たたは犁止するフラグ



showBigTickstrue-テキストを割り圓おるこずができる倧きなセリフの衚瀺を蚱可たたは犁止するフラグ



showBigTicksTexttrue-倧きなセリフの隣のテキストの衚瀺を蚱可たたは犁止するフラグ



tickRoundUp= roundUp = 0-セリフの数、぀たり2぀の隣接するセリフの間に䜍眮する倀の数を担圓する倉数。 デフォルト倀は0で、セリフは衚瀺されたせん



tickDivider5-倧きいセリフの間の小さいセリフの数を担圓する倉数この倀より1぀倚い



allowOverrideBordersfalse-間隔を維持しながら、範囲が確立された境界を超えるこずを蚱可たたは犁止するフラグ



precisePositioningfalse-スラむダヌの正確な配眮を蚱可たたは犁止するフラグ



leftInputNameid + 'Left'-巊スラむダヌデュアルフラグが蚭定されおいる堎合たたはスラむダヌ党䜓デュアルが蚭定されおいない堎合の非衚瀺入力を䜜成するために䜿甚される倉数



rightInputNameid + 'Right'-右スラむダヌの非衚瀺入力を䜜成するために䜿甚される倉数デュアルフラグが蚭定されおいる堎合



createHiddenInputsfalse-非衚瀺入力を䜜成および管理するかどうかを決定するフラグ





远加のむベント

onLeftLimitTextSet、onRightLimitTextSet-スラむダヌの巊右の境界にテキストを蚭定



onLeftSliderTextSet、onRightSliderTextSet-巊右のスラむダヌにテキストを蚭定



onBigTickText-倧きなセリフにテキストを蚭定するず、セリフが配眮される倀が送信されたす





远加機胜

updateLeftValuev4、updateRightValuev4 -スラむダヌの巊右の倀を蚭定するための関数。これらは3番目のバヌゞョンにはありたせんでしたが、4番目に登堎し、ここに远加するこずも決定したした



SetPositionWithNoMove -onMoveむベントを呌び出さずに倖郚で倉曎された倀に埓っおスラむダヌの䜍眮を蚭定したす正垞に動䜜するにはupdateLeftValue、updateRightValue関数を入力する必芁がありたした



SetPosition-同じこず、onMove呌び出しのみ



SetRuler-セリフの再定矩



ResetLimits-境界倀を䞊曞き



4番目のバヌゞョンで、スラむダヌの操䜜がupdateLeftValueずupdateRightValueの呌び出しに制限されおいた堎合、曎新されたTrackBarの操䜜の原則は次のずおりです。

  1. たず、必芁な倀を盎接蚭定したす。䟋えば

    var scaleObj = $.trackbar.getObject("scale");





    scaleObj.leftValue = 10;





    scaleObj.rightValue = 20;





    scaleObj.rightLimit = 100;



  2. 次に、1぀以䞊の倀アプリケヌション関数を呌び出しscaleObj.SetPosition();



    たずえば、 scaleObj.SetPosition();





    scaleObj.ResetLimits();





すべおの機胜を実蚌するために、元のデモが行われ、少し装食されたした远加されたパラメヌタヌは青で匷調衚瀺されたす。たた、7番で、2぀のスラむダヌに基づいお任意の時間範囲の遞択を敎理する䟋を远加したした䞊の方が範囲のスケヌルを決定し、䞋の方がそれを蚭定したす。 その䞭で、すべおの改善が最倧限に、最も明癜な䜿甚䟋に䜿甚されおいたす。



元のスラむダヌを完成させる䞊で最も興味深いこずは、それらにセリフを远加するこずでした。 それらの実装は異なる可胜性がありたすが、私は次のアプロヌチに決めたした。

  1. 最初に、メむンdivが線成されたす。このdivでは、スケヌルが配眮され、スラむダヌのある線の䞋に衚瀺されたす
  2. 次に、異なるidのセットが生成され、どのセリフを描画するかが決定されたす
  3. シャム双子のようにセリフが結合しないように、セリフはそれらの間に挿入されたすが、幅は各スラむダヌに察しお個別に蚈算されたす。
この芏暡の眲名は、ほが同じ原則に基づいお構築されおいたす。

このアプロヌチにより、セリフを簡単か぀迅速に䜜成しおcssで制埡できたすが、重倧な欠点が1぀ありたす。すべおのブラりザヌが小数倀のすべおの笊号を䜿甚しない、砎棄たたは䞞めるずいうこずです。 したがっお、倚数のセリフ40を超えるを䜿甚するず、右偎のセリフがトラックバヌを完党にカバヌしおいないこずが明確にわかり䟋1を参照、セリフの䜍眮ず実際の倀に矛盟がありたす。 小さな倀では、これは完党に芋えたせん。



ブラりザヌ間の互換性ず既知の欠点

最初、すべおの開発はセカンドバヌゞョンのFirefoxで行われたした。これにより、セリフ甚のかなり良いレむアりトをすばやく簡単に䜜成し、他のブラりザヌ甚にさらに最適化するこずができたした。 それでは、さたざたなブラりザヌのスラむダヌの動䜜の分析を始めたしょう。



Firefox v2.0.0.13

問題は認められず、すべおが意図したずおりに機胜したす。 時々発生する可胜性のある唯䞀の問題は、セリフずスラむダヌの右偎の倀ず倚数のセリフの䞍正確な䞀臎ですが、これは䞊蚘のずおりです。





IE v7

奇劙なこずに、すべおが正垞に動䜜したす。Firefoxの堎合ずほが同じですが、スラむダヌの右偎に既に倚くの䞍䞀臎がありたす。 さらに、ノッチ自䜓は数ピクセル高くレンダリングされたす。





IE v6およびv8b1

倖芳では、すべおがIE 7に䌌おいたすが、䞭倮郚分に透明性はありたせん。 それほど重芁ではありたせんが、特にIE 8では䞍愉快です。おそらく、cssの透明床の倀は単玔に誀っお定矩されおおり、これは䜕らかの圢で将来的に理論的に修正できたす。 IE 6では、7番目の䟋で、小さなテキストが境界を越えお新しい行に移動したした。





Safari 3.1.1

たた、すべおにほずんど問題はありたせんが、スラむダヌの端にはすでにセリフのより匷力な䞍足がありたす。 これは最初の䟋で顕著であり、スラむダヌの玄10がスラむダヌで芆われおいないため、Safariでは50個以䞊のセリフを䜜成するこずはお勧めしたせん。





この時点たで、テストプロセスは喜びでしたが、すべおが垞に垌望どおりに行われるわけではなく、レヌキがどこかに出おきたに違いないずいう気持ちがゆっくりず忍び寄りたした。 そしお、圌らはクロヌルアりトしたした...



Opera 9.27

どこから始めればいいのかわかりたせん。 原則ずしお、セリフをオフにするず、スラむダヌの動きを描くずきのアヌティファクトを陀いお、すべおがうたくいきたすスラむダヌの眲名の堎所に䞍快な黄色の痕跡があり、さらに、それらはクむックドラッグアンドドロップで垞に消えるずは限らず、ストリップにいく぀かの倀が衚瀺される堎合がありたす Operaのセリフは、䜜成の原理が小数幅の䜿甚に基づいおいるため、非垞に灜難です。 実隓により、オペラは敎数のパヌセント倀のみを認識するこずが瀺されおいたす。 そしお、圌女は500ピクセルの0.8が4ピクセルであるこずを気にしたせん ピクセル最初の䟋のように。 たあ、それが䞞められおも、そうではありたせん-小数郚分は単に砎棄され、0しか残りたせん。 私が理解しおいるように、圌女を玍埗させるこずは無意味です。したがっお、䟋1ず2では、このアプロヌチのすべおのパヌセンテヌゞではなくすべおの喜びを芳察したす。 幅の倀はほが党䜓であり、䟋のNo. 7のように倀が1.02ず6.06であり、それらが特別に遞択されなかったため、残りの郚分は幅の倀がほが党䜓であり、倩気の100分の1を遮断しなかったため、このような運呜を回避するこずができたしたUFOの陰謀G。 圌女はただ著しく遅くなり、圹に立たないずいう事実に぀いお䟝存関係は次のずおりです。セリフ付きのスラむダヌが倚いほど、遅くなりたす。





他のブラりザ

他のブラりザではチェックしたせんでした。時間がないので、怜蚌のためだけにむンストヌルしたくないだけです。



今埌の予定

正盎に蚀っお、私にはわかりたせん。透芖胜力の明らかな傟向はありたせん。 䜕が起こるかを掚枬したくありたせん、時間が経おばわかるでしょう。





UPD倚くの人が、特にOperaで速床が䜎䞋するず蚀いたすが、これは完党には䜿えたせん。 遅くなるのはjavascriptコヌド自䜓ではありたせんが、ブラりザは倚数のセリフおよびすべおのスラむダヌからをレンダリングしたす。 䟋7を個別に実行するず、はるかに高速で快適になりたす。 しかし、これは私たちが取り組む他の問題を取り陀くものではありたせん。



All Articles