I am developing a page that has team members photos. When you click on their photo I am using a JQuery slideToggle function to have each of their descriptions slide down. I also want their name to appear when hovering over their photo and remain their while their description is shown. Is there a way to have these two functions work together? I used CSS hover effect but it is not working with the Jquery function.
The other issue I am having related to this page is how it breaks down to mobile. I have a three column layout for desktop and a two column layout for mobile. When I have my HTML organized with photo then matching description directly after it causes all of the photos in that row to slide down. I want the photos in each row to always remain next to one another. The other thing I can do is have the HTML be organized with three photos then three descriptions. This causes an issue in mobile view because of the two column layout.
Any suggestions are greatly appreciated!
Here is my HTML(The first photo has the hover effect and the rest just have the slideToggle function)
$('img[data-char=togglephoto1]')
$(function() {
$('.toggledesc').hide();
$('.togglephoto').on('click', function() {
var toggleid = $(this).attr('data-toggleid');
$('.toggledesc').not('.' + toggleid).slideUp("slow")
$('.' + toggleid).slideToggle("slow");
});
});
.portfoliowork {
width: 33%;
float: left;
display: block;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 1%;
}
.textappear {
position: absolute;
top: 20px;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 20px 20px 20px 20px;
color: #f00;
background-color: rgba(255, 255, 255, .9);
width: 100%;
height: 100%;
line-height: 100px;
text-align: center;
z-index: 10;
opacity: 0;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.textappear:hover {
opacity: 1;
}
.workimg {
z-index: 1;
}
.appearimg {
width: 33%;
display: block;
position: relative;
}
@media screen and (max-width: 500px) {
.portfoliowork {
width: 50%;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="portfoliowork appearimg">
<div class="textappear">
<p>Name should appear here</p>
</div>
<img src="images/portfolioph.jpg" class="togglephoto workimg" data-toggleid="toggledesc4">
</div>
<div class="portfoliowork">
<img src="images/portfolioph.jpg" class="togglephoto" data-toggleid="toggledesc5">
</div>
<div class="portfoliowork">
<img src="images/portfolioph.jpg" class="togglephoto" data-toggleid="toggledesc6">
</div>
<div class="whowearetext toggledesc toggledesc4">
<p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
</div>
<div class="whowearetext toggledesc toggledesc5">
<p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
</div>
<div class="whowearetext toggledesc toggledesc6">
<p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
</div>
<div class="portfoliowork">
<img src="images/portfolioph.jpg" class="togglephoto" data-toggleid="toggledesc7">
</div>
<div class="portfoliowork">
<img src="images/portfolioph.jpg" class="togglephoto" data-toggleid="toggledesc8">
</div>
<div class="portfoliowork">
<img src="images/portfolioph.jpg" class="togglephoto" data-toggleid="toggledesc9">
</div>
<div class="whowearetext toggledesc toggledesc7">
<p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
</div>
<div class="whowearetext toggledesc toggledesc8">
<p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
</div>
<div class="whowearetext toggledesc toggledesc9">
<p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</p>
</div>
Simplify your HTML: