2013-03-13 2 views
1

Я пытаюсь получить класс «bio-button» div, чтобы открыть div скрытого текста и уменьшить его собственную непрозрачность. И затем, когда div текста закрыт, он возвращается в прежнее состояниеФункция jQuery click для увеличения непрозрачности

Если вы посмотрите на this fiddle demo, то эффект, который я хочу, такой же, как при щелчке по изображению.

Но, похоже, я сталкиваюсь с проблемами со слишком многими функциями. Как я могу достичь этого более эффективно?

JQuery:

$('.bio-button').on('click', function() { 
$(this).parent('img').css({opacity:1}); 
}); 

Это мой HTML:

<div id="" class="team-member"> 
<div class="team-text"> 
    <p>hello this is Billy's text</p> 
    <div class="close"></div> 
</div><!-- .team-text --> 
<div class="team-photo"> 
    <img width="437" height="293" src="http://www.mgrear.com/clients/gls/wp-content/uploads/2013/02/billy.jpg" class="" alt="billy" />       
    <h2>Billy Senecal</h2> 
    <p>Producer/Director</p> 
</div><!-- .team-photo --> 
<div class="bio-button">BIO</div> 
<div class="clear"></div> 
</div><!-- #team-member --> 
<div id="" class="team-member"> 
<div class="team-text"> 
    <p>THis is Mark's text</p> 
    <div class="close"></div> 
</div><!-- .team-text --> 
<div class="team-photo"> 
    <img width="439" height="293" src="http://www.mgrear.com/clients/gls/wp-content/uploads/2013/02/mark.jpg" class="" alt="mark" />        
    <h2>Mark Montalto</h2> 
    <p>Editor/Producer</p> 
</div><!-- .team-photo --> 
<div class="bio-button">BIO</div> 
<div class="clear"></div> 

+0

В качестве предложения по вашему дизайну. Добавьте к ним переход css. Там, где он работает (моззила, хром, сафари, опера), творит чудеса, а где нет (более старые версии IE) вообще не влияют на вас. Пока что это выглядит грубо. –

+0

Dan, где я буду использовать переходы? Я действительно новичок в css3. – MGDTech

+0

Добавить переход к элементам, которые из-за события изменяют их состояние - ширина, непрозрачность, маржа, заполнение, граница, преобразование, размер шрифта почти что угодно. Вы можете указать продолжительность и задержку для своего перехода и свойство, которое вы хотите переместить, или почему не все из них. .class {переход: непрозрачность 1с легкость 500 мс; -webkit-переход: непрозрачность 1s легкость 500 мс; -o-переход: непрозрачность 1s легкость 500ms; Непрозрачность: 0; } .class: hover, .newclass {opacity: 1} Вместо непрозрачности вы можете сказать «все», 1 секунда - это время, 500 мс - это задержка и легкость - ваш тип ослабления. http://www.w3schools.com/css3/css3_transitions.asp для получения дополнительной информации. –

ответ

1

Попробуйте вместо этого:

$('.bio-button').on('click', function() { 
    $(this).prev('.team-photo').children('img').css({opacity:1}); 
}); 

Чтобы разбить его:

Когда .bio-button щелкают, посмотрите на предыдущем смежном собрата, который имеет класс team-photo, а затем получить img элемент, который является дочерним этого team-photo элемента, затем внести определенные коррективы CSS к img элементу.

В приведенном выше примере $(this) относится к элементу, который был нажат: $('.bio-button').

+0

zakang, это решает! Не возражаете ли вы сказать мне, почему ваш код выбирает этот образ? Я взял вашу функцию и добавил '$ ('. Bio-button '). Css ({opacity:' 0.5 '}); в конце, чтобы изменить непрозрачность кнопки. – MGDTech

+0

@MGDTech Нет, я добавил объяснение в свой ответ! – zakangelle

Смежные вопросы