2016-04-11 17 views
2

1-100 arasında değer elde etmek için html type = "Range" kullanıyorum, varsayılan değer vermiyorum ama varsayılan olarak 50 alıyor değer. Ama sadece kaydırıcıyı değiştirdiğimde bir değer almasını istiyorum, o zamana kadar hiçbir değer vermemeli. Bunun için bir yolu var mı?HTML type = "range" değeri kaydırıldıktan sonra oluşturulmalıdır.

Bu bağlantıda olduğu gibi 25 varsayılan değer olarak alıyor.

http://jsfiddle.net/kxbdgwzo/enter code here

+0

Kaydırıcı hareket ettirilene kadar etiketin nasıl boş bırakılacağını mı soruyorsunuz? Yoksa varsayılan olarak sıfır göstermesini mi istiyorsunuz? –

+0

Görüntünün parlaklığını değiştirmek için kaydırıcıyı kullanıyorum. Bu nedenle, kaydırıcı 0 olarak ayarlanırsa, varsayılan parlaklık olarak 50 değerini alması durumunda herhangi bir değeri belirtmiyorsa, görüntüye uygulayarak 0 parlaklık sağlar. Ama varsayılan olarak herhangi bir değeri almak istemiyorum, sadece kaydırıcıyı taşıdıktan sonra değer almalı. – KayR

cevap

1

boş olarak başlangıç ​​değeri ayarlamak mümkün değildir. Aralık kaydırıcıları başlangıç ​​değeri gerektirir veya varsayılan değer olarak orta değerdir. Bu durumda - örneğin 0.

<html> 
<body> 

    <input id="slider" type="range" min="0" value="0" max="50" step="1" /> 

    <h2 id="range">0</h2> 
</body> 
</html> 

Fiddle

İstersen değerini gizleyebilirsiniz value özelliğini ayarlayarak kısmını 0 olarak init - ama tamamen can not isterseniz bunu ortadan kaldırmak kaydırıcınızı init değerini otomatik olarak merkezlemez.

Düzenleme: Başka bir seçenek de görüntü opaklığını önceden ayarlamanızdır - ve kaydırıcıya tıklanıncaya kadar kaydırıcıya opaklık denetimini geçmez. Bu sürgü değerini 50 olarak ayarlayın, böylece kaydırıcıya ilk kez tıklandığında görüntü tam olarak opak kalır - ancak opaklık değeri daha sonra odaklandıktan sonra kaydırıcı tarafından kontrol edilir.

+0

Görüntünün parlaklığını değiştirmek için kaydırıcıyı kullanıyorum. Bu nedenle, kaydırıcı 0 olarak ayarlanırsa, varsayılan parlaklık olarak 50 değerini alması durumunda herhangi bir değeri belirtmiyorsa, görüntüye uygulayarak 0 parlaklık sağlar. Ama varsayılan olarak herhangi bir değeri almak istemiyorum, sadece kaydırıcıyı taşıdıktan sonra değer almalı. – KayR

+1

Evet - Ne yapmaya çalıştığınızı anlıyorum - ama maalesef hiç bir değer içermeyen bir aralık kaydırıcısını başlatmak mümkün değil. DOM'a eklendiğinde piperin nereye yerleştirileceğini bilmesi gerekiyor. Eğer bir tane vermezseniz - sadece pipeti varsayılan olarak ortadaki değere yerleştirecektir. Diğer seçeneğiniz, varsayılan aralık kaydırıcıyı kullanmamak ve pip için init değeri gerektirmeyen sıfırdan kendi oluşturmaktır. Veya başlangıçta görüntünün opaklığını 1 olarak ayarlayın ve kaydırıcının odak verildikten sonra değerlerini uygulamasına izin vermeyin. – Korgrue

1

sadece başlangıç ​​değeri, görüntülemek thusly javascript değişmez istiyorsanız: basitçe <input> için value="0" ekleyin

var output = document.getElementById('range'); 
output.innerHTML = ''; 

function showValue(newValue) { 
    output.innerHTML = newValue; 
} 

$('#slider').change(function(e) { 
    showValue($(this).val()); 

}); 

Yoksa, sadece başlangıç ​​değeri sıfır olmasını istiyorsanız.

+0

Görüntünün parlaklığını değiştirmek için kaydırıcıyı kullanıyorum. Bu nedenle, kaydırıcı 0 olarak ayarlanırsa, varsayılan parlaklık olarak 50 değerini alması durumunda herhangi bir değeri belirtmiyorsa, görüntüye uygulayarak 0 parlaklık sağlar. Ama varsayılan olarak herhangi bir değeri almak istemiyorum, sadece kaydırıcıyı taşıdıktan sonra değer almalı. – KayR

+0

As @ korgrue'nin yanıtı durumlarında, bu kaydırıcıyı null yapamazsınız. Javascript'inizi, değiştirilinceye kadar kaydırıcı değerinizi uygulayamayacak şekilde düzenlemeniz gerekir. – WillardSolutions

İlgili konular