Heyoh SO,Dış ortam sıcaklığına bağlı olarak arka plan rengini ayarlama
Üzerinde çalıştığım bir projeyi uygulamak için bir sıcaklık widget'ım var. Hiçbir şey özellikle zor, ben ect gereken verileri almak için ücretsiz bir API var.
ANCAK, ben başlamak için iyi bir fikrim var olan bir renk özelliğini olurdu benimle çalışıyor güzel tasarımcı ...
O anki hava şartlarına bağlı olarak bir arka plan-renk tanımlamak için olur sıcaklık. Sıcaklık -20 gibi soğuk ise Yani
, arka plan rengi mavi/mor/herhangi bir renk soğuk olmalıdır; ve sıcak olduğu zaman, 25 gibi, turuncu/kırmızı gibi sıcak bir arka plan rengine sahip olmalıdır.
Bir dizi "sıcaklık adımı" ile kolayca çalışabileceğimi düşünüyorum, ancak sıcaklığı bağlı olarak rengi tanımlayabilecek bir işlevle çalışmayı tercih ederim. Garip olduğunu biliyorum, sıcaklık rengine göre bir renk tanımlamak için bir algoritma olup olmadığını bilmiyorum ... Bu makale faydalı http://en.wikipedia.org/wiki/Color_temperature yardımcı olmakla birlikte oldukça karmaşıktır, birisi herhangi bir fikri olduğunda bile, bir başlangıç için çok Ilgilenen !
Ben Konuyu gördüm: Display temperature as a color with C#?Ama C# kullanarak değilim ve JavaScript bir çözümü var eğer öyleyse, mükemmel olurdu istemiyorum. Bir sunucu tarafı ihtiyacı varsa sonunda PHP veya NodeJS ile çalışabilirim.
DÜZENLEME - Cevap:
Son olarak, çünkü grafik ihtiyaçları, gerçek renkler degrade diziyi kullanmak seçenek yoktu. Ama yine de sıcaklığa bağlı olarak en yakın adımların renklerini karıştırmam gerekiyordu! Bunu yapmak için küçük bir JS kitaplığı yazdım, yakında GitHub'da bulabileceksin, bağlantıyı buraya göndereceğim.
Burada bulabilirsiniz:
The presentation website of the project
neden sadece bazı koşullu mantığa göre uygun css sınıfını katmayan? –
tanımlanmış bir arka plan rengini görüntülemesi gereken .temperature-eksi-20 gibi bir sınıf eklemek mi istiyorsunuz? Bunun bir çalışma şekli olduğunu biliyorum, ancak tüm bu sınıfları CSS'de önceden tanımlamalıyım ve eğer mümkün ise, bunu “adım-temelli” bir şekilde yönetmemeyi tercih ederim! –
tam olarak değil, yalnızca temsil edilebilecek genel değerler aralığı elde edin. –