永続的なヘッダーを使用できるようにしたいページがあります。また、をクリックしてdiv
アコーディオンのように機能させたいと考えています。2つの部分を別々に使用すると機能しますが、それらを組み合わせるとコードが機能しません
HTML
<div class="main">
<div>
<section>
<h2 class="actog">Header</h2>
<div class="accon">
<!--Content Here-->
</div>
</section>
<section>
<h2 class="actog">Different Header</h2>
<div class="accon">
<!--Content Here-->
</div>
</section>
<section>
<h2 class="actog">Another Header</h2>
<div class="accon">
<!--Content Here-->
</div>
</section>
</div>
</div>
CSS
.actog {
color:black;
margin:5px 0;
padding:5px;
width:100%;
height:auto;
background-color:green;
/* Transitions */
}
.actog:hover, .active{
cursor:pointer;
text-decoration:underline;
color:#ff385b;
background-color:pink;
}
.accon{padding:5px 0;}
.floatingHeader {
position: fixed;
margin-top: 0;
top:0;
visibility: hidden;
}
そして、jQueryのこれら2つのスニペット
jQuery(document).ready(function() {
jQuery(".actog").next(".accon").hide();
jQuery(".actog").click(function(){
$('.active').not(this).toggleClass('active').next('.accon').slideToggle(500);
$(this).toggleClass('active').next().slideToggle(400);
});
});
function UpdateTableHeaders() {
$(".main div section").each(function() {
var el = $(this),
offset = el.offset(),
scrollTop = $(window).scrollTop(),
floatingHeader = $(".floatingHeader", this)
if ((scrollTop > offset.top) && (scrollTop < offset.top + el.height())) {
floatingHeader.css({
"visibility": "visible"
});
} else {
floatingHeader.css({
"visibility": "hidden"
});
};
});
}
// DOM Ready
$(function() {
var clonedHeaderRow;
$(".main div section").each(function() {
clonedHeaderRow = $(".actog", this);
clonedHeaderRow
.before(clonedHeaderRow.clone())
.css("width", clonedHeaderRow.width())
.addClass("floatingHeader");
});
$(window)
.scroll(UpdateTableHeaders)
.trigger("scroll");
});