我尝试修改此jQuery滑块解决方案:https://stackoverflow.com/a/9864636/908491(使用第一个解决方案 - http://jsfiddle.net/sg3s/rs2QK/)。
这是我的jsFiddle:http://jsfiddle.net/markrummel/KSHSX/。
DIV滑动工作得很好,但被滑出的那个跳开了,而不是以与DIV滑入相同的速率平滑滑出。我在javascript和{{注释了.hide()
在CSS中,我可以看到DIV被滑出的位置。
这是我第一次使用overflow:hidden
,因此非常感谢您提供的任何帮助!
这是我的javascript:
.animate()
HTML:
$('.date-nav-prev').click(function () {
$('.date-nav-next').show();
var current = $('.visible-actions');
var prev = current.prev('.user-actions');
current.removeClass('visible-actions').animate({
left: current.width()
}, 500, function() {
//current.hide();
});
prev.addClass('visible-actions').show().css({
left: -(prev.width())
}).animate({
left: 0
}, 500);
});
$('.date-nav-next').click(function () {
var current = $('.visible-actions');
var next = current.next('.user-actions');
current.removeClass('visible-actions').animate({
left: -(current.width())
}, 500, function() {
//current.hide();
});
next.addClass('visible-actions').show().css({
left: prev.width()
}).animate({
left: 0
}, 500);
});
CSS:
<button class="date-nav-prev">< Prev</button>
<button class="date-nav-next">Next ></button><br />
<div id="wrapper">
<div class="user-actions daysAgo2">
Actions from 2 Days Ago</div>
<div class="user-actions yesterday">
Yesterday's Actions</div>
<div class="user-actions today visible-actions">
Today's Actions</div>
</div>
答案 0 :(得分:4)
我简单地完成了整个事情只是为了向你展示它可以走向哪个方向。在大多数插件中,有一个左右滑动的包装盒,而不是实际的盒子本身。这让事情变得容易一些。
我添加了一个左右滑动的#slider
div:
<button class="date-nav-prev">< Prev</button>
<button class="date-nav-next">Next ></button>
<div id="wrapper">
<div id="slider">
<div id="daysAgo2">Actions from 2 Days Ago</div>
<div id="yesterday">Yesterday's Actions</div>
<div id="today">Today's Actions</div>
</div>
</div>
将包装器设置为overflow:hidden;
,以便隐藏当前幻灯片之前或之前的所有内容:
#wrapper{
width:300px;
height:300px;
border:1px solid #333;
position:relative;
overflow:hidden;
}
#slider {
width: 1000px;
height: 100%;
position: absolute;
}
#slider div {
width:300px;
height:100%;
float:left;
}
#today{background:green;}
#yesterday {background:yellow;}
#daysAgo2 {background:orange;}
只需向左和向右滑动滑块即可。当然,扩展此类滑块没有限制。
var sliderWidth = 300;
var slider = $('#slider');
var sliderCount = $('div', slider).length;
slider.width(sliderCount * sliderWidth);
$('.date-nav-prev').click(function () {
$('#slider').animate({left: '+='+sliderWidth}, 500);
});
$('.date-nav-next').click(function () {
$('#slider').animate({left: '-='+sliderWidth}, 500);
});
答案 1 :(得分:0)
您可以使用this plugin
$('#wrapper').cycle({
fx: 'scrollHorz',
prev: '#prev',
next: '#next',
timeout: 0
});