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

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

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

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

Q&A

解決済

1回答

831閲覧

jqueryで画像にhoverすると画像の中心から円が出現するようにしたいです。

Dragon131

総合スコア14

jQuery

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

0グッド

0クリップ

投稿2019/12/27 02:13

前提・実現したいこと

jqueryで画像にhoverすると画像の中心から円が出現するようにしたいのですがうまくいきません。以下のようにコードを書いたのですがどこか問題があるでしょうか。よろしくお願いします。
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

(HTML)

<section class="g-works"> <div class="my-works"><img src="images/fiction.png" width="" height="" alt=""> </div> <div class="my-works"><img src="images/mm-solution2.png" width="" height="" alt=""></div> <div class="my-works"><img src="images/cafe-quiet-small.png" width="" height="" alt=""></div> <div class="my-works"><img src="images/cafe-slower-small.png" width="" height="" alt=""></div>
</section>

(CSS)
.g-works {
display: table;
border: 2px solid red
width: 100%;
height: 300px;
table-layout: fixed;
}

.my-works {
position: relative;
display: table-cell;
vertical-align: middle;
padding: 50px;
}

.circle_1 {
position: relative;
display:none;
top:0px;
left:0px;
width:100px;
height: 100px;
background: yellow;
border-radius: 50%;
z-index:1;
}

(jquery)
$(function(){
$(.my-works).hover(function(){
$(this).append("<div class="circle_1"></div>");
$(".circle_1").stop.fadeIn(300);

}),function(){
$(".circle_1").stop().fadeOut(300);
};

jquery

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

H40831

2019/12/27 02:38

マークダウンのcode機能がずれてますよ
Dragon131

2019/12/27 06:03

ありがとうございます!とりあえず円が出るようにはなりました。
guest

回答1

0

ベストアンサー

とりあえず、文法的におかしいところを指摘しますね。

js

1$(function(){ 2 $(.my-works).hover(function(){ // クォーテーション漏れ。".my-works" 3 $(this).append("<div class="circle_1"></div>"); // クォーテーションのエスケープ漏れ。'<div class="circle_1"></div>' 4 $(".circle_1").stop.fadeIn(300); // stopメソッドのかっこがない 5 6 }),function(){ // hoverメソッドのかっこ位置がおかしい。 7 $(".circle_1").stop().fadeOut(300); 8 }; // hoverメソッドのかっこ位置がおかしい。 9// }) ←$(function(){})が閉じていない。

処理フローもおかしいのですが、まずはこの辺を直してから、という気がします。

投稿2019/12/27 03:15

Lhankor_Mhy

総合スコア36087

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

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

Dragon131

2019/12/27 05:33

ありがとうございました!かなり基礎的なところが抜けていました。円は出るようになりましたが思ってたのとは全然違う結果でした。処理フローがおかしいのでしょうか。
Lhankor_Mhy

2019/12/27 06:23

「思ってたのとは全然違う」の内容について、あなたの頭の中にしかないので、(想像はできますが)なんとも申し上げにくいところです。 「思ってたのとは全然違う」を、たとえば「ホバーするたびに丸が増えてしまうので、増えないようにしたい」などと言語化することから始めてみてはいかがでしょうか。 そうすると、「hover関数の中に丸を追加するコードが書かれているから、ホバーするたびに実行されているのでは」などと気づくはずです。
Dragon131

2019/12/27 08:42

ありがとうございます。やりたいことは画像の上にホバーすると中央から円が出現して画像の説明が出るようにしたいです(本当は円の中に説明文も入れたいのですが)。 今起こってることはホバーすると円が増えていくのですが以下のようにしてみましたがやはり円が増えていってしまいます。 $(function(){ $(".my-works").hover(function(){ $(this).append('<div class="circle_1"></div>'); $(".circle_1").stop().fadeIn(300); },function(){ $(".circle_1").stop().fadeOut(); $(this).removeClass("circle_1"); }); });
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問