Автор Тема: random стринг без повтаряне на цифри.  (Прочетена 2154 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

howto

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 44
  • -Получени: 5
  • Публикации: 341
random стринг без повтаряне на цифри.
« -: 01 Февруари 2014, 02:24:01 »
Здравейте отново. Правя един динамичен background на jquery, но има малко бъгове за фиксване.Идеята е да не се повтаря числото от стринга например когато човек кликне на бутона стринга от рандом вади 1или2 или.... с кода ще стане по ясно.
Код: Javascript
  1. menu.click(function(){
  2. $(this).css( "color", "yellow" );
  3.         var randomImages = ['bg','bg1','bg2','bg3','bg4','bg5'];
  4.         var rndNum = Math.floor(Math.random() * randomImages.length);
  5.         document.body.style.backgroundSize = width_bg+"px "+height_bg+"px";
  6.         $("body").css({ background: "  url(js/img/" + randomImages[rndNum] + ".jpg) no-repeat" });
  7.         var width_bg = (document.body.clientWidth);
  8.         var height_bg = (document.body.clientHeight);
  9.         document.body.style.backgroundSize = width_bg+"px "+height_bg+"px";
  10. });
  11.  
  12.  
Въпроса е как да се вади винаги различна цифра от предходната?

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: random стринг без повтаряне на цифри.
« Отговор #1 -: 01 Февруари 2014, 03:04:24 »
Записваш цифрата в променлива и след това проверяваш стойността ѝ с един if?
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

kjufte

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 1
  • -Получени: 51
  • Публикации: 308
Re: random стринг без повтаряне на цифри.
« Отговор #2 -: 01 Февруари 2014, 10:10:42 »
Или пък проверяваш спрямо сегашния бекграунд.

Код: Javascript
  1. menu.click(function(){
  2. $(this).css( "color", "yellow" );
  3.  
  4.         var randomImages = ['bg', 'bg1', 'bg2', 'bg3', 'bg4', 'bg5'];
  5.         var currentBg = $("body").css('background-image');
  6.         currentBg = currentBg.replace('url(', '').replace(')', '');
  7.        
  8.         do {
  9.              var rndNum = Math.floor(Math.random() * randomImages.length);
  10.              var newBg = "js/img/" + randomImages[rndNum] + ".jpg";
  11.         } while (currentBg === newBg);
  12.        
  13.         $("body").css({ background: "  url(js/img/" + randomImages[rndNum] + ".jpg) no-repeat" });
  14.         var width_bg = (document.body.clientWidth);
  15.         var height_bg = (document.body.clientHeight);
  16.         document.body.style.backgroundSize = width_bg + "px " + height_bg + "px";
  17. });

http://jsfiddle.net/Lv9he/
« Последна редакция: 01 Февруари 2014, 11:04:13 от kjufte »

HanKrum

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 125
  • -Получени: 73
  • Публикации: 1005
  • Кибик
Re: random стринг без повтаряне на цифри.
« Отговор #3 -: 01 Февруари 2014, 12:07:40 »
Ако са само 2 резултата, най-удачно е да се проверява дали съвпада с  текущата стойност, ако са повече резултатите, Райчо ползвай оня алгоритъм дето го ползвам в блога за случайни постове, дето всеки резултат влиза в масив за да се провери следващия резултат.
"Силата на правителството се крепи на невежеството на народа, и те знаят това и винаги ще се борят против просвещението." Лев Толстой