Material-ui: マルチクリックを速くしおもリップルは残りたす

䜜成日 2017幎07月25日  Â·  56コメント  Â·  ゜ヌス: mui-org/material-ui

誰かが1秒あたり玄

自分で詊しおみおください https //material-ui.com/demos/buttons/#text -buttons

線集このコメントは問題を説明しおいたす-アップよりもマりスダりンの方が倚く、波王は解攟されたせん。

bug 🐛 ButtonBase

最も参考になるコメント


はい、同じ動䜜です。リップルは残り、ホバヌするたびにその䞀郚が倱われたす。

それは実際には倧きな問題ではありたせんが、存圚したす。

曎新埅っおください。 ちょうどアむデアを埗たした。 これがマりスのアップよりもマりスのダりン別名クリックの方が倚い堎合はどうなりたすか 2本の指で繰り返し抌すず発生する可胜性のあるトラックパッドを䜿甚しおいるためです。

私はこの理論をテストしたずころ、それは本圓のようです。リップルを䜜成するために行うようにマルチクリックするず、21個のマりスダりンむベントず11個のマりスアップむベントが発生したした。 これが理由だず思いたす。 #TookUsLongEnough

党おのコメント56件

どのブラりザを䜿甚しおいたすか Chrome59では再珟できたせん。

で再珟できたせん

  • Chrome 59.0.3071.115
  • Firefox 54.0.1
  • ゚ッゞ38.14393.1066.0
  • IE 11.1358.14393.0

@ oliviertassinari @ kgregory私はWindows10、 Firefox54.0.1を䜿甚しおいたす。
私はラップトップのタッチパッドを䜿甚しお、䞡方の指でより速い速床でそれを行っおいたす... 1本の指ではそれを行うこずができないので、それが違うず思いたす。 緊急のバグではありたせんが、発生する可胜性がありたす。

どちらも再珟できたせんでしたがWindows 10、Firefox 54.0.1、Chromeではマりスの右ボタンセカンダリを䜿甚するず、そのように動䜜したす。

@NonameSLdev私は毎秒玄

@Dattayaは、Chromeでこれを再珟するために、マりスの右ボタンで繰り返しクリックしおいたすか

@Dattayaを気にしないでください、私はChromeでマりスの巊ボタンず右ボタンを同時に玄10回半高速でクリックしお再珟したした。

マりスを右クリックするず波王が出るのではないかず思いたす。 私はノヌず蚀うでしょう。 したがっお、おそらく正しい修正はそれらを無効にするこずです。

@oliviertassinariは良い考えですが、この動䜜に぀ながるリップルに倀するナヌザヌむンタラクションの他の組み合わせがおそらく存圚するでしょう。 右クリックでのむンクの波王に぀いお、暙準で䜕か芋たこずがありたすかそこには䜕もないず思いたす Chromeでは、ブックマヌクを右クリックしおもブックマヌクバヌに波王はありたせん。 倚分これは十分な蚌拠です😄

私はこれをしばらく芋おきたしたが、なぜこれらの波王がTouchRippleの状態波王配列で取り残されおいるのか正確にはわかりたせん。

9cpsで、私は䜕か面癜いものを芋぀けたした。Firefoxでは波王は消えず、クロムでは非垞にゆっくりず消えたす。 しかし、すでに波王が残っおいるボタンでFirefoxをクリックするたびに、別の波王が衚瀺されおから、波王が衚瀺されたす。 確かに奇劙な行動

この問題は7575で修正されおいる可胜性がありたす。 再珟できなかったので50/50ず蚀いたす

すべおの䟝存関係をプルしお再むンストヌルするだけで、マりスの巊ボタンず右ボタンを半速で同時にクリックするこずで再珟できたす。

@kgregoryその堎合、ButtonBaseレベルでの問題だず思いたす。 詊しおいただきありがずうございたす。

この問題は私を倢䞭にさせおいたす、私が䜕をしようずしおも、私は再珟するこずができたせん。 good first issueタグを远加したした。他の誰かがそれに察凊したい堎合は、すばらしいです。そうでない堎合は、未解決のたたになりたす。

@oliviertassinari私はそれをいく぀かテストしたした。 3cpsでも、ラップトップのタッチパッドでしか再珟できたせん。

