我有一个博客页面, 必须在其中使用accordion jQuery列出帖子。我设法使其正常工作, 但无法正确呈现, 更准确地说:页面的高度没有根据帖子的大小相应地放大。你可以在这里看到它:http://melisayavas.com/web/?page_id=22
我认为这比jQuery更像是CSS问题, 不幸的是, 我对CSS或jQuery的了解不足, 无法真正确定问题出在哪里以及如何解决。
这是页面的HTML和JS:
<
script type="text/javascript">
$(function() {
$('#va-accordion').vaccordion();
});
<
/script>
<
div id="va-accordion" class="va-container">
<
div class="va-wrapper">
<
div class="about-page">
<
?php query_posts( array ( 'category_name' =>
'About', 'posts_per_page' =>
-1 ) );
?>
<
?php if (have_posts()) : while (have_posts()) : the_post();
?>
<
div class="va-slice">
<
article class="about" id="about-<
?php the_ID();
?>
">
<
div class="title">
<
h2>
<
?php the_title();
?>
<
/h2>
<
/div>
<
div class="va-content">
<
div class="entry">
<
li>
<
?php the_content();
?>
<
/li>
<
/div>
<
/div>
<
?php edit_post_link('Edit this entry.', '<
p>
', '<
/p>
');
?>
<
/article>
<
/div>
<
?php endwhile;
endif;
?>
<
/div>
<
/div>
<
/div>
这是我使用的CSS:
/* Vertical Accordion Style */
.va-container{
position:relative;
}
.va-wrapper{
width:100%;
height:100%;
position:relative;
overflow:hidden;
background:#000;
}
.va-slice{
cursor:pointer;
width:100%;
left:0px;
overflow:hidden;
}.va-title{
}
.va-content{
display:none;
margin-left:25px;
}
.va-slice p{
}
.va-slice ul{
margin-top:20px;
}
.va-slice ul li{
}
.va-slice ul li a{
}
.va-slice ul li a:hover{
}.post {
border: 2px solid;
border-radius: 10px;
clear: both;
overflow: hidden;
padding: 20px;
margin-top: 28px;
}.about {
clear: both;
overflow: hidden;
}.about-page {
border: 2px solid;
border-radius: 10px;
clear: both;
overflow: hidden;
padding: 20px;
margin-top: 28px;
}
完整的accordion jQuery可以在这里找到:http://pastebin.com/hJEufLQU
#1在jquery.vaccordion.js中, accordion 元素的高度和扩展的accordion 项目的高度被明确设置为:
line 300 - accordionH : 450
...
line 305 - expandedHeight: 350
因此, 元素太小而无法容纳帖子内容。你可以尝试删除这些线, 也可以将其高度设置为” 自动” 。
编辑
回答你的其他评论” 有人知道如何在页面加载时使第一个元素自动扩展吗?”
在我看来, accordion 应默认处理此行为[请参阅accordion 演示]。所以我不确定为什么它没有显示第一个元素。无论如何, 你可以通过CSS解决此问题:
#va-accordion .va-slice:first-child .va-content{
display: block;
}
JSFiddle示例:http://jsfiddle.net/mcDeE/
#2
<
script>
$(document).ready(function() {
$('.va-slice').click(function(){
var index_div = $(this).index();
var element = $('.va-slice').eq(index_div);
});
});
<
/script>
应用脚本, 在该元素上添加一个类’ explicit_va’
.explicit_va{
min-height:0px !important;
height:100% !important;
}
#3
<
script>
$(document).ready(function() {
$('.va-slice').click(function(){
var index_div = $(this).index();
//console.log(index_div);
var element = $('.va-slice').eq(index_div);
//console.log(element);
//var getHeight = element.height();
//console.log(getHeight);
console.log(element.attr('style', ''));
console.log(element.addClass('explicit_va'));
});
});
<
/script>
【javascript accordion / CSS无法正常工作】更多内容:http://source88.blogspot.com/search/label/Accordion
推荐阅读
- 列出在WordPress的类别/标签中写了一定数量帖子的作者
- 在我的WordPress主题文件中不断发现注入垃圾的PHP
- 在WordPress中,如何将自定义帖子类型的默认管理排序顺序设置为自定义列()
- 在首页的每第7个帖子和类别WordPress页面之间插入广告
- 在我的WordPress主题中,如何为博客页面添加分页()
- 在WordPress中包含Fullpage.js(或在一般情况下为JS)
- 迁移wordpress后图像未显示
- Flutter(GridPaper 示例#yyds干货盘点#)
- Go 中实现用户的每日限额(比如一天只能领三次福利)