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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

解決済

2回答

2094閲覧

一定以上縦幅がある時アコーディオンの速度設定について

muso

総合スコア5

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

0クリップ

投稿2020/02/27 06:19

https://style01.net/1245/
こちらのデモのアコーディオンが開く(moreが開く速度)速度設定をしたいのです。
JSのどこに どのようなものを記述すれば良いでしょうか。

HTML

1 <div class="block"> 2 <div class="box"> 3 <div class="box-inner"> 4 box-innerの縦幅が180pxを超えるとmoreが出現する<br> 5 テキスト<br> 6 テキスト<br> 7 テキスト<br> 8 テキスト<br> 9 テキスト<br> 10 テキスト<br> 11 テキスト<br> 12 テキスト<br> 13 テキスト<br> 14 テキスト<br> 15 テキスト<br> 16 </div> 17 </div> 18 </div> 19 <div class="block"> 20 <div class="box"> 21 <div class="box-inner"> 22 縦幅180pxを超えない場合は出ない 23 </div> 24 </div> 25 </div>

SCSS

1.block{ 2 margin-bottom: 30px; 3} 4.box{ 5 max-width: 600px; 6 margin: 0 auto; 7 background: #ddd; 8 overflow: hidden; 9} 10.box-inner{ 11 padding: 10px 20px; 12} 13.more{ 14 height: 55px; 15 line-height: 55px; 16 margin-top: -25px; 17 text-align: center; 18 color: #2e9ce5; 19 cursor: pointer; 20 21 background: rgba(255,255,255,0); 22 background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 31%, rgba(255,255,255,1) 100%); 23 background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(255,255,255,0)), color-stop(0%, rgba(255,255,255,0)), color-stop(31%, rgba(255,255,255,1)), color-stop(100%, rgba(255,255,255,1))); 24 background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 31%, rgba(255,255,255,1) 100%); 25 background: -o-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 31%, rgba(255,255,255,1) 100%); 26 background: -ms-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 31%, rgba(255,255,255,1) 100%); 27 &:after{ 28 content:'↓'; 29 display: inline-block; 30 font-weight: bold; 31 font-size: 18px; 32 -webkit-transition: .3s; 33 transition: .3s; 34 } 35 &.is-active{ 36 &:after{ 37 -webkit-transform:rotate(180deg); 38 transform:rotate(180deg); 39 } 40 } 41}

JS

1$(function(){ 2 3 var box = $('.box'); 4 box.after('<div class="more">MORE</div>'); 5 var more = $('.more'); 6 7 function remClass(){ 8 $(this).next(more).removeClass('is-active'); 9 } 10 function adClass(){ 11 $(this).next(more).addClass('is-active'); 12 } 13 14 //forで.box-innerの高さを取得、縦幅が180pxより小さい場合.moreをhideする 15 for(var i=0;i<box.length;i++){ 16 var boxInnerH = $('.box-inner').eq(i).innerHeight(); 17 if(boxInnerH<180){ 18 more.eq(i).hide(); 19 }else{ 20 box.eq(i).css({ 21 height:'180px' 22 }); 23 } 24 } 25 26 more.on('click',function(){ 27 28 //複数あった時を考慮 29 //クリックした.moreに対応する.box-innerの高さを取得する 30 var index = more.index(this); 31 var boxThis = box.eq(index); 32 var innerH = $('.box-inner').eq(index).innerHeight(); 33 34 if($(this).hasClass('is-active')){ 35 boxThis.animate({ 36 height:'180px' 37 },200,remClass); 38 }else{ 39 boxThis.animate({ 40 height:innerH 41 },200,adClass); 42 } 43 }); 44});

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

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

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

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

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

guest

回答2

0

ベストアンサー

JSの以下の部分で開閉のアニメーションの動きが定義されています。

if($(this).hasClass('is-active')){ boxThis.animate({ height:'180px' },200,remClass); }else{ boxThis.animate({ height:innerH },200,adClass); }

「200」が速度を決める数字です。200ミリ秒かけてその動きをするということです。この数字を小さくすれば素早く、大きくすればゆっくり動くようになります。

参考
http://js.studio-kingdom.com/jquery/effects/animate

投稿2020/02/27 08:51

hwatarig

総合スコア461

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

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

muso

2020/02/27 09:42

ご回答ありがとうございます!こちらでうまく設定できました! 助かりました!! ありがとうございました!!
guest

0

JSではないですが、

CSS

1.box{ 2transition: "好みの数字"s; 3}

を入れると調整できるんじゃないかと思いますがこちらで如何でしょうか?

投稿2020/02/27 07:49

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

muso

2020/02/27 09:41

ご回答ありがとうございます!こちらでも調節かのうでした! 貴重なご意見ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問