こんにちはみんな、最初はいい仕事です。
ベヌタに远い぀くのは少し難しいですが、それは毎日より玠晎らしいものになっおいたす。

@oliviertassinari私たちはChromeを䜿甚するずこの問題を再珟できず、すべおが正垞に機胜したす。 Linuxマシンでは、クロムを䜿甚しおいる堎合、3cpsでクリックするず、波打぀ボタンがどんどん暗くなりたす。 速くクリックしおも、これは再珟されたせん。 泚目すべきは、fastclick https://github.com/ftlabs/fastclickを回すず、これが修正され、ボタンがむベントを正しく凊理するこずです。 mui-docペヌゞのボタンを抌しおも、この効果はありたせん。私が掚枬しおいるように、material-uiに副䜜甚のあるラむブラリはありたせん。 たぶん、この問題を再珟たたは区切るのに圹立ちたす。

私はずコルドバiOSアプリに取り組んでいたすFastClick䜿甚しお300msの遅延を回避するために材料-UI @次の1.0 V23を、私は同じ動䜜を取埗しおいたす。 FastClickを削陀するず、タッチリップルの蓄積が修正されるようですが、300ミリ秒の遅延のためにUXが䜎䞋したす。

@oliviertassinari material-ui @ next + cordovaを䜿甚しお。FastClickず組み合わせお䜿甚​​するず、このタッチリップルのバグを回避する方法を知っおいたすか たたは、SplitMeにも300msの遅延がありたすか

FastClickで[email protected]を䜿甚

たたは、SplitMeにも300msの遅延がありたすか

@ssalkaドキュメントの遅延に気付くこずができたすか これはCordova固有の問題ですか 私はSplitMeで長い間倚くの仕事をしおいたせん。 私の知る限り、遅延はビュヌポヌトメタで取り陀くこずができたす。 確認予定。

これはCordovaの問題より具䜓的にはiOS UIWebViewだず思いたす。 実際、App StoreでSplitMeを芋぀けるこずができたせんでした。残念ながら、CORSが無効になっおいお、Safariで他のドメむンぞのHTMLリンクが開いおいるためiframeを詊したしたが、運が悪かったため、ドキュメントがプロゞェクトに読み蟌たれるかどうかを確認する方法がありたせん。 。 確かに蚀えるこずは、タッチリップルはv0.xで正垞に機胜し、v1で蓄積されるずいうこずです。

䞀般に、すべおの䞻芁なブラりザヌiOS甚のSafariもは、あなたが蚀ったように、ビュヌポヌトメタタグを䜿甚しお修正を実装しおいるように芋えたすが、Cordovaによっお内郚的に䜿甚されるUIWebViewにはただ存圚しおいたす。 ただし、Cordovaを䞻芁なブラりザヌ/プラットフォヌムずしお数えないので、これが優先事項ずしお数えられないかどうかは理解できたす。

迅速な察応に感謝臎したす

@ssalka https://github.com/apache/cordova-plugin-wkwebview-engineを詊したした

私はそれがはるかに良いこずを確認したす。 私はSplitMeでこのプラグむンを䜿甚しおいたす。

@NonameSLdevただ問題を再珟できたすか この問題は1幎であたり進展しおいたせん。 閉めおも倧䞈倫だず思いたす。


はい、同じ動䜜です。リップルは残り、ホバヌするたびにその䞀郚が倱われたす。

それは実際には倧きな問題ではありたせんが、存圚したす。

曎新埅っおください。 ちょうどアむデアを埗たした。 これがマりスのアップよりもマりスのダりン別名クリックの方が倚い堎合はどうなりたすか 2本の指で繰り返し抌すず発生する可胜性のあるトラックパッドを䜿甚しおいるためです。

私はこの理論をテストしたずころ、それは本圓のようです。リップルを䜜成するために行うようにマルチクリックするず、21個のマりスダりンむベントず11個のマりスアップむベントが発生したした。 これが理由だず思いたす。 #TookUsLongEnough

@ stavlocker @ oliviertassinari私はしばらくの間この問題に遭遇しおいたす。 私の堎合、最終的に'-webkit-app-region': 'no-drag'たで远跡するこずができ、プロパティを削陀するず問題が完党に修正されたした。 これは参照されおいる問題11696に類䌌しおいるのではないかず思いたす

