Bence böyle yapman gayet mantıklı olmuş, fakat farklı bir yöntem öneren olacak mı bakalım, ben de merak ettim.
.swiper-slide
lara 300px vermek yerine .swiper-container
'ın genişliğine 960px
(3 adet slide'ın genişliği + 2 adet boşluk genişliği) ver. Daha sonra gördüğüm kadarıyla .swiper-slide
lara border vermişsin, ayrıca bir de box-sizing: border-box
ver ki genişlikleri borderdan dolayı etkilenmesin.
Daha önce kullanmadım fakat Mapbox'a bir bakmanı tavsiye ederim. Altyapı olarak OSM(Open Street Map)'ı kullanıyor sanırım. Belli bir kullanıcı limitine kadar da ücretsiz olduğunu söylüyor. Bir çok özelleştirme seçeneği ve plugin desteği de sunuyor. Dökümantasyonu da gayet geniş.
Aradığın search işlemini de bu link den yararlanarak yapabilirsin. Örneğin linkteki API'a search string
'in ile istekte bulunursun, bu istek sonucu gelen json datasından istediğin koordinatları oluşturduğun haritanın koordinatlarına uygularsın. Yada Mapbox'un kendi arama kutusu özelliğini aktif edersin (o da şu linkten) o kadar uğraşmana gerek kalmaz.
usort($dataArray, function($current, $next){
return $current->izlenmeler < $next->izlenmeler;
});
Bu işlemden sonra orijinal dataArray
'in değişime uğrayacaktır. Eğer uğramasını istemiyorsan öncelikle bir kopyasını al, örneğin sortedData
diye bir değişkene at. Daha sonra da bu işlemleri sortedData
üzerinde uygula.
Not: Yukarıdaki kod büyükten küçüğe sıralayacaktır. Eğer küçükten büyüğe istersen aradaki <
işaretini >
yapmalısın.
if'e condition verirken yanlış yazmışsın, aşağıdaki kodu dene.
$("#checkbox2, #checkbox3").click(function () {
let isBox2Checked = $('#checkbox2 input').is(':checked');
let isBox3Checked = $('#checkbox3 input').is(':checked');
if (isBox2Checked && isBox3Checked) {
$('#textbox2').attr('value', 'Female');
} else {
$('#textbox2').attr('value', '');
}
});
Yorum olarak belirttiklerimin dışındaki değerleri, ilgili classın kodlarına ekstra olarak ekle. Belirtmiş olduklarımda da değişiklikleri uygula. Ve sakın !important
uygulama, tasarımın responsive olduğu için mobile boyutlarına aldığında bozulmalar meydana gelebilir.
Not 1: Header'ı da sabit bırakmak istersin diye düşündüm, istemiyorsan header ile ilgili kısmı ekleme.
Not 2: Bu kodları eklemeden önce oluşmayan bir problem, bu kodları ekledikten sonra herhangi bir yerde görülebilir, etkilerini detaylı incelemek lazım o kısmını sana bırakıyorum.
body {
display: flex; /* display: table; yerine flex uygula */
}
#left-panel {
flex: none;
position: sticky;
top: 0;
}
#header {
position: sticky;
top: 0;
z-index: 99;
}
body.open .right-panel {
margin-left: 0; /* margin-left: -210px; yerine 0 uygula ya da bu satırı sil */
}
body.open .left-panel {
max-width: inherit; /* max-width: 70px; yerine inherit uygula ya da bu satırı sil, menü animasyonuna engel oluyor. */
}
section
etiketi HTML5'de 'Semantic Elements' başlığı altındaki etiketlerden bir tanesidir. Semantic elementler, kodun okunurluğunu kolaylaştırır ayrıca SEO açısından da önemlidir. Bu link den 'Semantic Elements' başlığı altındaki section
da dahil olmak üzere diğer etiketler hakkında daha fazla bilgi edinebilirsin.
Yapılmasının bir çok yolunun olması bir yana, array_reduce
metodu ile nasıl yapılır? Bildiğim kadarıyla açıklamaya çalışayım.
array_reduce
metodu üç parametre alıyor;
- İlk parametre, işlem yapmak üzere gezinmek istediğimiz array.
- İkinci parametre, yapacağımız işlemleri gerçekleştirecek bir callback fonksiyon. (bunun da iki parametresi var)
- İlki, PHP'nin kendi sitesinde $carry olarak adlandırdığı, genelde "accumulator" olarak da bilinen, her bir iterasyonda modifiye edilen/güncellenen, yapılan işlemler sonucu döndürülecek olan değişken.
- İkincisi ise PHP'nin kendi sitesinde $item olarak adlandırdığı, gezinmek üzere verdiğimiz array deki her bir değeri sırayla döngü boyunca tutacak olan değişken.
- Üçüncü parametre ise isteğe bağlı olan, callback fonksiyonumuza verdiğimiz "accumulator"ın başlangıç değeri.
Aşağıdaki kodun kabaca ne yaptığını anlatayım, array_reduce
metodu ile $data
mız içerisinde dönüyoruz. Her döngüde $acc
içerisinde $date
isimli bir keyin(değişkenin) olup olmadığını kontrol ediyoruz, yoksa bu isimde bir key
oluşturup value
olarak da boş bir array veriyoruz. Daha sonra array_push
metodu yardımıyla $obj
mizi az önce oluşturduğumuz ya da daha önce oluşturulmuş olan $acc->$date
arrayine pushluyoruz. Son olarak elimizdeki $acc
değerini döngünün sonraki iterasyonunda kullanılmak(modifiye etmek/güncellemek) üzere döndürüyoruz.
function categorizeData($acc, $obj)
{
$date = $obj->date;
if(!isset($acc->$date)){
$acc->$date = array();
}
array_push($acc->$date, $obj);
return $acc;
}
// $data = soruda belirtmiş olduğun array
$categorizedData = array_reduce($data, "categorizeData", (object) array());
print_r($categorizedData);
Sonuç:
stdClass Object
(
[20200629] => Array
(
[0] => stdClass Object
(
[count] => 25
[date] => 20200629
[paymentType] => cod
)
[1] => stdClass Object
(
[count] => 64
[date] => 20200629
[paymentType] => credit card
)
)
[20200630] => Array
(
[0] => stdClass Object
(
[count] => 33
[date] => 20200630
[paymentType] => cod
)
[1] => stdClass Object
(
[count] => 110
[date] => 20200630
[paymentType] => credit card
)
)
)
$categorizedData
değişkeni üzerinde foreach yardımıyla istediğin sonuca ulaşabilirsin.
foreach($categorizedData as $date => $data) {
echo "<b>$date</b><br>";
foreach($data as $val){
echo "$val->paymentType : $val->count<br>";
}
echo "<br>";
}
.text-muted {
display: none;
}
.card:hover .text-muted {
display: block;
}
Yukarıdaki gibi yaparsan animasyon göremezsin, animasyonlu bir geçiş istiyorsan aşağıdakini dene
.text-muted {
opacity: 0;
visibility: hidden;
transition: .5s opacity, .5s visibility;
}
.card:hover .text-muted {
opacity: 1;
visibility: visible;
}
Kullanmıyorum ancak kâğıt üstündeki özellikleri ve fiyatına bakılınca rakipsiz olarak gördüğüm Monster Aryond A32 V1.1'e bir göz atmanızı tavsiye ederim. Dediğim gibi kullanmıyorum fakat arada bu tarz teknolojik aletleri araştırmayı seven birisiyim. "Alacak olsam bunu alırdım" listemdeki aletlerden bir tanesi. Malzeme kalitesi, garantisi, teknik servisi konusunda bir bilgim yok. Bu tarz bilgileri de öğrenip göz önüne alarak bir tercih yapabilirsin. Şimdiden iyi günlerde kullanman dileğiyle.