Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   упорядочение чисел из целого числа (https://javascript.ru/forum/misc/63353-uporyadochenie-chisel-iz-celogo-chisla.html)

korih 02.06.2016 14:37

упорядочение чисел из целого числа
 
Здравствуйте ребята. столкнулся с проблемой. пишу свой слайдер. с этим проблем нет, проблема выросла когда дошёл до выведения ссылок слайдера, к примеру от 1 до ... зависимо сколько слайдов. у меня есть общее значение слайдов $(".sliders img").size(); к примеру показывает общее значение 3. как мне из этого числа вывести построчно в цикле 1,2,3 ? пробывал через массив и перебор в цикле for. всё чего я добился это array[3], array[3], array[3]. может определённая функция есть? или я не в том направлении думаю( направьте на путь истенный:help:

для наглядности сам скрипт:
$(document).ready(function($) {

	var slideNum = 0;
	var slideCount = $(".slideBar").size();

	var arr = [slideCount];
	for(var i = 0; i<arr;i++){
		console.log(arr);
	}

	$(".slideBar").hide();
	$(".slideBar").eq(slideNum).show();

	function slideInterval () {
  		$(".slideBar").animate({opacity:"hide"},500);

		if(slideNum == (slideCount-1)){
			slideNum=0;
		}else{
			slideNum++;
		}

  		setTimeout(function(){
			$(".slideBar").eq(slideNum).animate({opacity:"show"},500);
		}, 500);

	};

	interval = setInterval(slideInterval, 4000);

	$(".slider").hover(function(){
		interval = clearInterval(interval);
	}, function(){ 
		interval = setInterval(slideInterval, 4000);
	});

	$("#next").click(function(){

		$(".slideBar").animate({opacity:"hide"},500);

		if(slideNum == (slideCount-1)){
			slideNum=0;
		}else{
			slideNum++;
		}
		setTimeout(function(){
			$(".slideBar").eq(slideNum).animate({opacity:"show"},500);
		}, 500);
	});


	$("#back").click(function(){

		$(".slideBar").animate({opacity:"hide"},500);

		if(slideNum == 0){
			slideNum = slideCount-1;
		}else{
			slideNum-=1;
		}
		setTimeout(function(){
			$(".slideBar").eq(slideNum).animate({opacity:"show"},500);
			}, 500);
	});

 	
});

Botik21 02.06.2016 15:13

Боземой а слайдер уже пишет.

Способ раз:
(new Array(slideCount)).forEach(function(el, i) {
  console.log(i+1);
});
Способ два:
for (var i = 1; i <= slideCount; ++i) {
  console.log(i);
}

Хотя я что-то не уверен что вам надо было именно число, но в посте конкретики нет.

korih 02.06.2016 15:21

спасибо вам большое, работает. знаю, что данная проблема мелочная, но на чём только нельзя застрять) Botik21 заодно может оцените сам скрипт? я далеко не бог в js и хотелось бы услышать критику, по данному "слайду"

Botik21 02.06.2016 15:40

Интервал пишется в глобальную переменную.
slideNum-=1;
декремент же есть
Таймауты можно заменить на delay() https://api.jquery.com/delay/
Функции у slideInterval и для next одинаковые – я бы объединил.
Значение $(".slideBar") запихать в переменную, чтобы jQ не искал её каждый раз.
В остальном для собственного пользования вполне пойдёт
Да, и первая строчка не нравится )
jQuery(function($) {

korih 02.06.2016 20:15

Спасибо, учту:) я ещё новичок в js, писал слайдер пользуясь арсеналом функций которые знал и написание алгоритма)

рони 02.06.2016 20:23

korih,
Цитата:

Сообщение от korih
interval = setInterval(slideInterval, 4000);

$(".slider").hover(function(){
interval = clearInterval(interval);
}, function(){
interval = setInterval(slideInterval, 4000);
});

var interval = setInterval(slideInterval, 4000);

	$(".slider").hover(function(){
		clearInterval(interval);
	}, function(){ 
		interval = setInterval(slideInterval, 4000);
	});

korih 07.06.2016 01:43

var arr = [slideCount];
	for(var i=0; i < slideCount; i++){
		$(".navSliders").append('<div id="'+i+'" class="numberSlide">'+i+'</div>');
	}
	
	$(".numberSlide").click(function() {
		$(".slideBar").animate({opacity:"hide"},0);
			slideNum = $(this).attr('id');
			$(".slideBar").eq(slideNum).animate({opacity:"show"},500);
		});
собственно для чего и нужен был перебор цифр, для навигации)

Botik21 07.06.2016 14:33

А для чего переменная arr?

korih 07.06.2016 17:11

ну да, массив оказался лишним, согласен


Часовой пояс GMT +3, время: 10:13.