JavaScript ile bir resmi dikey ve yatay olarak nasıl ortalarsınız?
İnternette bir resmi ortalamak için birçok kod bulunuyor, maalesef kimi çalışıyor, kimi istenildiği gibi çalışmıyor. Aşağıdaki kodlar önceki yazılarımda olduğu gibi denenmiş ve %100 çalışan kodlardır. Bu arad, kodları hemen kopyalayıp yapıştırmak yerine önce mantığını anlamaya çalışın, böylece kendinizi daha iyi geliştirebilirsiniz.
Bu yazımızda JavaScript betik dili kullanarak bir resmi pencere boyutları değişse dahi hem yatayda hem de dikeyde ortalıyoruz.
Bu yazımızda JavaScript betik dili kullanarak bir resmi pencere boyutları değişse dahi hem yatayda hem de dikeyde ortalıyoruz.
JavaScript'de aşağıdaki fonksiyon ile tarayıcının pencere boyutlarını pencereBoyutunuAl() fonksiyonu ile alıyoruz. Bu fonksiyon geriye yükseklik ve genişlik olarak iki değer döndürüyor.
function pencereBoyutunuAl(){
var d= document, root= d.documentElement, body= d.body;
var gen= window.innerWidth || root.clientWidth || body.clientWidth,
yuk= window.innerHeight || root.clientHeight || body.clientHeight ;
return [gen,yuk]
}
Resmimizi ekranda ortalamak için ortala() isimli bir fonksiyon yazdık. ortala() fonksiyonu içerisinde yukarıdaki pencereBoyutunuAl() fonksiyonunu çağırarak mevcut ekranın genişlik ve yüksekliğini buluyoruz. Ayrıca resmimizin de genişlik ve yükseklik değerini alıyoruz. Sonra resmimizi dikey olarak ekranda ortalamak için (EkranYükseklik-ResimYukseklik)/2 formülünü kullanıyoruz. Ayrıca resmimizin yatay olarak ortalamak için (EkranGenişlik-ResimGenislik)/2 formülünü kullanıyoruz.
CSS'te left özelliği soldan piksel olarak mesafeyi, top özelliği ise üst kısımdan piksel olarak mesafeyi atamak için kullandığımız değişkenlerdir.
CSS'te left özelliği soldan piksel olarak mesafeyi, top özelliği ise üst kısımdan piksel olarak mesafeyi atamak için kullandığımız değişkenlerdir.
Aşağıdaki alert satırları çalışmıyor, bu satırlarda ekrana mesaj şeklinde bilgileri yazdırarak, kodların doğru çalışıp çalışmadığını kontrol ettim.
function ortala(){
var boyut = new Array();
boyut= pencereBoyutunuAl();
ekranGenislik = boyut[0];
ekranYukseklik= boyut[1];
//alert(ekranGenislik+" "+ekranYukseklik);
var benimlogo = document.getElementById('cologo');
var genislik = benimlogo.width;
var yukseklik = benimlogo.height;
//alert(genislik+" "+yukseklik);
sol = (ekranGenislik-genislik)/2;
ust =( ekranYukseklik/2-yukseklik/2)/2;
//alert(sol+" "+ust);
benimlogo.style.position="absolute";
benimlogo.style.left=sol+"px";
benimlogo.style.top=ust+"px";
}
window.onload fonksiyonu sayfa yüklenirken çalışıyor, bu fonksiyonun içine hangi komutları yazarsak sayfa yüklenirken o komutları işletir. Bu durumda ortala() fonksiyonumuzu çağırıyoruz.
window.onload fonksiyonu sayfa yüklenirken çalışıyor, bu fonksiyonun içine hangi komutları yazarsak sayfa yüklenirken o komutları işletir. Bu durumda ortala() fonksiyonumuzu çağırıyoruz.
window.onload = function() {
ortala();
};
windows.onresize ise kullanıcı tarayıcı penceresinin boyutlarını değiştirdiğinde yani küçültüp büyüttüğünde çalışır. Bu durumda yine ortala() fonksiyonumuzu çağırıyoruz.
window.onresize = function(event) {
ortala();
};