参考たでに、Chrome61でopenfinを䜿甚しおいたす

@gtsafasおそらくこれで修正できるかもしれたせんが、私のコメントあなたのコメントの䞊で蚀ったように、それはマりスのダりンがアップよりも倚いためです。 コヌドを芋なくおも、リップルはマりスダりンで䜜成され、マりスアップで削陀されるず蚀えたすが、アップよりもダりンの方が倚いため、マりスアップは到着したせんでした。 あなたの修正は良いですが、それはりェブキットブラりザでのみ機胜したす。

私が芋おいる2぀の解決策

  • 波王にタむマヌをかけるこずをお勧めしたすか 5秒経っおも取り倖されない堎合は、自動で取り陀いおください。 UX偎では、これにより、長抌ししおリップルが解攟されるのを芋るナヌザヌを混乱させる可胜性があるこずを考慮する必芁がありたす。おそらく、クリックを解攟しおボタンを抌したず思わせる可胜性がありたすボタンを解攟しおいない堎合。
  • マりスを䞋に向けるのではなく、マりスを䞊に向けお波王を䜜成するだけです。 これは明らかに異なっお芋え、ナヌザヌがボタンを抌した堎合、波王は衚瀺されたせんが、これは修正されたす。

@stavlockerええ私はそれを修正ずしお提案しおいたせんでした。 しかし、これを匕き起こす他の問題は画像のドラッグであるず蚀っおいたした。 私にずっお、それは特に画像ではなく、ドラッグず盞互䜜甚するものでした。 䜕かがマりスアップの発生を劚げおいたした。 少なくずも私の堎合、クリック速床の異なるナヌザヌずは関係がなく、cssが存圚する間にすべおの人に発生したした。

タむマヌやマりスを䞊げるこずはできたすが、これらは問題を隠しおいるだけです。 パッチを適甚する前に、マりスアップが起動しない理由を知る必芁があるず思いたす。

これはすべおのマテリアルUIサむトで発生したすか

@gtsafasそれは興味深いです。 しかし、マりスアップが起動しないのはMUIのバグではありたせん。 私の堎合、トラックパッドで2本の指でクリックできるからです。 私の考えでは、2本の指を䜿甚しお、もう1本のマりスが䞋がっおいるずきに別のマりスを䞋にトリガヌできるため、2本目の指を抌しおいるずきにもう䞀方の指を持ち䞊げるず、トラックパッドが䜕かが抌されおいるためにマりスが䞊にあるず怜出されたせん。 これにより、アップよりもダりンが倚くなるため、リップルが残りたす。

@stavlockerわかりたした、それでは違いたす。 これをデバッグしようずしおいるずきに-webkit-app-regionであるこずに気付く前に、マりスのダりン/アップに関するログを远加し、アップよりもダりンの方が倚く芳察されたした。

それで、あなたが通垞のマりスを差し蟌むならば、それはうたく働きたすか

@gtsafas巊ボタンず右ボタンを同時にクリックするず、マりスで動䜜を再珟できたす。

私たちにもこの問題がありたした。 あなたはおそらく他のマりスむベントを防いでいたす...あなたのコヌドをチェックしお次のようなものを探しおください

document.addEventListener("mousedown", myScript); // should be document.addEventListener("mousedown", myScript, false);
document.addEventListener("mouseup", myScript); // should be document.addEventListener("mouseup", myScript, false);

//jquery example: 
        // (...)
        documentElement.on({
            'mouseup': (e) => {
                e.preventDefault(); // WRONG! cut this off
                isDrag = false
            },
        // (...)
        });

@ejnuデフォルトの䞍倉を防ぐ必芁がありたす。 䜕かが間違っおいる可胜性がありたす。

@kgregory @oliviertassinari
これが正しいかどうかはわかりたせんが、少しテストした結果、次のようになりたした。
どういうわけか、これはクリックが奇劙な方法でコンテキストメニュヌず盞互䜜甚するずきに起こりたす。 ButtonBaseのonContextMenu={e => {e.preventDefault()}}でリップルを持続させないこずで、これをテストしたした。 コンテキストメニュヌでクリックが発生したこずを怜出できるようには芋えたせんが、コンテキストメニュヌむベントの波王を止めるこずでこれを修正できたず思いたす13740

   handleTouchMove = createRippleHandler(this, 'TouchMove', 'stop');

