Giriş
Responsive kodlama yaparken hangi kırılma noktalarında grid yapısının nasıl davrandığını öğrenmek için bazı eklentilerden ya da tarayıcıların entegre geliştirici araçlarından yardım alıyoruz. Örneğin Firefox'un Firebug CSS Panelinden, ya da v33 versiyonu ile gelen entegre geliştirici panelinde bulunan mobil önizleme (ctrl + shift + m)
penceresinde olduğu gibi. Zamanı daha efektif kullanabilmek ve tarayıcı içinde ekstra bir panelle uğraşmamak adına, pencere içinde sürekli görününür bir yerden ekran boyutlarını alabilmek için kendi işlerimde kullandığım kod bloğunu paylaşıyorum.
Önizleme
Fonksiyonu oluşturma
Öncelikle, window resize ve load fonksiyonlarına bağlayacağımız fonksiyonu oluşturalım
var windowSizePrint = function() { }
Window
boyutlarını değişkenlere aktaralım
var windowWidth = $(window).width(); var windowHeight = $(window).height();
Window boyutlarını tutacak div'in eklenip eklenmediğini kontrol ederek bir kez DOM'a yerleştirelim
if (!$("#window-size-info").length) { $('body').append('<div id="window-size-info"><div><span class="w"></span> X <span class="h"></span></div><style type="text/css">#window-size-info{z-index:9999999;position:fixed;right:0px;bottom:30px;padding:3px 8px;font-family:"Open Sans","Lato",Tahoma;font-size:15px;color:#fff;background-color:#000;box-shadow:0 0 0 2px#fff;}</style></div>'); }
Boyutları span'lere yazdıralım
$('#window-size-info span.w').text(windowWidth); $('#window-size-info span.h').text(windowHeight);
windowSizePrint
Fonksiyonunu pencere her yeniden boyutlandığında ve ilk yüklendiğinde çalıştıralım
$(document).ready(windowSizePrint); $(window).load(windowSizePrint); $(window).resize(windowSizePrint);
Tarayıcı değişkenlerini tutan değişkeni tanımlayalım.
var nua = navigator.userAgent;
Tarayıcı değişkenlerinin tutulduğu string'i regex ile kontrol parçalayıp tek bir objede tutalım
var browser = browser || {}; browser = { nua : nua, html : $('html').attr('class'), webkit : /webkit/gi.test(nua), gecko : /gecko/gi.test(nua), mobile : /Mobile/gi.test(nua), windows : /Windows/gi.test(nua), mac : /Mac OS/gi.test(nua), chrome : /Chrome/gi.test(nua), firefox : /Firefox/gi.test(nua), apple : /Safari/gi.test(nua), ipod : /iPod/gi.test(nua), iphone : /iPhone/gi.test(nua), ipad : /iPad/gi.test(nua), android : /Android/gi.test(nua), androidVersion : /Android/gi.test(nua) ? nua.match(/Android ([0-9\.]+);/)[1] : "", ie : /MSIE/gi.test(nua), ie11 : /MSIE 11/gi.test(nua), ie10 : /MSIE 10/gi.test(nua), ie9 : /MSIE 9/gi.test(nua), ie8 : /MSIE 8/gi.test(nua), ie7 : /MSIE 7/gi.test(nua), ie6 : /MSIE 6/gi.test(nua), operaMini : /Opera Mini/gi.test(nua), ucBrowser : /UCBrowser/gi.test(nua), x64 : /WOW64/gi.test(nua), x86 : /WOW86/gi.test(nua), tablet : $(window).width() >= 768 && /Mobile/gi.test(nua), desktop : $(window).width() >= 768 && !/Mobile/gi.test(nua), phone : $(window).width() < 768 && /Mobile/gi.test(nua), };
Developer konsolunun tamamını tarayıcı değişkenlerinin kaplamaması için log'ları gruplayalım.
For döngüsü ile bütün değişkenleri browserVariables
'ta string olarak saklayalım
console.groupCollapsed("browser variables"); var browserVariables = ""; for (var prop in browser) { if (browser.hasOwnProperty(prop)) { console.log(prop + " : " + browser[prop]); browserVariables += prop + " : " + browser[prop] + "\n"; } } console.groupEnd();
Ve son olarak, div üzerine mouse ile geldiğimizde değişkenlerin gözükmesi için, tittle niteliğine browserVariables
string'ini yazdıralım
$(function() { $("#window-size-info > div").attr("title", browserVariables); });
Kod bloğunun Gist şeklinde tamamlanmış görüntüsü
Codepen'den canlı önizleme
Değişiklikleri görmek için tarayıcı boyutlandırın. Ya da mouse ile boyutların yazdırıldığı kutu üzerinde gezinin.
See the Pen Window Dimension Print by Ömer Aslanbakan (@Aslanbakan) on CodePen.
Ömer Aslanbakan tarafından tarihinde yayımlandı.