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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

5020閲覧

【safari】opacityがちらつく

satoshickkk

総合スコア53

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/01/29 07:27

編集2018/02/07 02:47

###困っている事
wordpressでホームページ作成をしておりましてつまづきましたのでこちらに質問させていただきに参りました。
他のブラウザ(chrome、Firefox等)では普通に表示される要素がsafariでは、ちらついて見えます。
opacityをcssに追加していることでちらついて見えてるみたいなのですが、調べた結果下記のcssを追加すれば修正できるみたいです。
css以外のfunction内でcssを指定している場合、どのようにfunction内に下記のcssを書き込めば良いのか教えてください。

function内に書き込みたいcss↓

css

1.top_fade{ 2 -webkit-backface-visibility:hidden; 3 backface-visibility:hidden; 4}

 
ここの.top_fadeのcss内に上記のcssを追加したい↓

javascript

1$(function(){ 2 $('.top_fade').fadeOut(0, 1); 3 setTimeout(function() { 4 $('.top_fade').fadeTo(0, 1); 5 $(".top_fade").css({ 6 left:"-50px", 7 opacity:"0.0", 8 }).animate({ 9 left:"50px", 10 opacity:"1.0" 11 },1000); 12 }, 3500); 13});

お分かりになられる方見えましたらお力をお貸しください、よろしくお願いいたします。

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

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

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

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

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

x_x

2018/01/29 08:07

PHPではなくJavaScriptではないですか?
x_x

2018/01/29 08:10

backface-visibilityを書き換えないのであれば、そのままCSSでいいのではないでしょうか?
guest

回答3

0

ベストアンサー

別角度から。

javascript

1$(".top_fade").css({ 2 left:"-50px", 3 opacity:"0.0", 4 }).animate({ 5 left:"50px", 6 opacity:"1.0" 7 },1000);

ここの部分ですが、

javascript

1 $(".top_fade").addClass('anim');

CSS

1.top_fade { 2 left: -50px; 3 opacity: 0; 4 transition: all 1s; 5} 6.top_fade.anim { 7 left: 50px; 8 opacity: 1.0; 9}

などとし、CSSでのアニメーションにしてみるとどうでしょう?

投稿2018/02/01 07:36

編集2018/02/07 09:13
kszk311

総合スコア3404

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

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

satoshickkk

2018/02/07 02:48

返信遅くなりまして申し訳ございません。 $(".top_fade").addClass('anim'); は、 $(".top_fade").css({ left:"-50px", opacity:"0.0", }).animate({ left:"50px", opacity:"1.0" },1000); の、どの部分に書き込めばよいのでしょうか?
kszk311

2018/02/07 03:08

$(".top_fade").css({ left:"-50px", opacity:"0.0", }).animate({ left:"50px", opacity:"1.0" },1000); を $(".top_fade").addClass('anim'); に入れ替えです
satoshickkk

2018/02/07 09:06

$(".top_fade").addClass('anim'); に入れ替えさせていただきましたが.top_fadeがゆっくり動きながら表示されず いきなりパッと表示されるようになりました。 ゆっくり表示するのはできないのでしょうか? 質問ばかり申し訳ございませんがお分かりでしたら教えていただきたいです。
kszk311

2018/02/07 09:13

失礼しました、「transition」に綴り間違いがありましたので、修正をしました。
satoshickkk

2018/02/07 09:22

「transition」の綴り気づかず申し訳ございません。 無事に実装することができました!本当にありがとうございました!
guest

0

普通にcssメソッドを使うだけでは?

JavaScript

1$(function(){ 2 $('.top_fade').css({ 3 "-webkit-backface-visibility" : "hidden", 4 "backface-visibility" : "hidden" 5 }).fadeOut(0, 1); 6 setTimeout(function() { 7 $('.top_fade') 8 .fadeTo(0, 1) 9 .css({ 10 left:"-50px", 11 opacity:"0.0", 12 }).animate({ 13 left:"50px", 14 opacity:"1.0" 15 },1000); 16 }, 3500); 17});

投稿2018/01/31 10:59

defghi1977

総合スコア4756

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

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

satoshickkk

2018/02/07 02:49

ご回答ありがとうございます。 こちら試したところ、やはりsafariではちらついて表示されてしまうみたいです。
defghi1977

2018/02/07 03:28

この回答はあなたの > opacityをcssに追加していることでちらついて見えてるみたいなのですが、調べた結果下記のcssを追加すれば修正できるみたいです。 が正しい対処であることを前提とし, > css以外のfunction内でcssを指定している場合、どのようにfunction内に下記のcssを書き込めば良いのか教えてください。 に対するものです. 従って, 根本的な「safariにおけるちらつきの解消」に対する答えではありません. そのため, 「ちらつきがbackface-visibilityの設定では解決しなかったのでそれ以外の解決策が欲しい」旨を質問の先頭に追記して下さい.
guest

0

Javascriptでは、そのプロパティ、functionで書き込むのはできないはず・・・。
予め、CSSクラスを用意しておき、要素にクラスを追加する、というやり方はいかがでしょうか?
※見たところ、jQueryを使用している様子なので、jQueryで書きます。

css

1.top_fade_hidden { 2 -webkit-backface-visibility:hidden; 3 backface-visibility:hidden; 4}

javascript

1$(function(){ 2 $('.top_fade').addClass("top_fade_hidden"); 3 4 // 以下略 5});

投稿2018/01/30 09:31

miyabi_takatsuk

総合スコア9528

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

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

x_x

2018/01/31 02:07

わたしはできていますが、できないというのは何の環境でしょうか?
miyabi_takatsuk

2018/01/31 10:42

x_xさん> 全ブラウザで効きますでしょうか? 基本的に、ベンダープレフィックスを使ったプロパティは、 javascriptによる追加では、ききません(インナースタイルに追加する形に限る。style要素に、プロパティを追加する場合はできるかも)。 もしくは、ベンダープレフィックスでないと当該プロパティが効かないブラウザの場合は、そもそも追加もできない可能性があります。
defghi1977

2018/01/31 11:03

> 基本的に、ベンダープレフィックスを使ったプロパティは、javascriptによる追加では、ききません いや効くと思う. この場合 style.webkitBackfaseVisibilityがそれ. safari以外では単に無視されるだけ.
miyabi_takatsuk

2018/02/01 00:33

defghi1977> なるほど!safariではいけるんですね。 ご質問でも、safariで、ということですもんね。 大変失礼しました。 どのブラウザでもとの念頭で考えてしまいました。
x_x

2018/02/07 04:18

ベンダープレフィックスがついたものがきかない、という話ならばCSSで書いても同じことで、ナンセンスではないですか?
miyabi_takatsuk

2018/02/07 04:34

すみません、少々知識が古かったようです。 以前では、ブラウザによってベンダープレフィックスつきのものは、 jQueryのcssでは追加もできなかったり、 インナースタイルに、ベンダープレフィックスを指定した場合は効かなかったりなどの現象は起きていました。 もしかしたら思い違いかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問