+  handleContextMenu = createRippleHandler(this, 'ContextMenu', 'stop');

   handleBlur = createRippleHandler(this, 'Blur', 'stop', () => {
    clearTimeout(this.focusVisibleTimeout);
    if (this.state.focusVisible) {


        onTouchEnd={this.handleTouchEnd}
        onTouchMove={this.handleTouchMove}
        onTouchStart={this.handleTouchStart}
+       onContextMenu={this.handleContextMenu}
        ref={buttonRef}
        tabIndex={disabled ? '-1' : tabIndex}
        {...buttonProps}

誰でも確認できたすか

@ 0maxxam0はこの問題に40ドルの資金を提䟛したした。 IssueHuntでご芧ください

13740で解決する必芁がありたす。 最新バヌゞョンで問題を再珟できる堎合は、お知らせください。

@oliviertassinari @ kgregory 13740ですでに述べたように、私はただ再珟できたす。 このPRは、コンテキストメニュヌのスパムのみを修正し、トラックパッドのスパムは修正したせん。 このコメントは私が苊しんでいる問題を説明し、2぀の解決策を提䟛したす。

再珟する方法

  1. ボタンコンポヌネントのデモに移動し
  2. トラックパッドを䜿甚しお、ボタンを䜕床もクリックしたす

Windows10を実行しおいるLenovoYoga 700を䜿甚しおいたすが、Chrome 71、Firefox 64Quantum、Edge42で再珟できたす。

以前のテストで結論付けたように、トラックパッドが耇数の指を登録し、マりスダりンほど倚くのマりスアップを登録しないこずがあるため、これはさたざたなコンピュヌタヌで再珟できるず確信しお

私のphonegap、iPadのreactmuiアプリに环積的なボタンの波王が衚瀺されおいたす。 AndroidずWebでは問題ありたせん。 ボタンをクリックするたびに、飜和するたで暗くたたは明るくなりたす。

Safari / iOSでもこの問題を確認できたす。すばやくタップする必芁すらなく、タップした埌に暗い/明るいオヌバヌレむが消えるこずはありたせん。

@oliviertassinari @ kgregory 13740ですでに述べたように、私はただ再珟できたす。 このPRは、コンテキストメニュヌのスパムのみを修正し、トラックパッドのスパムは修正したせん。 このコメントは私が苊しんでいる問題を説明し、2぀の解決策を提䟛したす。

再珟する方法

1. Go to the [button component demos](https://material-ui.com/demos/buttons/)

2. Use your trackpad to click the button a bunch of times

Windows10を実行しおいるLenovoYoga 700を䜿甚しおいたすが、Chrome 71、Firefox 64Quantum、Edge42で再珟できたす。

以前のテストで結論付けたように、トラックパッドが耇数の指を登録し、マりスダりンほど倚くのマりスアップを登録しないこずがあるため、これはさたざたなコンピュヌタヌで再珟できるず確信しお

問題がmouseupよりも倚くのmousedownむベントが発生するこずである堎合、その芁玠の倖偎に察応する数のmouseupがあるかどうかを確認する必芁がありたす。 これらの皮類のトリックの1぀は、マりスダりンハンドラヌそれ自䜓を削陀するをマりスダりンのルヌトDOM芁玠に远加するず、マりスダりンがキャプチャされた堎所に関係なく、垞にマりスアップが起動したす。 クリヌンアップをトリガヌするために起動するむベントが垞にあるず思いたすが、元の芁玠では発生しおいない可胜性がありたす。

@CaptainNこれをどのiOS / Safariで再珟しおいたすか。 iOS12.1.2で再䜜成できたせん

iOS 11.3.1-ほずんどの堎合、IconButtonコンポヌネントで芋られたすが、Fabでも芋られたす。

次のようになっおいるようです。

  1. タッチポむントから円をアニメヌトしたす。
  2. アニメヌション䞭にフェヌドアりトアルファしたす。
  3. アニメヌションが完了した埌、削陀しおクリヌンアップするず思いたす。

私の手順2ず3は、iPad11.3.1、叀いiPhone11.4.1、たたはiPhone 812.1.2では発生したせん。

ある時点でコヌドを掘り䞋げるこずができるかどうかはわかりたすが、タむミングに぀いおは䜕も玄束できたせん。

@CaptainNこれはドキュメントのデモにありたすか、それずも独自のコヌドですか iOS12.1を搭茉したiPhone10、たたは12.1.3を搭茉した叀いiPadのドキュメントでは再珟できないので、亀絡因子があるのではないかず思いたす。

バグではないず蚀っおいるわけではありたせんが、再珟するにはさらに倚くの手順が必芁になる堎合がありたす。

Meteor、React、Material-UIで構築された䞭芏暡のアプリである私自身のアプリにありたす。 実際にはたもなく公開されるので、リンクを共有できたす。

ある時点で䞡方ずもコヌドで原因を探し、それが芋぀からない堎合は、削枛を䜜成しおみたす。

私もSSRを䜿甚しおいたす-スタむル属性の䞍䞀臎に぀いおいく぀かの譊告が衚瀺されたす。通垞、サヌバヌたたはクラむアントは-webkit-プレフィックスに同意したせん-それは䜕か関係があるのでしょうか 私は実際にmaterial-uiがプレフィックスautoprefixerをどのように適甚するのか本圓にわかりたせん-それに関するドキュメントはありたすか

これは圹立぀かもしれたせん
https://material-ui.com/getting-started/supported-platforms/#css -prefixing

Meteor、React、Material-UIを䜿甚し、iOSでのみ䜿甚しおいる自分の環境でも、この問題が発生しおいたす。 Chromeのデバむス゚ミュレヌタヌを䜿甚できたしたが、Androidデバむスではなく、iOSデバむスを゚ミュレヌトするずきにのみこのバグがトリガヌされたした。
デモサンドボックスでこれを再珟するこずはただできないようですが、ボタンずタブに問題があるため、ButtonBaseコンポヌネントに起因する可胜性がありたす。

開発ツヌルでモバむルモヌドが有効になっおいるWindows䞊のChromeでもこれが発生しおいたす。 このアプリの堎合 https 

@CaptainN埌で芋おいきたす。 わかりやすくするために、耇補手順を投皿できたすか。 どのChromeを䜿甚しおいたすか

以前はかなり䞀貫しお行っおいたしたが、珟圚はChromeで再珟しようずしおいたすが、䜕もしおいたせん。 䜕かがそれをある皮の゚ラヌ状態にしたに違いありたせん。

iOSでは、そのアプリをロヌドするだけで、問題を簡単に確認できたす。 最も簡単な䟋に぀いおは、䞋郚のナビゲヌションにあるホヌムボタンず怜玢ボタンの間を行ったり来たりしおください。 たたは、怜玢をタップしおからホヌムに戻り、ホヌムを数回抌したす。

䞋郚のナビゲヌションでiOSで再䜜成できたす。

通垞のChromeモヌドからデバむスモヌドに切り替えた埌にペヌゞをリロヌドするず、より䞀貫した動䜜を埗るこずができたした。

@ zuus-keith chrome devツヌルのモバむルシミュレヌタヌに関連しおいる堎合、特に修正する必芁はありたせん。 同じ根本原因でない限り

@oliviertassinari同じ根本原因だず思いたす。 私は最初に実際のiOSデバむスでそれを芋぀けたしたが、「iPhone」たたは「iPad」ビュヌに蚭定されたchrome devtoolモバむルシミュレヌタヌが同じ動䜜を生成するこずがありたす。

さらに、これたでのずころ、この問題は3぀の異なるむンスタンスでのみ報告されおいたすが、すべお同じ技術スタックMeteor、React、MUIを䜿甚しおいたす。

これは、「fastclick」ず呌ばれる別の非垞に䞀般的なMeteorパッケヌゞが原因であるこずが刀明したした。これは、Safariでは䜕幎もの間適切なビュヌポヌト蚭定を䜿甚しおいる堎合実際には必芁ありたせんでした。 この問題に遭遇した堎合の解決策は、単に「fastclick」を削陀するこずです。

シミュレヌトされた環境ではなく、これによっお圱響を受ける人はいたすか それずもこれを閉じおも倧䞈倫ですか

これは、シミュレヌションされおいない環境iPadで、meteorアプリからfastclickパッケヌゞを削陀するこずで修正されたした。

ずりあえず締めくくりたすが、再珟できる方がいらっしゃいたしたらお知らせください。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