jQuery를 사용한 슬라이더 메뉴 구현
소개
머리글 막대에 마우스를 올릴 때 나타나는 슬라이드 메뉴를 만듭니다.
(자신의 비망록으로 적습니다)
완성 이미지

환경
MacOS 10.15.7
루비 2.6.5
Ruby on Rails 6.0.0
전제 조건
jQuery의 도입이 완료된 것.
일하자!
①html 작성
html.erb<%# ログインユーザーの名前・アイコン表示 %>
<div class="loginUser">
<div class="loginUserInfo">
<div class="loginUserInfo__Avatar">
<%= image_tag current_user.image.url, class: "loginUserInfo__Avatar--image" %>
</div>
<span class=loginUserName>
<%= current_user.name %>
</span>
<i class="fas fa-caret-down"></i>
</div>
<%# スライドメニューバー(マウスオーバー時出現) %>
<ul class="dropDownMenu">
<li>
<i class="fas fa-user"></i>
<%= link_to "マイページ", "/users/#{current_user.id}", class:"loginMenu" %>
</li>
<li>
<i class="fas fa-plus-square"></i>
<%= link_to "投稿する", new_post_path, class: "loginMenu" %>
</li>
<li>
<i class="fas fa-sign-out-alt"></i>
<%= link_to "ログアウト", destroy_user_session_path, class:"loginMenu", method: :delete %>
</li>
</ul>
</div>
scss는 다음과 같습니다.
scss// ログインユーザーのアイコン・名前
.loginUser {
width: 200px;
height: 50px;
margin-left: 5%;
}
.loginUserInfo {
display: flex;
align-items: center;
&__Avatar {
width: 40px;
height: 40px;
&--image {
height: 100%;
width: 100%;
border-radius: 50%;
}
}
}
.loginUserName {
font-size: 0.7em;
margin-right: 5px;
}
.dropDownMenu {
width: 200px;
display: none;
margin-left: -5px;
margin-top: 5px;
padding: 0;
text-align: center;
background-color: rgba($color: #222222, $alpha: 0.95);
}
.dropDownMenu li {
cursor: pointer;
width: 100%;
padding: 2vh 0;
}
.dropDownMenu li a:hover {
text-decoration: none;
color: #00bfff;
}
이상입니다.
②js 파일에 jQuery로 처리를 기술
usermenu.js라는 새 파일을 만들고 슬라이더 처리를 작성합니다.
usermenu.js$(function() {
// loginUser上にオンマウスした時に発動するイベント
$(".loginUser").hover(function(){
//slideToggleメソッドを使ってスライドメニューを表示させる。
$(this).children(".dropDownMenu").stop().slideToggle();
});
});
hover 메소드를 사용해, loginUser 클래스상에 마우스가 탈 때, slideToggle 메소드를 사용해,
슬라이드 메뉴(.dropDownMenu)를 호출합니다.
stop 메소드는 hover할 때마다 같은 처리가 발동하지 않게 하기 위한 기술이 됩니다.
이상이 됩니다!
Reference
이 문제에 관하여(jQuery를 사용한 슬라이더 메뉴 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomato1125/items/842acd1878577a7c537a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)

환경
MacOS 10.15.7
루비 2.6.5
Ruby on Rails 6.0.0
전제 조건
jQuery의 도입이 완료된 것.
일하자!
①html 작성
html.erb<%# ログインユーザーの名前・アイコン表示 %>
<div class="loginUser">
<div class="loginUserInfo">
<div class="loginUserInfo__Avatar">
<%= image_tag current_user.image.url, class: "loginUserInfo__Avatar--image" %>
</div>
<span class=loginUserName>
<%= current_user.name %>
</span>
<i class="fas fa-caret-down"></i>
</div>
<%# スライドメニューバー(マウスオーバー時出現) %>
<ul class="dropDownMenu">
<li>
<i class="fas fa-user"></i>
<%= link_to "マイページ", "/users/#{current_user.id}", class:"loginMenu" %>
</li>
<li>
<i class="fas fa-plus-square"></i>
<%= link_to "投稿する", new_post_path, class: "loginMenu" %>
</li>
<li>
<i class="fas fa-sign-out-alt"></i>
<%= link_to "ログアウト", destroy_user_session_path, class:"loginMenu", method: :delete %>
</li>
</ul>
</div>
scss는 다음과 같습니다.
scss// ログインユーザーのアイコン・名前
.loginUser {
width: 200px;
height: 50px;
margin-left: 5%;
}
.loginUserInfo {
display: flex;
align-items: center;
&__Avatar {
width: 40px;
height: 40px;
&--image {
height: 100%;
width: 100%;
border-radius: 50%;
}
}
}
.loginUserName {
font-size: 0.7em;
margin-right: 5px;
}
.dropDownMenu {
width: 200px;
display: none;
margin-left: -5px;
margin-top: 5px;
padding: 0;
text-align: center;
background-color: rgba($color: #222222, $alpha: 0.95);
}
.dropDownMenu li {
cursor: pointer;
width: 100%;
padding: 2vh 0;
}
.dropDownMenu li a:hover {
text-decoration: none;
color: #00bfff;
}
이상입니다.
②js 파일에 jQuery로 처리를 기술
usermenu.js라는 새 파일을 만들고 슬라이더 처리를 작성합니다.
usermenu.js$(function() {
// loginUser上にオンマウスした時に発動するイベント
$(".loginUser").hover(function(){
//slideToggleメソッドを使ってスライドメニューを表示させる。
$(this).children(".dropDownMenu").stop().slideToggle();
});
});
hover 메소드를 사용해, loginUser 클래스상에 마우스가 탈 때, slideToggle 메소드를 사용해,
슬라이드 메뉴(.dropDownMenu)를 호출합니다.
stop 메소드는 hover할 때마다 같은 처리가 발동하지 않게 하기 위한 기술이 됩니다.
이상이 됩니다!
Reference
이 문제에 관하여(jQuery를 사용한 슬라이더 메뉴 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomato1125/items/842acd1878577a7c537a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
jQuery의 도입이 완료된 것.
일하자!
①html 작성
html.erb<%# ログインユーザーの名前・アイコン表示 %>
<div class="loginUser">
<div class="loginUserInfo">
<div class="loginUserInfo__Avatar">
<%= image_tag current_user.image.url, class: "loginUserInfo__Avatar--image" %>
</div>
<span class=loginUserName>
<%= current_user.name %>
</span>
<i class="fas fa-caret-down"></i>
</div>
<%# スライドメニューバー(マウスオーバー時出現) %>
<ul class="dropDownMenu">
<li>
<i class="fas fa-user"></i>
<%= link_to "マイページ", "/users/#{current_user.id}", class:"loginMenu" %>
</li>
<li>
<i class="fas fa-plus-square"></i>
<%= link_to "投稿する", new_post_path, class: "loginMenu" %>
</li>
<li>
<i class="fas fa-sign-out-alt"></i>
<%= link_to "ログアウト", destroy_user_session_path, class:"loginMenu", method: :delete %>
</li>
</ul>
</div>
scss는 다음과 같습니다.
scss// ログインユーザーのアイコン・名前
.loginUser {
width: 200px;
height: 50px;
margin-left: 5%;
}
.loginUserInfo {
display: flex;
align-items: center;
&__Avatar {
width: 40px;
height: 40px;
&--image {
height: 100%;
width: 100%;
border-radius: 50%;
}
}
}
.loginUserName {
font-size: 0.7em;
margin-right: 5px;
}
.dropDownMenu {
width: 200px;
display: none;
margin-left: -5px;
margin-top: 5px;
padding: 0;
text-align: center;
background-color: rgba($color: #222222, $alpha: 0.95);
}
.dropDownMenu li {
cursor: pointer;
width: 100%;
padding: 2vh 0;
}
.dropDownMenu li a:hover {
text-decoration: none;
color: #00bfff;
}
이상입니다.
②js 파일에 jQuery로 처리를 기술
usermenu.js라는 새 파일을 만들고 슬라이더 처리를 작성합니다.
usermenu.js$(function() {
// loginUser上にオンマウスした時に発動するイベント
$(".loginUser").hover(function(){
//slideToggleメソッドを使ってスライドメニューを表示させる。
$(this).children(".dropDownMenu").stop().slideToggle();
});
});
hover 메소드를 사용해, loginUser 클래스상에 마우스가 탈 때, slideToggle 메소드를 사용해,
슬라이드 메뉴(.dropDownMenu)를 호출합니다.
stop 메소드는 hover할 때마다 같은 처리가 발동하지 않게 하기 위한 기술이 됩니다.
이상이 됩니다!
Reference
이 문제에 관하여(jQuery를 사용한 슬라이더 메뉴 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomato1125/items/842acd1878577a7c537a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<%# ログインユーザーの名前・アイコン表示 %>
<div class="loginUser">
<div class="loginUserInfo">
<div class="loginUserInfo__Avatar">
<%= image_tag current_user.image.url, class: "loginUserInfo__Avatar--image" %>
</div>
<span class=loginUserName>
<%= current_user.name %>
</span>
<i class="fas fa-caret-down"></i>
</div>
<%# スライドメニューバー(マウスオーバー時出現) %>
<ul class="dropDownMenu">
<li>
<i class="fas fa-user"></i>
<%= link_to "マイページ", "/users/#{current_user.id}", class:"loginMenu" %>
</li>
<li>
<i class="fas fa-plus-square"></i>
<%= link_to "投稿する", new_post_path, class: "loginMenu" %>
</li>
<li>
<i class="fas fa-sign-out-alt"></i>
<%= link_to "ログアウト", destroy_user_session_path, class:"loginMenu", method: :delete %>
</li>
</ul>
</div>
// ログインユーザーのアイコン・名前
.loginUser {
width: 200px;
height: 50px;
margin-left: 5%;
}
.loginUserInfo {
display: flex;
align-items: center;
&__Avatar {
width: 40px;
height: 40px;
&--image {
height: 100%;
width: 100%;
border-radius: 50%;
}
}
}
.loginUserName {
font-size: 0.7em;
margin-right: 5px;
}
.dropDownMenu {
width: 200px;
display: none;
margin-left: -5px;
margin-top: 5px;
padding: 0;
text-align: center;
background-color: rgba($color: #222222, $alpha: 0.95);
}
.dropDownMenu li {
cursor: pointer;
width: 100%;
padding: 2vh 0;
}
.dropDownMenu li a:hover {
text-decoration: none;
color: #00bfff;
}
$(function() {
// loginUser上にオンマウスした時に発動するイベント
$(".loginUser").hover(function(){
//slideToggleメソッドを使ってスライドメニューを表示させる。
$(this).children(".dropDownMenu").stop().slideToggle();
});
});
Reference
이 문제에 관하여(jQuery를 사용한 슬라이더 메뉴 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tomato1125/items/842acd1878577a7c537a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)