‘Javascript’ Kategorisi Arşivi:
jQuery resize Kullanımı
Çalıştığım bir projede 100% lük bir alanın 980px’ e geldiğinde üst kısımdaki bazı öğelerin gizlenmesi gerekiyordu. Yani site normal şartlarda 100% lük bir görünümde olmalı fakat tarayıcı penceresi veya çözünürlük 980 veya 980′ den düşük olursa üst kısımdaki bazı alanlar yok olmalıydı. Nasıl olur diye düşünürken jQuery’ nin resize fonksiyonunun bu iş için biçilmiş kaftan olduğunu öğrendim. Çok basit bir kullanım ile sorunu çözdüm. Ve bunu sizlerle paylaşmak istedim.
Adım – HTML Kodlarını Eklemek
<div id="Main"> <div id="Header"> <div>Logo</div> <div> <ul> <li>Top Menu 1</li> <li>Top Menu 2</li> <li>Top Menu 3</li> <li>Top Menu 4</li> <li>Top Menu 5</li> <li>Top Menu 6</li> </ul> </div> <div id="UserPanel"> <div id="UserAvatar"></div> <div id="UserMenu"> <p>Menu <ul> <li>Menu1</li> <li>Menu2</li> <li>Menu3</li> </ul> </p> </div> </div> </div> <div id="Content"> <div id="SolKolon"> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vestibulum, massa eu porttitor hendrerit, lectus magna fringilla nulla, in volutpat enim est a augue. Donec malesuada consequat tempus. Donec gravida imperdiet molestie. Donec blandit luctus lectus, id consectetur erat tincidunt vel. Proin sagittis eleifend sapien eget suscipit. Nunc sit amet dapibus nisi. Pellentesque at lorem venenatis ante iaculis aliquam sit amet eget nibh. Phasellus velit nisl, consectetur volutpat convallis ac, blandit quis nunc. Nullam dignissim, mi sit amet eleifend posuere, ipsum massa faucibus libero, a pulvinar nisl massa ut urna. Aliquam ut massa at nunc ornare placerat. Nullam eleifend diam non lectus accumsan iaculis. Fusce mattis, sem ac tincidunt suscipit, mauris massa semper metus, non viverra neque libero ac est. Proin ac urna sed sem tincidunt fringilla non sit amet justo. Cras mollis purus eu nibh pretium non rutrum ligula consequat. Cras massa justo, volutpat vel venenatis at, scelerisque a ante. Ut sollicitudin varius libero eu viverra. Vivamus nec quam ac neque iaculis eleifend sit amet in ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam erat volutpat. Vestibulum tortor lacus, aliquet in ultricies consequat, aliquam eu nibh. Nulla faucibus odio vel risus molestie eu placerat enim placerat. Maecenas at ligula at neque viverra aliquet venenatis vitae nunc. Curabitur ut nisl a elit varius ullamcorper. Praesent est sem, sollicitudin nec fermentum et, scelerisque non odio. Mauris quis nisl eleifend metus ullamcorper laoreet nec sit amet urna. Etiam ut nunc erat. Nunc sit amet magna diam, sit amet interdum ante. Nulla convallis volutpat dignissim. Praesent auctor leo id ipsum commodo ut scelerisque erat tristique. Etiam nibh dolor, volutpat sed sollicitudin sit amet, elementum ac nisl. Maecenas lorem enim, commodo id accumsan vitae, ultricies at justo. Sed euismod venenatis quam, at eleifend dui rhoncus quis. Sed gravida dictum mauris vitae posuere. Vestibulum pretium sapien in magna ultricies tincidunt ut vel mi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam eleifend mi sit amet nisl sodales interdum. Ut varius tincidunt sem, vitae blandit nisl euismod sed. Quisque lobortis venenatis est sed porta. Praesent a tortor ac leo venenatis pharetra sed ut massa. Ut sit amet malesuada sapien. Pellentesque scelerisque pulvinar accumsan. Pellentesque mollis, massa vitae adipiscing euismod, nulla enim egestas sem, vel adipiscing lectus eros eget nunc. Etiam sapien nibh, pretium non viverra eget, porttitor ac sapien. Suspendisse pretium lacinia lobortis. Quisque at imperdiet nisi. Phasellus arcu tellus, auctor id pretium sit amet, bibendum vel tellus. Aliquam mi libero, sollicitudin nec malesuada eu, mollis eu libero. Donec non faucibus massa. Maecenas imperdiet egestas suscipit. Donec id magna vel erat malesuada malesuada. Aenean consectetur porta odio non tincidunt. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque auctor, erat quis feugiat scelerisque, dolor orci rhoncus metus, et dapibus sapien ante sit amet ligula. In eleifend ante vitae magna bibendum mollis nec in eros. Nulla venenatis neque vitae augue aliquam sed sagittis massa eleifend. Quisque rhoncus lacinia turpis, sollicitudin venenatis lacus feugiat sed. Aenean aliquam congue turpis, sed convallis mauris lobortis at. Aliquam erat volutpat. Vestibulum ac massa eu nisl adipiscing dictum sed a odio. Proin ante lorem, vulputate sed vestibulum ut, elementum id quam. Donec vitae iaculis nibh. Nulla facilisi. In et turpis bibendum nisi commodo pharetra consequat in tortor. Ut dapibus rutrum mauris a varius. Cras ullamcorper sollicitudin neque, quis facilisis mauris eleifend sed. Nullam imperdiet, augue nec euismod fermentum, diam risus vehicula leo, non porttitor tellus ligula convallis enim. Sed id mi est. Duis tincidunt dui nec mi varius et tempus eros elementum. Quisque neque nulla, dictum id pellentesque a, facilisis id metus. Quisque pretium vulputate interdum. Vestibulum fermentum, velit et dictum elementum, libero massa placerat est, ac varius lectus massa quis nisi. Cras elementum dictum posuere. Nulla tempus pharetra turpis, eu consequat odio venenatis quis. Nulla facilisi. Maecenas tempor, magna pellentesque iaculis scelerisque, diam justo volutpat urna, id ultrices velit sapien id lacus. Sed vehicula volutpat tincidunt. Praesent posuere luctus placerat. Nullam placerat condimentum massa, in convallis est pellentesque sed. Mauris imperdiet pharetra justo sed hendrerit. Phasellus at metus nisl, vel sollicitudin diam. Ut elementum velit id odio laoreet tempor. Suspendisse potenti. Pellentesque massa lacus, facilisis vitae ullamcorper a, facilisis ac lectus. </p> </div> <div id="SagKolon"> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vestibulum, massa eu porttitor hendrerit, lectus magna fringilla nulla, in volutpat enim est a augue. Donec malesuada consequat tempus. Donec gravida imperdiet molestie. Donec blandit luctus lectus, id consectetur erat tincidunt vel. Proin sagittis eleifend sapien eget suscipit. Nunc sit amet dapibus nisi. Pellentesque at lorem venenatis ante iaculis aliquam sit amet eget nibh. Phasellus velit nisl, consectetur volutpat convallis ac, blandit quis nunc. Nullam dignissim, mi sit amet eleifend posuere, ipsum massa faucibus libero, a pulvinar nisl massa ut urna. Aliquam ut massa at nunc ornare placerat. Nullam eleifend diam non lectus accumsan iaculis. Fusce mattis, sem ac tincidunt suscipit, mauris massa semper metus, non viverra neque libero ac est. Proin ac urna sed sem tincidunt fringilla non sit amet justo. Cras mollis purus eu nibh pretium non rutrum ligula consequat. Cras massa justo, volutpat vel venenatis at, scelerisque a ante. Ut sollicitudin varius libero eu viverra. Vivamus nec quam ac neque iaculis eleifend sit amet in ante. </p> </div> </div> </div>
Adım 2 – Css Kodlarını Eklemek
body { background-color:#999999; color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px;}
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
* html .clearfix { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */
#Main { width:100%; height:auto; position:relative; min-width:730px;}
* html #Main{
width: expression(document.body.clientWidth < 1032 ? "730px" : "100%" );
}
#Header { height:40px; background-color:#990000; position:relative;}
.Logo { float:left; display:inline; height:30px; background-color:#FFFFFF; font-size:18px; line-height:30px; padding:0px 10px; margin-top:5px; margin-left:20px;}
.TopMenu { float:left; display:inline; height:30px; background-color:#FF3333; margin-top:5px; padding:0px 10px; margin-left:20px;}
.TopMenu ul { margin:0; padding:0; list-style-type:circle; padding:5px 10px;}
.TopMenu ul li { float:left; display:inline; margin-right:10px;}
#UserPanel { float:right; display:inline; height:27px; background-color:#999999; padding:0px 10px; margin-top:5px; padding-top:3px; margin-right:10px;}
#UserAvatar { float:left; display:inline; width:20px; border:2px solid #333333; background-color:#CC6600; height:20px;}
#UserMenu { float:left; display:inline; padding:0px 10px;}
#UserMenu p { margin:0; padding:0; font-weight:bold;}
#UserMenu ul { margin:0; padding:0; list-style-type:none; background-color:#99CC00; padding:10px;}
#UserMenu ul li { margin-bottom:5px;}
#Content { background-color:#FFFFFF;}
#SolKolon { float:left; display:inline; width:78%; background-color:#CCCCCC; padding:1%;}
#SagKolon { float:right; direction:inline; width:18%; background-color:#999999; padding:1%;}
* Reset kullanmadığım ve gruplama yapmadığım için kodlar dağınık ve çok gelebilir kusura bakmayın acilen yazdım
Adım 3 – jQuery Kodlarını Eklemek
İlk önce penceremizin genişliğini öğrenelim;
$(function() {
var windowW = $(window).width();
alert (windowW);
});
Sonra da penceremizi küçültüp tam olarak hangi boyutta sağ üst kısmın aşağıya indiğini görelim
Gördüğümüz gibi 730px ve altında sağ üst alanımız aşağıya kaydı. Biz istiyoruz ki pencere 730px ve altında olsa bile o alan gözükmesin ve üst üste binme olmasın. Çünkü pencereyi daha da küçülttüğümüzde o alan content alanı üstüne binmeye başlayacak. Bunun için jQuery’ nin resize(); fonksiyonunu kullanacağız.
$(function() {
$(window).resize(function() {
if ($(window).width() < 730) {
$('#UserPanel').css('display', 'none');
} else {
$('#UserPanel').css('display', 'block');
}
});
});
Bu işlemlerden sonra pencerenizi küçültün ve göreceksiniz ki 730px den küçük olduğunda üst kısımdaki alan kaybolacak.
IE6 PNG Sorununa Daha Basit Bir Çözüm
Her gün yeni bir şeyler öğreniyorum. Bugün de onlardan birisi. Garanti Bankası’ nın hizmetlerinden birisi için bir Landing Page çalışması yapılmıştı. Arayüz kodlamasını ben yaptım. Tasarımın öngördüğü kadar imaj kullanmaktan kaçınmak istedim ama olmadı. Arayüzde kullanabileceğim tek imaj türü PNG idi. Hal böyle olunca daha önce kullandığım bazı PNG betiklerini denedim. Diğer betikler ile çakışma yaşanması durumunda arayışı geçtim ve DD_belatedPNG isimli bir betik buldum.
Öncelikle buradan sıkıştırılmamış ve buradan da sıkıştırılmış hallerini indirin. Daha sonra ise kullanmak istediğiniz html dosyasına şu şekilde ekleyin
<code><!--[if IE 6]>
<script src="DD_belatedPNG.js"></script>
<script>
/* Örnek */
DD_belatedPNG.fix('.DivClassIsmi');
</script>
<![endif]--> </code>
DD_belatedPNG.js şeklinde kaydedilmiş olduğu için bu isimle okutuldu sayfaya. Siz istediğiniz şekilde kaydedip okutabilirsiniz. DD_belatedPNG.fix(‘.DivClassIsmi’); bölümünde ise kullanmak istediğiniz dive ait sınıfları, idleri atayabilirsiniz. Buraya yazacağınız div sınıfları veya idleri CSS dosyanızda arkaplan imajı almak zorundalar. Eğer ki img etiketi ile bir imaj eklemiş iseniz, DD_belatedPNG.fix(‘img’); sadece img etiketini eklemeniz yeterli olacaktır.
Daha detaylı bilgi için lütfen -> http://www.dillerdesign.com/experiment/DD_belatedPNG/ adresini ziyaret ediniz.


