teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コード修正

2020/02/15 06:24

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -51,7 +51,7 @@
51
51
  ```html
52
52
  <div class="menu">
53
53
  <ul>
54
- <li><a class="current" href="https://jin-demo.jp/demo-4">HOME</a></li>
54
+ <li><a class="current" href="#">HOME</a></li>
55
55
  <li><a href="#">PROFILE</a></li>
56
56
  <li><a href="#">SERVICE</a></li>
57
57
  <li><a href="#">REVIEW</a></li>

1

サンプル追記

2020/02/15 06:24

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -45,4 +45,65 @@
45
45
 
46
46
  > 1.menuにhoverした時にanimation(追いかけてくる)をしたいです。
47
47
 
48
- 具体的にどうしたいのか不明確なのでこれはパス。
48
+ ~~具体的にどうしたいのか不明確なのでこれはパス。~~
49
+ 「追いかけてくる」と呈示されているjQueryから、下記のようなことかと推測。
50
+
51
+ ```html
52
+ <div class="menu">
53
+ <ul>
54
+ <li><a class="current" href="https://jin-demo.jp/demo-4">HOME</a></li>
55
+ <li><a href="#">PROFILE</a></li>
56
+ <li><a href="#">SERVICE</a></li>
57
+ <li><a href="#">REVIEW</a></li>
58
+ <li><a href="#">CONTACT</a></li>
59
+ </ul>
60
+ <span></span>
61
+ </div>
62
+ ```
63
+ ```css
64
+ .menu {
65
+ display: flex;
66
+ justify-content: center;
67
+ }
68
+ .menu ul {
69
+ display: flex;
70
+ margin: 10px 20px;
71
+ }
72
+ .menu li{
73
+ padding: 10px 30px;
74
+ }
75
+ .menu span {
76
+ position: absolute;
77
+ bottom: 0;
78
+ height: 3px;
79
+ background-color: black;
80
+ }
81
+ ```
82
+ ```js
83
+ var menuCurrent = $('.menu .current'),
84
+ cssCurrent={
85
+ width: menuCurrent.outerWidth(),
86
+ left: menuCurrent.position().left
87
+ };
88
+ $(window).on('load resize', function () {
89
+ $('.menu span').css({
90
+ width: menuCurrent.outerWidth(),
91
+ left: menuCurrent.position().left
92
+ });
93
+ });
94
+ $('.menu li').hover(
95
+ function () {
96
+ $('.menu span').stop().animate({
97
+ width: $(this).children().outerWidth(),
98
+ left: $(this).children().position().left
99
+ }, 'fast');
100
+ },
101
+ function () {
102
+ $('.menu span').stop().animate({
103
+ width: menuCurrent.outerWidth(),
104
+ left: menuCurrent.position().left
105
+ }, 'fast');
106
+ }
107
+ );
108
+ ```
109
+ [動作確認用サンプル](https://codepen.io/hatena19/pen/OJVMKWV)