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

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

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

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

JavaScript

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

HTML

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

CSS

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

Q&A

2回答

1808閲覧

javascriptを実装したら、もともと付いていたclass・idが機能しなくなってしまいました

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

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

JavaScript

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

HTML

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

CSS

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

0グッド

1クリップ

投稿2018/01/17 03:21

編集2018/01/17 11:28

サイドメニューの一部がスクロールに応じて付いて来る設定をjavascriptでしました。

設定したのはいいのですが、実装した要素のwidthが効かなくなり、広がり、また記事などがなくスクロールできない長さのページの場合、認識されずfooterを踏みつけ&footerの下にまで要素が繋がっています。(それなりの長さをもつ要素なので)

javascriptに使っているのはid="float-box"です。このid(とjavascriptのコード)がなければ、今まで通りのwidrhを保ち、footerも要素の下に配置されます。

main.php

php

1<!--------------------略-----------------------> 2 <section class="col-sm-12 order-sm-3 sp-lg-4 order-lg-3" id="rightSidebarSection"> 3 <?php get_template_part("./template/mainSidebar"); ?> 4 </section> 5<!--------------------略----------------------->

mainSidebar.php

php

1<div id="float-box"> 2<h2 class="mainSiderbarTitle">スクロールする要素</h2> 3 4 <?php 5 $args = array( 6 'posts_per_page' => 5, 7 'meta_query' => array( 8<!-------------------------------------------> 9     <?php endif; 10 wp_reset_postdata(); 11 ?> 12</div>  13 14<script type="text/javascript"> 15 var setBoxId = '#float-box'; 16 var scrollStart = null; 17 var scrollEnd = null; 18 var floatBoxTop = 10; 19 $(document).ready(function() { 20 scrollStart = $(setBoxId).offset().top; 21 scrollEnd = $(document).height() - 1000 22 }) 23 $(window).scroll(scroll) 24 25 function scroll(){ 26 var scrollTop = $(document).scrollTop() + floatBoxTop; 27 scrollTop = Math.min(scrollEnd, Math.max(scrollTop, scrollStart)) 28 if(scrollTop === scrollStart || scrollEnd === scrollTop) { 29 $(setBoxId).css({ 30 position:'absolute', 31 top: scrollTop 32 }); 33 } else { 34 $(setBoxId).css({ 35 position: 'fixed', 36 top: floatBoxTop 37 }); 38 } 39 } 40</script>

css

1#float-box{ 2 position: absolute; 3} 4#rightSidebarSection { 5 border-left: 1px solid #efefef; 6}

main.phpの<section class="col-sm-12 order-sm-3 sp-lg-4 order-lg-3" id="rightSidebarSection">のクラスとidを反映させたいです。

class="col-sm-12 order-sm-3 sp-lg-4 order-lg-3"に関しては、添付した写真の通りです。
このファイルがどういうものなのか、なぜ詰まっており、途中からいろが薄いのかなど理解しておりません。

どうしたら、反映させられるか、またどう調べたらいいか教えていただけたらと思います。イメージ説明

よろしくお願いします。

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

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

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

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

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

kei344

2018/01/17 04:08

JavaScriptがどういう物なのかが書かれていません。公式配布サイトのURLを質問文に追記ください。(URLにはリンクを張ることができます)また、「javaのコード」と書かれていますが、「JavaScriptのコード」では。
m.ts10806

2018/01/17 05:59

タグに「Wordpress」も追加したほうが良さそうです。
guest

回答2

0

肝心の css のソースも必要では・・・ と思ったけど
これ bootstrap とか使っているのでしょうか。それの class が効いていないということ?
(col-sm-12 とかそれっぽいですが)

ぱっと見た感じだと、 $(setBoxId).css() で position:absolute; とか指定しているせいで崩れているのでは?と思いますが どうでしょうか。

id="rightSidebarSection" って col-*** とかが指定されている要素に指定しても平気でしょうか。
外側をさらに div で囲ってそこに id を指定する、とかの方が良さそうな気もしますが・・・ どうでしょうね

訂正:間違えました。追尾用の id は rightSidebarSection じゃなくて float-box ですね。上記は忘れてください。すみません。でもどちらにしても position:absolute とかのせいじゃないのかなあと思いますけども。わかりませんが。

動かしてみたりとかはしていないのでソースを見た感じですが。

投稿2018/01/17 07:37

編集2018/01/17 09:26
sk_3122

総合スコア1126

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

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

退会済みユーザー

退会済みユーザー

2018/01/17 12:18

回答ありがとうございます。css追加させていただきました。恥ずかしながらbootstrapを初めて耳にしました。 添付の写真のcssが「bootstrap」を使っているということでしょうか?  いただいたアドバイスの通り、 $(setBoxId).css() のposition:absolute; を外してみた結果、footerの近くまで要素がおりてきたあとに、消えてしまいました。
sk_3122

2018/01/18 01:17 編集

bootstrap というのは CSS フレームワークというものですね。 普通は css をゼロから自分で書かなければいけないところを、bootstrap.css などのファイルを読み込めば、「col-sm-12 のようなクラスが最初から用意されているので それを使うだけでレスポンシブなサイトが作れるよ」というようなものです。 bootstrap.css みたいな名前のファイルを読み込んでいれば、「bootstrap を利用している」状態だと思います。 レイアウトが崩れてしまうのは position:absolute; のせいじゃないかと思いますが、「サイドメニューが追尾してくる」機能としては必要なコードだと思うので、ただ position:absolute を消せばよいという話でもないのかなと思います。 kei344 さんの回答とかを試してみるとどうなるでしょうか
sk_3122

2018/01/18 03:11

<section> の中にもう一枚 div を挟んで、サイドバーとしての指定はそっちに移す、 追尾用の id="float-box" は <section> に指定する、 とかでどうかなと思いましたが、いや でも order-sm-3 とかも指定してあるしどうなんだろう・・・ 他の要素との兼ね合いとか・・・ とか 「必要な部分だけ抜き出した、それだけコピペすれば動くソース」があれば回答も付きやすいと思いますが、一部のソースだけ抜粋だと 実際に試してみることができないのでちょっと難しいですね・・・ うーん
退会済みユーザー

退会済みユーザー

2018/01/19 02:05

遅くなりました。 bootstrapの説明ありがとうございます。 「<section> の中にもう一枚 div を挟んで、サイドバーとしての指定はそっちに移す、 追尾用の id="float-box" は <section> に指定する」は、追尾して来なくなってしまいました。 「必要な部分だけ抜き出した、それだけコピペすれば動くソース」確かにおっしゃる通りです。今後、その点を意識しようと思います。
guest

0

横幅は下記CSSを追加。

CSS

1#rightSidebarSection { 2 position: relative; 3} 4#float-box { 5 width: 100%; 6}

「スクロールできない長さ」についてはウィンドウサイズとフロートしている要素の高さを比べてイベント登録自体をやめてしまえばよいのでは。

【ウィンドウサイズの取得 - Qiita】
https://qiita.com/butchi_y/items/daf64a664b80e0e0e31a

投稿2018/01/17 09:59

編集2018/01/17 11:29
kei344

総合スコア69407

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

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

退会済みユーザー

退会済みユーザー

2018/01/18 01:42

追記アドバイスと回答ありがとうございます。後出しながらcssを追加させていただきました。 横幅に関して、アドバイスに従ったところ、着地した(スクロール終わり)ときと出発点(スクロール始丸まで)は正しいサイズですが、スクロール中は、広がったままです。その他、要素の元のいち(出発点)が下に下がる、footer手前で止まらず、footerに被さり追い抜かすなどの問題も出てきてしまいました。 「スクロールできない長さ」についてはウィンドウサイズとフロートしている要素の高さを比べてイベント登録自体をやめてしまえばよいのでは。 に関しては、勉強不足により実装できていません。
kei344

2018/01/18 01:53

ああ、position: 'fixed'になるからか。それではJavaScriptで #rightSidebarSection の幅を取って #float-box のwidthに設定するとか。 もしJavaScriptが不得手なら、改修を考えず他の「スクロールに追随する」ライブラリを探してみては?
sk_3122

2018/01/18 03:03

bootstrap は「画面サイズが大きい時は普通のレイアウトで、画面サイズが小さくなったらスマホ用のレイアウトにする」みたいなレスポンシブデザインに対応しているので、bootstrap を想定していない css や javascript と組み合わせると上手くいかない事が結構あるのですよね。 なので javascript などを探す場合も「bootstrap に対応しているもの」を探す必要があります。 そうでないものを使いたい、となると自分で色々修正しないといけないので javascript の知識が必要になってきますね・・・
退会済みユーザー

退会済みユーザー

2018/01/19 02:05

bootstrapに対応するjavascriptですか…。今回のjavascriptのコードも自力ではできずにteratailの質問で回答してくださった方のコードなのです。  ライブラリを探しつつ、もうすこし勉強しようと思います。 解決には至りませんでしたが、原因がわかったこと、探すべきものが明確になったこと とても感謝しております。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問