我遇到的问题是,如果第四个项目有一个很长的描述,那么当它超出#features时它会被切断(由于我的设计中有一个严格的高溢出:隐藏。
我希望有人会就如何选择当前项目移至顶端提出建议吗?
这是一个示例网址:forums.wuggawoo.co.uk/example.php基本上它应该从项目1,项目2,项目3,项目4开始,项目1显示其描述。 5秒后,订单应该是项目2,项目3,项目4,项目1,项目2显示其描述。 5秒后订单应该是项目3,项目4,项目1,项目2,项目3显示其描述等等。我刚刚在我发布的链接上更新的代码,有点做了但是由于某种原因它在获得了abit消息之后前几个循环
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="/library/jquery/1.4.js"></script>
<script>
var Model = {}
jQuery( function(){ Model.FeatureBar.init(jQuery('.features')) } );
Model.FeatureBar = {
current:0,
items:{},
init: function init(options){
var me = this;
me.triggers = []
me.slides = []
this.container = jQuery('#features');
jQuery('.feature').each(function(i){
me.triggers[i] = {url: jQuery(this).children('.feature-title a').href, title: jQuery(this).children('.feature-title'),description:jQuery(this).children('.feature-description')}
me.slides[i] = {image: jQuery(this).children('.feature-image')}
});
for(var i in this.slides){
this.slides[i].image.hide();
this.triggers[i].description.hide();
}
Model.FeatureBar.goToItem(0);
setInterval(function(){Model.FeatureBar.next()},5000);
},
next: function next(){
var i = (this.current+1 < this.triggers.length) ? this.current+1 : 0;
this.goToItem(i);
},
previous: function previous(){
var i = (this.current-1 > 1) ? this.current-1 : this.triggers.length;
this.goToItem(i);
},
goToItem: function goToItem(i) {
if (!this.slides[i]) {
throw 'Slide out of range';
}
this.triggers[this.current].description.slideUp();
this.triggers[i].description.slideDown();
this.slides[this.current].image.hide();
this.slides[i].image.show();
this.current = i;
},
}
</script>
</head>
<body>
<div id="features">
<div class="feature current">
<div style="display: none;" class="feature-image">
<a href="google.com"><img src="/design/images/miss.png"></a>
</div>
<h2 class="feature-title"><a href="google.com">Item 1</a></h2>
<p style="display: none;" class="feature-description"><a href="google.com">Item 1 description</a></p>
</div>
<div class="feature">
<div class="movie-cover">
<a href="/movie/movie"><img src="/image2.png" alt="" title=""></a>
</div>
<div style="display: block;" class="feature-image">
<a href="/rude/movie"><img src="/images/Featured/rude.png"></a>
</div>
<h2 class="feature-title"><a href="/rude/movie">Item 2</a></h2>
<p style="display: block;" class="feature-description"><a href="/rude/movie">Item 2 description</a></p>
</div>
<div class="feature">
<div style="display: none;" class="feature-image">
<a href="/pis/movie"><img src="/image3.png"></a>
</div>
<h2 class="feature-title"><a href="/pis/movie">Item 3</a></h2>
<p style="display: none;" class="feature-description"><a href="/pis/movie">Item 3 description</a></p>
</div>
<div class="feature">
<div style="display: none;" class="feature-image">
<a href="what.com"><img src="/images/Featured/indie.png"></a>
</div>
<h2 class="feature-title"><a href="what.com">Item 4</a></h2>
<p style="display: none;" class="feature-description"><a href="what.com">Item 4 description</a></p>
</div>
</div>
</body>
</html>
答案 0 :(得分:2)
我建议你这样做:
$('.feature-description').each(function (i,n){
var parent = $(n).closest('.feature');
$(n).prependTo(parent);
});
这将把每个“特征描述”放到父母的“.feature”的开头/顶部。 在哪里放代码?嗯,这取决于你想要它改变的地方。
如果你想在页面加载时使用它。然后把它放在你的init函数上......
希望有所帮助