bunun için turnjs
kullanabilirsin:
http://www.turnjs.com/
çok kolay bir kullanımı var, tam olarakta ihtiyacını karşılayacaktır.
şu şekilde:
.input {
position: relative;
label {
font-family: 'Poppins', sans-serif;
font-size: 17px;
margin-bottom: 14px;
}
input {
border: 1px solid $gray;
transition: .3s all;
&:focus {
border: 1px solid $warning;
& + span {
// span kodları buraya
}
}
}
}
+
sass'lık değil css'de olan bir seçici bu arada tabi ki haberiniz olsun :)
ne yapacaksın tam olarak? state'in güncel değeriyle başka bir değer hesaplayacaksan useMemo()
kullanabilirsin.
const calculatedValue = useMemo(() => {
return stateDegiskeni * 2
}, [stateDegiskeni])
gibi.
Gulp sadece css'i watch etmek için kullanılmıyor o yüzden :) js, html, compress taraflarında da oldukça yaygın pluginleri var.
o yüzden bir düzen organize ederek kodlama yapmak için ideal, ama popüler değil.
yatay olarak ortalamak istersen, kapsayıcının belli bir genişliği olmalı. Diyelim ki var, o zaman şu değerleri verirsen
button {
left: 50%;
transform: translateX(-50%);
}
butonun içindeki genişliği bilmene gerek kalmaz dinamik olarak yatayda ortalayabilirsin. Dikeyde de ortalamak istersen
button {
top: 50%;
transform: translateY(-50%);
}
her iki eksen için istersen
button {
top: 50%;
left: 50%;
transform: translate(-50%, -50%)
}
örnek bir kullanım
<div>
<button>test</button>
</div>
<style>
div {
width: 100%;
height: 200px;
border: 1px solid #ccc;
position: relative;
}
button {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%)
}
</style>
burada önemli olan dediğim gibi buton position uygulanınca kapsayıcıda belli bir yükseklik ve genişlik yoksa sorun yaratır min. bir değer vermen gerekir ki ona göre ortalama işlemi yapabil.
aslında bu normal bir davranış, overflow: hidden ya da auto dendiğinde otomatik olarak gizleniyor içindeki elemanlar.
bu gibi durumlar için tooltip bunun içinde değilde bağımsız olarak body'nin içinde yer alan bir alanda olmalı.
fare ile ilgili elemana gelince farenin konumu (top, left) alınıp body'deki tooltip'e anlık olarak atanmalı.
ayrıca yine fare üstündeyken global bir değişkene tooltip'te görünecek değerler belirlenmeli, fare odağını çekince bu işlemleri sıfırlamalısın.
kodlar temiz olsa bir örnek verecektim ama belki bu teorik detay bir şeyleri farklı düşünmeni sağlayabilir.
npm run build dedikten sonra public klasörüne html, css ve js dosyaları çıkıyor. vercel'e ya da başka bir yere deploy ederken bu public klasörünün içindekileri deploy edeceksin, bunları herhangi bir hostingde de rahatça çalıştırabilirsin.
fonksiyon'da default olarak $wherearray = ""
yerine $wherearray = []
yaparsan problem çözülecektir muhtemelen. Çünkü execute()
metodu array ya da null bekliyormuş varsayılan olarak sen string geçiyorsun.
ben şu şekilde kullanıyorum. genel kullandığmı componentler için
./src/components
./src/components/shared
servisler, store ve utils için
./src/services
./src/stores
./src/utils
sayfalar içinde genel view
klasörünü kullanıyorum. Ama her sayfa için bir index.js
oluşturuyorum çağırması daha kolay olsun diye. Ayrıca sayfaya özel componentler varsa yine ilgili klasörde belirtiyorum.
./views
./views/home
./views/home/index.js
./views/home/components
bu tamamen kişisel tercih, ben bu şekilde kullanıyorum ama seninki de fena değil, farklı bir çok alternatifini de görebilirsin. Mümkün olduğunca requestleri tek bir yerden yönetirsin. Requestlerin tamamını service klasöründe mantıklı şekillerde export edip kullanırsın. Ayrıca store yönetimi için redux toolkit çok daha kolay bir düzen kurmanı sağlar.
id'ler yanlış yerde, ek olarak zaten seçtiğin elemanın text'ini almamışsın ama alsan bile NaN verecek aşağıdaki kodu çalıştırırsan anlarsın durumu
console.log( parseInt('ornek sayi : 34') )
yapacağın şey id'leri sayılara vermek. Yani;
<td>ornek sayi : <span id="hisse1">34</span></td>
<td>ornek sayi : <span id="hisse2">25</span></td>
<script>
for(i = 1; i <= 9; i++){
var bolme = 920 / parseInt(document.getElementedById("hisse" + i).innerText) //????
// diğer işlemler..
}
</script>