通常情況下,我會給你一些鏈接到現有的滑塊腳本,但我不知道任何處理調整大小很好。
所以我已經適應從我自己的PHP異常處理程序:)
$('#list').each(function(){
var list = $(this),
currentPos = 0,
itemCount = list.children().length;
$('.right, .left').click(function(){
// +100 = right, -100 = left
var direction = $(this).hasClass('right') ? 100 : -100,
nextIndex = direction > 0 ? currentPos + 1 : currentPos - 1;
// do nothing if there is animation happening,
// or if index is out of boundaries
if($('> li', list).is(':animated')
|| (direction > 0 && nextIndex > itemCount - 1)
|| (direction < 0 && nextIndex < 0)
) return;
var next = $('> li:eq(' + nextIndex + ')', list),
current = $('> li:eq(' + currentPos + ')', list);
currentPos = nextIndex;
// determine if the link needs to be hidden
$('.left, .right').removeClass('hide');
if(currentPos === 0 || currentPos === itemCount - 1)
$(this).addClass('hide');
// adjust height of the container
list.css('height', Math.max(current.outerHeight(true), next.outerHeight(true)) + 'px');
// make the current slide absolute
current.css({
position: 'absolute',
left: 0,
top: 0,
width: '100%',
height: current.outerHeight(true) + 'px'
});
// show the next slide
next.css({
position: 'absolute',
left: direction + '%',
top: 0,
width: '100%',
height: next.outerHeight(true) + 'px'
}).show().animate({left: '0%'}, 300, 'swing', function(){
next.css({
position: 'relative',
left: 'auto',
top: 'auto'
});
});
// hide the current slide
current.animate({left: (-direction) + '%'}, 300, 'swing', function(){
current.hide();
});
});
// mouse wheel action within the list area
list.mousewheel(function(event, delta){
(delta > 0) ? $('.right').click() :$('.left').click();
});
});
CSS一些代碼:
.hide{
display:none;
}
#list{
position: relative;
width: 100%;
overflow: hidden;
}
#list > li{
display: none;
}
#list > li:first-child{
display: block;
}
HTML結構應該是這樣的:
<a class="left"> left </a>
<a class="right"> right </a>
<ul id="list">
<li> ... </li>
...
</ul>
DEMO
mousewheel jQuery插件。如果您不需要鼠標滾輪支持,請移除最後一個事件。
但是沒有內容可以在右側查看,因爲文本包裝。您通過添加邊距來強制執行此操作。這是打算? –
我不知道爲什麼文本包裝,這不是打算。實際網站上的內容將是圖像和文本(類似時間線),因此該部分的寬度至少爲3000像素。我想要做的是類似於這樣的:http://jsfiddle.net/9hubz/但是這也有問題的右側和左側的可訪問的空白。 –
你找到答案了嗎?我想完全一樣。 – Erlan