Kodların tamamı aşağıdaki gibidir, Notepad++ veya Dreamviewer gibi bir editöre kopyalayıp yapıştırarak deneyebilirsiniz. logo.jpg isimli bir resmi de klasörde aynı yere atarsanız resmin nasıl ortalandığını görebilirsiniz.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="tr-TR" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JavaScript </title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<img id="cologo" src="logo.jpg" width="400" height="210">
</body>
</html>
<script>
function pencereBoyutunuAl(){
var d= document, root= d.documentElement, body= d.body;
var gen= window.innerWidth || root.clientWidth || body.clientWidth,
yuk= window.innerHeight || root.clientHeight || body.clientHeight ;
return [gen,yuk]
}
function ortala(){
var boyut = new Array();
boyut= pencereBoyutunuAl();
ekranGenislik = boyut[0];
ekranYukseklik= boyut[1];
//alert(ekranGenislik+" "+ekranYukseklik);
var benimlogo = document.getElementById('cologo');
var genislik = benimlogo.width;
var yukseklik = benimlogo.height;
//alert(genislik+" "+yukseklik);
sol = (ekranGenislik-genislik)/2;
ust =( ekranYukseklik/2-yukseklik/2)/2;
//alert(sol+" "+ust);
benimlogo.style.position="absolute";
benimlogo.style.left=sol+"px";
benimlogo.style.top=ust+"px";
//ekranYukseklik = window.screen.availHeight;
//ekranGenislik = window.screen.availWidth;
}
window.onload = function() {
ortala();
};
window.onresize = function(event) {
ortala();
};
</script>
Aşağıdaki linke tıklayarak çalışmasını DEMO halinde görebilirsiniz.
ONLINE DEMO
JavaScript ile CSS kodlarını Yönlendirme
JavaScript ile Zemin Rengini Değiştirme
JavaScript ile Metin Kutusu değerini artırmak ve azaltmak
JavaScript ile Form Kontrolü
JavaScript ile Döngüler
JavaScript ile Fonksiyon İşlemleri
JavaScript ile Harf ve Rakam Kontrolü
JavaScript ile Basit Hesaplatma İşlemleri
JavaScript ile Ortalama ve Harf Notu Hesaplama
JavaScript ile Twitter benzeri karakter kontrolü
JavaScript ile Yuvarlatma Hatası nasıl düzeltilir?
JavaScript Luhn Algoritması ile Kredi Kartı Doğrulama
Aşağıdaki linke tıklayarak çalışmasını DEMO halinde görebilirsiniz.
ONLINE DEMO
JavaScript ile CSS kodlarını Yönlendirme
JavaScript ile Zemin Rengini Değiştirme
JavaScript ile Metin Kutusu değerini artırmak ve azaltmak
JavaScript ile Form Kontrolü
JavaScript ile Döngüler
JavaScript ile Fonksiyon İşlemleri
JavaScript ile Harf ve Rakam Kontrolü
JavaScript ile Basit Hesaplatma İşlemleri
JavaScript ile Ortalama ve Harf Notu Hesaplama
JavaScript ile Twitter benzeri karakter kontrolü
JavaScript ile Yuvarlatma Hatası nasıl düzeltilir?
JavaScript Luhn Algoritması ile Kredi Kartı Doğrulama
Oğuzhan TAŞ
Ocak, 2015

Dil Değiştir(Change Language)
Kategoriler
- Csharp(58)
- Csharp Formlar(23)
- Web Tasarım(9)
- CSS(27)
- JavaScript(37)
- PHP(50)
- Laravel(3)
- ASP.net(38)
- Excel(15)
- Güvenlik(4)
- E-Ticaret(3)
- Kariyer(5)
- SQL Server(29)
- MySQL(16)
- Linux(17)
- MacOSX(8)
- Ayarlar(12)
- Bilgisayar Ağları(3)
- Symfony(1)
- Teknoloji(7)
- VBS(1)
- Arduino(6)
- RaspberryPi(1)
- Algoritmalar(15)
- HTML(3)
- Python(2)
- Bash Script(7)
- C Programlama(10)
- Flutter - Dart(11)
- Bootstrap(1)
En çok Okunan 18 Makale
- :: Excelde EĞER Fonksiyonu Kullanımı...
- :: Csharp ile Access Veritabanı Bağlan...
- :: SQL nedir, Temel SQL Komutları nele...
- :: Hangi Linux Dağıtımı?
- :: OSX İşletim Sistemine PHP, MySQL, A...
- :: Excel Hesap tablosunda EĞERSAY Fonk...
- :: PHP dilini kullanarak MySQLi tekniğ...
- :: Excel Hesap tablosunda ÇOKETOPLA Fo...
- :: Excel Hesap tablosunda ETOPLA Fonks...
- :: Excel Hesap tablosunda ÇOKEĞERSAY F...
- :: Hangi Programlama Dilini Öğrenmeliy...
- :: Mac Bilgisayarınıza Windows 7 Yükle...
- :: PHP ile Basit Dosya Yükleme
- :: Excel hücrelerinde yıldız koyarak b...
- :: C# Programlama Dili ile İlgili Örne...
- :: PHP Dili kullanarak MySQLi Tekniği ...
- :: PhpMyAdmin Şifresi Nasıl Değiştiril...
- :: Hangisi acaba, PHP mi ASP.NET mi ?