js 마우스 오버 이벤트를 클릭 이벤트로 변경하고 싶습니다
본문
$('.mI_icon01').hover(
function (e) {
//ボタンに乗った時の処理
$('.mI_textarea').fadeIn()
$('.mI_textarea .mI_text01').show()
$('.mI_text01').hover(
function (e) {
//テキストエリアに乗った時の処理
},
function (e) {
//テキストエリアから外れた時の処理
$('.mI_textarea').fadeOut()
$('.mI_textarea .mI_text01').hide()
}
);
},
function (e) {
//ボタンから外れた時の処理
}
);
위와 같은 코드를 적어서
메인 이미지슬라이드 안에 버튼을 설치하여 마우스 오버 하면
숨겨진 텍스트가 보여지도록 했는데요,
이것을 마우스오버가 아닌 클릭하면 나타나는 것으로 변경하고 싶습니다.
자바스크립트를 몰라서 hover부분을 click으로 바꾸면 되나 싶었는데
그게 아니더군요 ㅠ ㅠ...
아는 분들에게는 쉬울거라 믿고 질문합니다.
어느 부분을 수정해야 할까요? ㅠ
!-->
답변 10
<script>
$('.mI_icon li').on('click', function() {
$('.mI_textarea').fadeIn();
var name = '.mI_text0' + ($(this).index() + 1);
$(name).show()
$(name + ' .closed').on('click', function() {
$('.mI_textarea').fadeOut();
$(name).hide();
});
});
</script>
$(
'.mI_icon01'
).hover(
이늠을
$(
'.mI_icon01'
).click(
이렇게 변경해주세요
아래 두 군데 모두 고쳐도 작동 않나요?
제이쿼리 초보인 제가 봤을 땐, 아래 두 군데 고치면 될 것 같은뎅.ㅋ
$('.mI_icon01').click( function (e) { //ボタンに乗った時の処理 $('.mI_textarea').fadeIn() $('.mI_textarea .mI_text01').show() $('.mI_text01').click( function (e) { //テキストエリアに乗った時の処理 }, function (e) { //テキストエリアから外れた時の処理 $('.mI_textarea').fadeOut() $('.mI_textarea .mI_text01').hide() } ); }, function (e) { //ボタンから外れた時の処理 } );
[/code]
html전문을 다 올려봐주세요 ^^
$('.mI_textarea .mI_text01').hide();
$('.mI_icon01').click(function (e) {
//ボタンに乗った時の処理
$('.mI_textarea').fadeIn();
$('.mI_textarea .mI_text01').show();
$('.mI_text01').click(function (e) {
//テキストエリアに乗った時の処理
},function (e) {
//テキストエリアから外れた時の処理
$('.mI_textarea').fadeOut();
$('.mI_textarea .mI_text01').hide();
});
});
쓸모 없는것좀 빼고 잡아봤습니다. 참고가 되려나 모르겠네요
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<div id="mainImg">
<ul class="bxslider">
<li class="mainImg01">slide01</li>
<li class="mainImg02">slide02</li>
<li class="mainImg03">slide03</li>
<li class="mainImg04">slide04</li>
</ul>
<nav>
<ul class="mI_icon">
<li class="mI_icon01"><img src="" alt=""/>ddddd</li>
<li class="mI_icon02"><a href="icon01.png"><img src="" alt=""/></a></li>
<li class="mI_icon03"><a href="icon01.png"><img src="" alt=""/></a></li>
<li class="mI_icon04"><a href="icon01.png"><img src="" alt=""/></a></li>
<li class="mI_icon05"><a href="icon01.png"><img src="" alt=""/></a></li>
</ul>
</nav>
<ul class="mI_textarea">
<li class="mI_text01" style="display:none">
<p class="closed"><img src="cross.svg" alt="닫기"></p>
<div class="mI_pic"><img src="iconA_ov.png" alt=""/></div>
<dl>
<dt>제목</dt>
<dd>
<p>텍스트텍스트텍스트</p>
<p class="btn_view"><a href="#"><i class="fa fa-chevron-circle-right" aria-hidden="true"></i>View</a></p>
</dd>
</dl>
</li>
<li class="mI_text02" style="display:none">
<p class="closed"><img src="cross.svg" alt="닫기"></p>
<div class="mI_pic"><img src="iconA_ov.png" alt=""/></div>
<dl>
<dt>제목</dt>
<dd>
<p>텍스트텍스트텍스트</p>
<p class="btn_view"><a href="#"><i class="fa fa-chevron-circle-right" aria-hidden="true"></i>View</a></p>
</dd>
</dl>
</li>
<li class="mI_text03" style="display:none">
<p class="closed"><img src="cross.svg" alt="닫기"></p>
<div class="mI_pic"><img src="iconA_ov.png" alt=""/></div>
<dl>
<dt>제목</dt>
<dd>
<p>텍스트텍스트텍스트</p>
<p class="btn_view"><a href="#"><i class="fa fa-chevron-circle-right" aria-hidden="true"></i>View</a></p>
</dd>
</dl>
</li>
<li class="mI_text04" style="display:none">
<p class="closed"><img src="cross.svg" alt="닫기"></p>
<div class="mI_pic"><img src="iconA_ov.png" alt=""/></div>
<dl>
<dt>제목</dt>
<dd>
<p>텍스트텍스트텍스트</p>
<p class="btn_view"><a href="#"><i class="fa fa-chevron-circle-right" aria-hidden="true"></i>View</a></p>
</dd>
</dl>
</li>
<li class="mI_text05" style="display:none">
<p class="closed"><img src="cross.svg" alt="닫기"></p>
<div class="mI_pic"><img src="iconA_ov.png" alt=""/></div>
<dl>
<dt>제목</dt>
<dd>
<p>텍스트텍스트텍스트</p>
<p class="btn_view"><a href="#"><i class="fa fa-chevron-circle-right" aria-hidden="true"></i>View</a></p>
</dd>
</dl>
</li>
</ul>
</div>
<script>
$('.mI_icon01').click(function (e) {
$('.mI_textarea').fadeIn();
$('.mI_textarea .mI_text01').show();
$('.mI_text01').hover(function (e) {
$('.mI_textarea').fadeOut();
$('.mI_textarea .mI_text01').hide();
});
});
</script>
!-->
나타났다 사라지는건 jquery아래보면
$(
'.mI_text01'
).hover(
function
(e) {
이녀석에 마우스가 올라가면 사라지게 되어있어서 그런겁니다.
해당 닫기 버튼의 class나 id로 바꾸고 click이벤트로 바꾸시면 될거 같네요
ㅋㅋㅋ jquery는 프로그래머 더러 짜라고 그러세요
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<style>
#mainImg .mI_textarea {
display: none;
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
padding: 0 30%;
background: rgba(0,0,0,0.75);
box-sizing: border-box;
}
#mainImg .mI_textarea li {
padding-top: 130px;
display: none;
color: #fff;
overflow: hidden;
}
#mainImg .mI_textarea .closed {
text-align: right;
cursor: pointer;
}
#mainImg .mI_textarea li .mI_pic {
float: left;
margin-right: 25px;
}
#mainImg .mI_textarea li dl {
overflow: auto;
}
#mainImg .mI_textarea li dl dt {
font-size: 4rem;
font-weight: 500;
margin-bottom: 15px;
}
#mainImg .mI_textarea li dl dd p {
font-size: 1.6rem;
font-weight: 300;
margin-bottom: 20px;
}
/*------------- mI_icon -----------*/
#mainImg .mI_icon {
width: 460px;
height: 460px;
top: 0;
left: 50%;
margin-left: -230px;
position: absolute;
background: url(wa.png) no-repeat center;
background-size: cover;
}
#mainImg .mI_icon li {
line-height: 0;
width: 80px;
position: absolute;
}
#mainImg .mI_icon .mI_icon01 {
top: 10px;
left: 50%;
margin-left: -40px;
}
#mainImg .mI_icon .mI_icon02 {
top: 140px;
right: 0;
}
#mainImg .mI_icon .mI_icon03 {
right: 70px;
bottom: 30px;
}
#mainImg .mI_icon .mI_icon04 {
left: 70px;
bottom: 30px;
}
#mainImg .mI_icon .mI_icon05 {
top: 140px;
left: 0;
}
#mainImg .mI_icon li img {
max-width: 100%;
}
</style>
<div id="mainImg">
<ul class="bxslider">
<li class="mainImg01">slide01</li>
<li class="mainImg02">slide02</li>
<li class="mainImg03">slide03</li>
<li class="mainImg04">slide04</li>
</ul>
<nav>
<ul class="mI_icon">
<li class="mI_icon01"><img src="" alt=""/>ddddd</li>
<li class="mI_icon02"><a href="icon01.png"><img src="" alt=""/></a></li>
<li class="mI_icon03"><a href="icon01.png"><img src="" alt=""/></a></li>
<li class="mI_icon04"><a href="icon01.png"><img src="" alt=""/></a></li>
<li class="mI_icon05"><a href="icon01.png"><img src="" alt=""/></a></li>
</ul>
</nav>
<ul class="mI_textarea">
<li class="mI_text01">
<p class="closed"><img src="cross.svg" alt="닫기"></p>
<div class="mI_pic"><img src="iconA_ov.png" alt=""/></div>
<dl>
<dt>제목</dt>
<dd>
<p>텍스트텍스트텍스트</p>
<p class="btn_view"><a href="#"><i class="fa fa-chevron-circle-right" aria-hidden="true"></i>View</a></p>
</dd>
</dl>
</li>
<li class="mI_text02">
<p class="closed"><img src="cross.svg" alt="닫기"></p>
<div class="mI_pic"><img src="iconA_ov.png" alt=""/></div>
<dl>
<dt>제목</dt>
<dd>
<p>텍스트텍스트텍스트</p>
<p class="btn_view"><a href="#"><i class="fa fa-chevron-circle-right" aria-hidden="true"></i>View</a></p>
</dd>
</dl>
</li>
<li class="mI_text03">
<p class="closed"><img src="cross.svg" alt="닫기"></p>
<div class="mI_pic"><img src="iconA_ov.png" alt=""/></div>
<dl>
<dt>제목</dt>
<dd>
<p>텍스트텍스트텍스트</p>
<p class="btn_view"><a href="#"><i class="fa fa-chevron-circle-right" aria-hidden="true"></i>View</a></p>
</dd>
</dl>
</li>
<li class="mI_text04">
<p class="closed"><img src="cross.svg" alt="닫기"></p>
<div class="mI_pic"><img src="iconA_ov.png" alt=""/></div>
<dl>
<dt>제목</dt>
<dd>
<p>텍스트텍스트텍스트</p>
<p class="btn_view"><a href="#"><i class="fa fa-chevron-circle-right" aria-hidden="true"></i>View</a></p>
</dd>
</dl>
</li>
<li class="mI_text05">
<p class="closed"><img src="cross.svg" alt="닫기"></p>
<div class="mI_pic"><img src="iconA_ov.png" alt=""/></div>
<dl>
<dt>제목</dt>
<dd>
<p>텍스트텍스트텍스트</p>
<p class="btn_view"><a href="#"><i class="fa fa-chevron-circle-right" aria-hidden="true"></i>View</a></p>
</dd>
</dl>
</li>
</ul>
</div>
<script>
$('.mI_icon01').click(function (e) {
$('.mI_textarea').fadeIn();
$('.mI_textarea .mI_text01').show();
$('.closed').click(function (e) {
$('.mI_textarea').fadeOut();
$('.mI_textarea .mI_text01').hide();
});
});
</script>
스크립트 부분의 중복을 뺐습니다 -ㅂ-
아래 스크립트만 추가하셔도 필요한 기능은 사용가능 하실거 같습니다.
<script>
$(".mI_icon01").click(function(){
$('.mI_textarea').fadeIn();
$('.mI_textarea .mI_text01').show();
});
$(".mI_icon02").click(function(){
$('.mI_textarea').fadeIn();
$('.mI_textarea .mI_text02').show();
});
$(".mI_icon03").click(function(){
$('.mI_textarea').fadeIn();
$('.mI_textarea .mI_text03').show();
});
$(".mI_icon04").click(function(){
$('.mI_textarea').fadeIn();
$('.mI_textarea .mI_text04').show();
});
$(".mI_icon05").click(function(){
$('.mI_textarea').fadeIn();
$('.mI_textarea .mI_text05').show();
});
$('.closed').click(function (e) {
$('.mI_textarea').fadeOut();
$('.mI_textarea .mI_text01').hide();
});
</script>
CSS 추가합니다.
#mainImg .mI_textarea {
display: none;
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
padding: 0 30%;
background: rgba(0,0,0,0.75);
box-sizing: border-box;
}
#mainImg .mI_textarea li {
padding-top: 130px;
display: none;
color: #fff;
overflow: hidden;
}
#mainImg .mI_textarea .closed {
text-align: right;
cursor: pointer;
}
#mainImg .mI_textarea li .mI_pic {
float: left;
margin-right: 25px;
}
#mainImg .mI_textarea li dl {
overflow: auto;
}
#mainImg .mI_textarea li dl dt {
font-size: 4rem;
font-weight: 500;
margin-bottom: 15px;
}
#mainImg .mI_textarea li dl dd p {
font-size: 1.6rem;
font-weight: 300;
margin-bottom: 20px;
}
/*------------- mI_icon -----------*/
#mainImg .mI_icon {
width: 460px;
height: 460px;
top: 0;
left: 50%;
margin-left: -230px;
position: absolute;
background: url(wa.png) no-repeat center;
background-size: cover;
}
#mainImg .mI_icon li {
line-height: 0;
width: 80px;
position: absolute;
}
#mainImg .mI_icon .mI_icon01 {
top: 10px;
left: 50%;
margin-left: -40px;
}
#mainImg .mI_icon .mI_icon02 {
top: 140px;
right: 0;
}
#mainImg .mI_icon .mI_icon03 {
right: 70px;
bottom: 30px;
}
#mainImg .mI_icon .mI_icon04 {
left: 70px;
bottom: 30px;
}
#mainImg .mI_icon .mI_icon05 {
top: 140px;
left: 0;
}
#mainImg .mI_icon li img {
max-width: 100%;
}
위와 같이 CSS를 작성했습니다.
!-->