Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 06.04.2015, 17:10
Аватар для hfts_rider
Профессор
Отправить личное сообщение для hfts_rider Посмотреть профиль Найти все сообщения от hfts_rider
 
Регистрация: 26.01.2014
Сообщений: 181

Рони, подскажи еще одно)
Как сделать обратное действие?
Ввод в инпут значения что бы оно меняло этот ползунок.
Ответить с цитированием
  #12 (permalink)  
Старый 06.04.2015, 17:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

hfts_rider,
только будет корректировка согласно step
<!DOCTYPE HTML>
<html>
  <head>
    <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/themes/smoothness/jquery-ui.css">
     <style type="text/css">
       .range-uah { margin: 10px;width : 500px; height: 8px ;
background-image: -webkit-gradient(linear, left, right, color-stop(0, #FFD700), color-stop(1, #FF4500));
background-image: -o-linear-gradient(left, #FFD700, #FF4500);
background-image: -moz-linear-gradient(left, #FFD700, #FF4500);
background-image: -webkit-linear-gradient(left, #FFD700, #FF4500);
background-image: linear-gradient(to right, #FFD700, #FF4500)

}
  .ui-widget-header	{
    background-image: -webkit-gradient(linear, left, right, color-stop(0, #FF1493), color-stop(1, #0060BF));
    background-image: -o-linear-gradient(left, #FF1493, #0060BF);
    background-image: -moz-linear-gradient(left, #FF1493, #0060BF);
    background-image: -webkit-linear-gradient(left, #FF1493, #0060BF);
    background-image: linear-gradient(to right, #FF1493, #0060BF)
  }

  .ui-slider-handle{border-radius:50%; position: relative; font-size: 14px; display: block; }
  .ui-slider-horizontal .ui-slider-handle{top:-0.4em; background: #0000FF; }
    .range-uah:focus {
 outline: 0; /* Firefox выделяет рамкой из точек все ссылки при нажатии */
 border: 0;
 }
     </style>
 </head>
  <body>

    <div class="slider-range range-uah"></div>
    <input class="result-block">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"></script>
<script>
$(function() {
    var len = 98 *30;
	$( ".range-uah" ).slider({
		range: "min",
		value: 0,
		step: 30,
		min: 0,
		max: len * 2,
		slide: function( event, ui ) {
          var res = ui.value;
				if (res < len) {
                    $( ".range-uah" ).slider({step: 30});
					$( ".result-block" ).val(1000 + 500*Math.floor(res/30));
				} else {
                    $( ".range-uah" ).slider({step: 98});
					$( ".result-block" ).val(50000 + 5000*Math.floor((res-len)/98));
				}

		},
        	change: function( event, ui ) {
             var res = ui.value;
				if (res < len) {
                    $( ".range-uah" ).slider({step: 30});
					$( ".result-block" ).val(1000 + 500*Math.floor(res/30));
				} else {
                    $( ".range-uah" ).slider({step: 98});
					$( ".result-block" ).val(50000 + 5000*Math.floor((res-len)/98));
				}

		}


	});
	//$( ".range-uah" ).slider("option", "value" , 98 * 30);
    $( ".result-block" ).on('change', function() {
    var val = +this.value||0;
    val = val < 50000 ? Math.floor(30*(val - 1000)/500) : (len + Math.floor(98*(val - 50000)/5000)) ;
    $( ".range-uah" ).slider("option", "value" , val);
}).val(50000).change()
});
</script>

  </body>
</html>

Последний раз редактировалось рони, 06.04.2015 в 18:14.
Ответить с цитированием
  #13 (permalink)  
Старый 07.04.2015, 10:35
Аватар для hfts_rider
Профессор
Отправить личное сообщение для hfts_rider Посмотреть профиль Найти все сообщения от hfts_rider
 
Регистрация: 26.01.2014
Сообщений: 181

Спасибо!!!!!!
Ответить с цитированием
  #14 (permalink)  
Старый 07.04.2015, 11:23
Аватар для hfts_rider
Профессор
Отправить личное сообщение для hfts_rider Посмотреть профиль Найти все сообщения от hfts_rider
 
Регистрация: 26.01.2014
Сообщений: 181

Все шикарно, но есть еще одно но))
Как сделать переключение ползунка на лайв режим при вводе?
Пробовал изменить событие на "keyup", все вроде бы норм, но есть проблемка.. Когда я начинаю вводить все работает, когда хочу стереть, тоже, но если я ввел допустим "5000" и жму "arrow left", оно перекидывает сразу назад в конец поля... В чем может быть проблема?

Я обернул в условия.
<!DOCTYPE HTML>
<html>
  <head>
    <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/themes/smoothness/jquery-ui.css">
     <style type="text/css">
       .range-uah { margin: 10px;width : 500px; height: 8px ;
background-image: -webkit-gradient(linear, left, right, color-stop(0, #FFD700), color-stop(1, #FF4500));
background-image: -o-linear-gradient(left, #FFD700, #FF4500);
background-image: -moz-linear-gradient(left, #FFD700, #FF4500);
background-image: -webkit-linear-gradient(left, #FFD700, #FF4500);
background-image: linear-gradient(to right, #FFD700, #FF4500)

}
  .ui-widget-header	{
    background-image: -webkit-gradient(linear, left, right, color-stop(0, #FF1493), color-stop(1, #0060BF));
    background-image: -o-linear-gradient(left, #FF1493, #0060BF);
    background-image: -moz-linear-gradient(left, #FF1493, #0060BF);
    background-image: -webkit-linear-gradient(left, #FF1493, #0060BF);
    background-image: linear-gradient(to right, #FF1493, #0060BF)
  }

  .ui-slider-handle{border-radius:50%; position: relative; font-size: 14px; display: block; }
  .ui-slider-horizontal .ui-slider-handle{top:-0.4em; background: #0000FF; }
    .range-uah:focus {
 outline: 0; /* Firefox выделяет рамкой из точек все ссылки при нажатии */
 border: 0;
 }
     </style>
 </head>
  <body>

    <div class="slider-range range-uah"></div>
    <input class="result-block">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"></script>
<script>
$(function() {
    var len = 98 *30;
	$( ".range-uah" ).slider({
		range: "min",
		value: 0,
		step: 30,
		min: 0,
		max: len * 2,
		slide: function( event, ui ) {
          var res = ui.value;
				if (res < len) {
                    $( ".range-uah" ).slider({step: 30});
					$( ".result-block" ).val(1000 + 500*Math.floor(res/30));
				} else {
                    $( ".range-uah" ).slider({step: 98});
					$( ".result-block" ).val(50000 + 5000*Math.floor((res-len)/98));
				}

		},
        	change: function( event, ui ) {
             var res = ui.value;
				if (res < len) {
                    $( ".range-uah" ).slider({step: 30});
					$( ".result-block" ).val(1000 + 500*Math.floor(res/30));
				} else {
                    $( ".range-uah" ).slider({step: 98});
					$( ".result-block" ).val(50000 + 5000*Math.floor((res-len)/98));
				}

		}


	});
		$( ".range-uah" ).slider("option", "value" , 98 * 30);
		$( ".result-block" ).on('keyup', function() {
			var val = +this.value||0;

			if (val >= 1000 && val <= 200000) {
				val = val < 50000 ? Math.floor(30*(val - 1000)/500) : (len + Math.floor(98*(val - 50000)/5000)) ;
				$( ".range-uah" ).slider("option", "value" , val);
			}

		});
});
</script>

  </body>
</html>

Последний раз редактировалось hfts_rider, 07.04.2015 в 11:44.
Ответить с цитированием
  #15 (permalink)  
Старый 07.04.2015, 11:34
Аватар для hfts_rider
Профессор
Отправить личное сообщение для hfts_rider Посмотреть профиль Найти все сообщения от hfts_rider
 
Регистрация: 26.01.2014
Сообщений: 181

Я наверное понял.. Это событие "keyup" срабатывает и выводит значение..
Ответить с цитированием
  #16 (permalink)  
Старый 07.04.2015, 12:07
Аватар для hfts_rider
Профессор
Отправить личное сообщение для hfts_rider Посмотреть профиль Найти все сообщения от hfts_rider
 
Регистрация: 26.01.2014
Сообщений: 181

Как же его можно переделать?... Я так понял что сейчас когда я ввожу значение оно меняет его на ползунке и при этом же вбивает повторно значение в поле инпут, по этому когда я жму в поле на стрелку после срабатывания события "keyup" оно повторно пересчитывает и выдает значение в поле..
Оно друг с другом связанно так что непонятно как его переделать.. Друг другу действия мешают..
Ответить с цитированием
  #17 (permalink)  
Старый 07.04.2015, 14:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

hfts_rider,
в живую то как ? посетитель уже закончил или ещё будет вносить изменения -- может только таймер - в начале функции его обнулять в конце функции ставить второй вариант - кнопка ок
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery UI Slider ползунок yura_yushkevich Библиотеки/Тулкиты/Фреймворки 0 26.12.2014 11:59
Нужно связать input и ползунок jQuery Slider / jQuery ui IffeR jQuery 4 16.08.2014 18:01
Ползунок JQuery: несколько событий? Veterinar jQuery 9 10.01.2014 20:57
jQuery UI Range slider как заблокировать левый ползунок по первому клику Oleg_Pupkin jQuery 3 04.09.2013 13:44
jQuery range slider Turner jQuery 0 15.03.2011 11:51