質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

2508閲覧

rippleエフェクトをiOSのブラウザで表示すると四角形になってしまう

tamogi

総合スコア72

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Safari

SafariはAppleのウェブブラウザであり、Mac OS XとiOSのデフォルトのブラウザです。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2015/10/28 16:02

iOS9端末
[iOS9端末のsafariで表示したボタン]

マテリアルデザインのrippleエフェクトをjQueryで表示できるMaterialRippleを使用しているのですが、丸いボタンにこのエフェクトを適用し、波の色を暗い色に変えた場合、エフェクトが四角形になってしまいます。

Material Rippleのdemoページ右下の丸いボタンもよく見ると四角になっているようで、背景色も白に近い色に変えてごまかしているように見えます。

Googleが用意しているMaterial Design Lite(以下、MDL)のボタンはちゃんと丸い影が出るのですが、このエフェクトを表現したいためだけにMDLを使用するのは気が引けるので、丸い影のエフェクトを表示する方法を教えていただければと思います。

※MDLの丸い影が出るボタンについては、こちらのページ
<!-- FAB button with ripple -->
で検索したソースを使用しているボタン(真ん中のWith rippleボタン)を
参照して下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

こういう奴ではやはり、四角になりますか?

僕も色々試してみたんですが、firefoxではyanchi4425さんが言われるように四角く縁取られ、何度か試していると問題なく表示されるようになることもありました。

chromeでは最初から問題なかったように思います。

さて、このサンプルですが、本来.buttonには.ripple-outerというのは入れていませんでした。
.rippleの部分も、.buttonに直接入れてやっていたのですが、もしかすると.buttonのoverflow:hidden;が効いていないのかもと、.ripple-outerを入れたわけです。

これを入れることでどうなるのを予想していたかというと、.bottonのz-index: 200が最前面でoverflow: hiddenで、はみ出し部分を非表示していて、.ripple-outerがz-index:1(あるいは100)で.buttonの背面にあって、その間に.rippleがある(z-index:100で試した時)ので、最前面のものがはみ出し部分を非表示にしてくれる...と言うのを期待していましたがやはりダメでした。

ここら順序はouterとripple部分を入れ替えたり色々しましたが、やはりchromeでは問題なく、firefoxでは丸よりも外のborder-radiusで作る前のサイズで四角く表示されることがありました。

で、最初辺りにも書きましたが、何度か試しているとちゃんとはみ出し部分を非表示にしてくれる時もあったりして、原因がつかめずにいます。
おそらくは、border-radius: 50% + overflow はいずれかに問題があって、上手く動作するブラウザとそうでないものがあると言う感じではなかろうかと思います。

chromeでは、何度か再読込させて試しましたがはみ出し部分の非表示は問題なく行けました。chromeが本来して欲しい動作をしているので、これが正解だとすると、それ以外ではブラウザに問題があるとしか言えない感じです。

ripple-outerの無いバージョンではchromeでも四角が表示されます。

###まとめ
iOSに限らず、通常のブラウザでもborder-radiusで丸くした要素にoverflow:hiddenで非表示にした場合でも、border-radiusの適用前のサイズまでrippleが広がって四角く見えてしまう。

これを回避するためには、全面・背面と要素を配置し、背面にrippleを入れ、全面でoverflow:hiddenをすれば一部ブラウザは期待通りの動作をしてくれる。

と言う感じかと思います。他のブラウザは試していないので、いろいろ試してみて下さい。

投稿2016/06/16 14:29

hidekichi

総合スコア366

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tamogi

2016/06/16 23:10

大変詳しい回答ありがとうございます。 ちょっとやってみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問