kulgar,
1 Определить общую длину не скрытого контейнера со слайдами 2. Тестить смещение по сравнению с длиной, если >= .выключаем |
Пока не знаю, просто выложил в топик
<!DOCTYPE>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"/></script>
</head>
<body>
<style>
/* Скроллинг объектов */
#slider-objects {position: absolute; bottom: 0; left: 0; right: 0; z-index: 10000; background: #efefef; height: 140px;}
#slider-objects .slider-overflow {position: relative; overflow: hidden; margin: 0 61px; height: 140px;}
#slider-objects ul {position: absolute; margin: 1px 0; padding: 0; top:0; left: 0;}
#slider-objects ul li {position: relative; margin: 0 1px 0 0; width: 184px; height: 138px; overflow: hidden; float: left;}
#slider-objects ul li img {width: 184px; height: 138px;}
#slider-objects .slider-but-parent, #slider-objects .slider-but-next {position: absolute; display: block; width: 60px; height: 138px; top: 1px; background: #fff url('/static/images/images_sprite.png');}
#slider-objects .slider-but-parent {left: 0; background-position: 0px 0px; display: none;}
#slider-objects .slider-but-next {right: 0; background-position: 60px 0px;}
.EndElem {float:right;}
</style>
<script type="text/javascript">
$(document).ready(function () {
var sliderObjects = $('#slider-objects');
var butParent = $('.slider-but-parent', sliderObjects);
var butNext = $('.slider-but-next', sliderObjects);
var listObjects = $('ul', sliderObjects);
var objectWidth = 184;
var _width, _placed;
var corectPosition = 0;
var countObject = 0;
var positionPage = 0;
var obj =$(".slider-overflow").find("a > img");
//alert(LngObj);
var LngObj = obj.length; //Длина массива картинок
obj.eq(LngObj-1).addClass('EndElem'); //Установили класс на последний
$(window).resize(function() {
_width = $(window).width();
_placed = Math.floor((_width - 122) / objectWidth);
});
$(window).resize();
countObject = listObjects.children().length;
listObjects.width((objectWidth * countObject) + 122);
butParent.live('click', function() {
var positionX = ((objectWidth + 1) * _placed);
listObjects.stop().animate({
left: corectPosition + positionX,
}, 500,function(){
corectPosition += positionX;
console.log(corectPosition);
});
});
butNext.live('click', function() {
var positionX = -((objectWidth + 1) * _placed);
butParent.show();
var pageObject = Math.floor(countObject / _placed);
alert(positionPage+'\n' +(parseInt(+(listObjects.children(':first').width())*countObject)+ (+positionX)*(+positionPage)));
alert(positionPage, pageObject);
alert(countObject - (pageObject * _placed));
if (positionPage <= pageObject - 1) {
listObjects.stop().animate({
left: corectPosition + positionX,
}, 500,'swing',function(){
corectPosition += positionX;
console.log(corectPosition);
positionPage ++;
});
};
});
});
</script>
<section id="slider-objects" class="shadow-10 open">
<a class="slider-but-parent" href="javascript: void(0);"/>Prev</a>
<div class="slider-overflow">
<ul style="width: 5090px;">
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/2">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/3">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/4">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/5">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/6">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png"/>
</a>
</li>
<li>
<a href="/object/1">
<img src="/uploads/objects/1/preview.png" class="EndElem"/>
</a>
</li>
</ul>
</div>
<a class="slider-but-next" href="javascript: void(0);"/>Next</a>
</section>
</body>
</html>
|
Ну если понял правильно то общая длина не скрытого контейнера
будет вычислить (Длина объекта*Количество штук на странице)*на количество страницы (objectWidth* _placed)*(countObject - (pageObject * _placed)) |
У меня получилось сделать
http://learn.javascript.ru/play/5HxU9b но всетл теперь вопрос что бы стрелочки вперед и назад пропадали при достижения лимита тоесть дошел до конца вправо она исчезла если влево то левая исчесзла |
kulgar,
Ну ежели условие выполнилось( а проверяешь в каждом событии клика, Текущую кнопку hide(); а противоположную show() |
Никак чтот не соображу вы можите на примере показать на одной стороне?
|
kulgar,
:) А как ты остановил слайдер - нарисуй строку-условия |
if (corectObjects >=2) { // если номер страницы больше или равно 2 то выполняем условие (перематываем используя формулу общее кол-во объектов на странице умноженное на ширину объекта (+ 1px растояния между)
listObjects.stop().animate({ left: corectPosition + positionX, }, 500,null,function(){ corectPosition += positionX; positionPage ++; }); } else { // если страница больше то по формуле Оставшиеся объекты - (общее количество - (количество на странице * (количество страниц - 1) . Оставшиеся объекты * ширину + 1px console.log(listObjects.css('left')) listObjects.stop().animate({ left: corectPosition - ((countObject - (_page * _placed)) * (objectWidth+1)), }, 500,null,function(){ // corectPosition += positionlLast; // positionPage ++; //console.log(positionPage); }); }; С самого начала pageObject = 4. При нажатии справа я вычитаю 1 а слева буду прибалять 1 |
это надо было?) я просто говорю в java не силен вот методом пробы и ошибок и старой доброй математики. Ставил значения и смотрел результаты в консоли
|
kulgar,
я не знаю , нужно искать место, где он последнюю перемотку делает... и там делать смену видимости кнопок.... мне проще новый слайдер написать, :( |
| Часовой пояс GMT +3, время: 11:59. |