🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSS3

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

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

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

Q&A

2回答

789閲覧

CSS posision fixed で上部固定部分が、エッジやIEでガタツクのをスムーススクロール解除で回避したら、クロームで挙動が激しくなってしまったのをブラウザ条件分岐での対応記述方法を教えてほ

bgd6f41

総合スコア8

CSS3

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

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

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

0グッド

0クリップ

投稿2019/09/14 08:51

ワードプレスサイトで

position fixed

を使って、ヘッダーを上部に固定する方法をとっているのですが、

z-index を調整しても、固定部分のガタツキがなおらなかったので、スムーススクロールを解除するという方法を取りました

<script type="text/javascript">

$(function(){
ScrollLength = 700;
ScrollSpeed = 250;

var mousewheelevent = 'onwheel' in document ? 'wheel' : 'onmousewheel' in document ? 'mousewheel' : 'DOMMouseScroll';
$(document).on(mousewheelevent,function(e){
e.preventDefault();
var delta = e.originalEvent.deltaY ? -(e.originalEvent.deltaY) : e.originalEvent.wheelDelta ? e.originalEvent.wheelDelta : -(e.originalEvent.detail);
if (delta < 0){
ScrollSet =  $(document).scrollTop()+ScrollLength;
} else {
ScrollSet =  $(document).scrollTop()-ScrollLength;
}
$('html,body').stop().animate({scrollTop:ScrollSet},ScrollSpeed);
return false;
});
});
</script>

この記述をヘッダーで行う事で、

IE、エッジは、それなりにスクロールする事ができました。
ページ内へのリンクも、一応動きました。

ですが、今度はクロームで見たときに、動きが激しくなってしまいました。

閲覧しているブラウザが、クロームの時は、稼働させず、IEやエッジの時だけ稼働させるという条件分岐をしたかったのですが、どう書けば、分岐になるのかがわかりませんでした。

どなたか教えていただけないでしょうか?

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

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

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

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

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

guest

回答2

0

「ブラウザ条件分岐」で検索したら検索結果が何十件も出てきます。
検索結果を組み合わせるとできると思います。

javascript

1var userAgent = window.navigator.userAgent.toLowerCase(); 2if(userAgent.indexOf('msie') != -1 || userAgent.indexOf('trident') != -1 || userAgent.indexOf('edge') != -1) { 3 $(function(){ 4 console.log("IEやエッジの時だけ稼働"); 5 }); 6}

1番めの検索結果を少し直しただけです。

投稿2019/09/14 10:11

querykuma

総合スコア777

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

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

bgd6f41

2019/09/14 13:14

ありがとうございます。 var userAgent = window.navigator.userAgent.toLowerCase(); if(userAgent.indexOf('msie') != -1 || userAgent.indexOf('trident') != -1 || userAgent.indexOf('edge') != -1) { $(function(){ console.log("IEやエッジの時だけ稼働"); }); } >IEやエッジの時だけ稼働 上記の箇所に、 <script type="text/javascript"> $(function(){ ScrollLength = 700; ScrollSpeed = 250; var mousewheelevent = 'onwheel' in document ? 'wheel' : 'onmousewheel' in document ? 'mousewheel' : 'DOMMouseScroll'; $(document).on(mousewheelevent,function(e){ e.preventDefault(); var delta = e.originalEvent.deltaY ? -(e.originalEvent.deltaY) : e.originalEvent.wheelDelta ? e.originalEvent.wheelDelta : -(e.originalEvent.detail); if (delta < 0){ ScrollSet = $(document).scrollTop()+ScrollLength; } else { ScrollSet = $(document).scrollTop()-ScrollLength; } $('html,body').stop().animate({scrollTop:ScrollSet},ScrollSpeed); return false; }); }); </script> これを書き込めばいいのでしょうか? プログラムの知識は一切ないので、こんな質問になって申し訳ありません。
querykuma

2019/09/14 20:39

<script>タグは「おまじない」という固定文です。 直すのはそれ以外でしょう。 回答をそのまま載せるのは作業依頼になりますのでできません。 あなたが学習して回答に到達する必要があります。 学習の途中で出てきた疑問について別の質問を作成するのはOKです。
bgd6f41

2019/09/16 15:20

なるほど、そうだったんですね。 大変失礼しました。 ありがとうございます。
guest

0

こちらでブラウザ判定が可能だと思います

投稿2019/09/14 09:09

mouse_484

総合スコア759

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

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

bgd6f41

2019/09/14 09:46

ありがとうございます。 出来れば、どう書けば、条件分岐して、必要なときに必要な処理が走るようになるのかを知りたいです。
mouse_484

2019/09/14 09:57

そこにブラウザ名が入ってくるのでChromeかどうか判別してChromeのときは実行しないようにすれば良いと思います(Internet Explorerか判断してその時だけ実行でも良いとおもいます)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問