概要 -
Jcarousel jquery plugin
アイテムのリストをナビゲートするために使用しています。これらのアイテムは、いたるところで見つけることができるほとんどの例のように、画像/写真ではありません. 私の商品はポストで、高さが異なる場合があります。何度か試みましたが、正しく行うことができません。
HTML 構造
<div class="div1">
<div class="div2">
<div class="jcarousel">
<ul>
<li>
<div class="item">ITEM 1</div>div>
</li>
<li>
<div class="item">ITEM n</div>div>
</li>
</ul>
</div>
<a href="#" class="jcarousel-control-prev">‹</a>
<a href="#" class="jcarousel-control-next">›</a>
</div>
</div>
<ul>
動作させることはできませんが、各アイテムの高さが異なります。それぞれの内部<div class="jcarousel">
の高さに応じて、その高さを動的に変更したい。<div>
<li>
CSS
.div1 {
height: auto;
background: none repeat scroll 0% 0% rgb(255, 255, 255);
border-width: medium 1px 1px;
border-style: none solid solid;
border-color: -moz-use-text-color rgb(255, 255, 255) rgb(255, 255, 255);
padding: 20px 20px 0px;
margin-bottom: 50px;
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.46);
}
.div2 {
margin-top: -50px;
}
.jcarousel {
position: relative;
overflow: hidden;
height: 700px;
margin: 0px -20px;
padding: 0px 20px;
}
.jcarousel ul {
width: 20000em;
position: absolute;
list-style: none outside none;
margin: 0px;
padding: 0px;
}
.jcarousel li {
float: left;
width: 480px;
}
.item {
margin: 0px;
padding: 0px 20px;
height: 100%;
}
JS (高さの問題を克服しようとしています。このコードが何らかの形で Jcarousel.js に影響を与えているかどうかはわかりません。残念ながら、これは高さを正しく変更することがあります。ほとんどの場合、以前の高さを保持するか、保持するか、または間違って再度変更します仕方)
<script type="text/javascript">
$(document).ready(function(){
// checking the height of the first element in the <ul>
var count = 0;
var count_max = $(".jcarousel li").length;
var initial_height = $(".jcarousel ul li:eq("+count+") div.item").height();
$(".jcarousel").height(initial_height);
// changing height when pressing the prev control
$(document).on("click",".jcarousel-control-prev", function(){
if (count == 0) {
} else {
count = count-1;
var new_count = $(".jcarousel li:eq("+count+") div.item").height();
$(".jcarousel").height(new_count);
}
});
// changing height when pressing the next control
$(document).on("click",".jcarousel-control-next", function(){
if (count !== count_max) {
count = count+1;
var new_count = $(".jcarousel li:eq("+count+") div.item").height();
$(".jcarousel").height(new_count);
} else {
// trying to update the counter when reach the last <li> element within the <ul>
count = 0;
var initial_height = $(".jcarousel ul li:eq("+count+") div.item").height();
$(".jcarousel").height(initial_height);
}
});
});
</script>