<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Muhammet Sevim &#187; sabit navigasyon</title>
	<atom:link href="http://www.muhammetsevim.com/yazi/tag/sabit-navigasyon/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.muhammetsevim.com</link>
	<description>Görsel iletişim tasarımı, Web standartları (CSS/XHTML) ve dünyada olup bitenler üzerine...</description>
	<lastBuildDate>Sat, 30 Jan 2010 08:22:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Konumunu sabitleştiren menü (CSS/JS)</title>
		<link>http://www.muhammetsevim.com/yazi/konumu-sabitlestirilmis-navigasyon-cssjs/</link>
		<comments>http://www.muhammetsevim.com/yazi/konumu-sabitlestirilmis-navigasyon-cssjs/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 11:58:18 +0000</pubDate>
		<dc:creator>Muhammet Sevim</dc:creator>
				<category><![CDATA[Tasarım]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[menü]]></category>
		<category><![CDATA[navigasyon]]></category>
		<category><![CDATA[sabit navigasyon]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.muhammetsevim.com/?p=749</guid>
		<description><![CDATA[Bu tasarımdaki ana menüye dikkat ederseniz, siz sayfayı aşağıya doğru ilerletince menünün de sayfayla beraber aşağıya doğru ilerlediğini göreceksiniz. Fakat ne vakit menü sayfanın en üstüne ulaşırsa, o vakit hareket etmeyi kesiyor ve olduğu yere, yani sayfanın en üstüne sabitleniyor. Deneyin ve görün. Siz sayfayı aşağıya doğru ilerletmeye devam etseniz de navigasyon hep sayfanın en [...]]]></description>
			<content:encoded><![CDATA[<p class="int">Bu tasarımdaki ana menüye dikkat ederseniz, siz sayfayı aşağıya doğru ilerletince menünün de sayfayla beraber aşağıya doğru ilerlediğini göreceksiniz. Fakat ne vakit menü sayfanın en üstüne ulaşırsa, o vakit hareket etmeyi kesiyor ve olduğu yere, yani sayfanın en üstüne sabitleniyor. Deneyin ve görün. Siz sayfayı aşağıya doğru ilerletmeye devam etseniz de navigasyon hep sayfanın en üstünde sabit olarak konumlandığından dolayı sayfanın neresinde olursanız olun menü hep gözünüzün önünde oluyor. Fena değil, değil mi?</p>
<p>Aslında bu sistemi K2 teması kullanıyor. Ben de kodu oradan çıkarıp ihtiyaçlarıma göre düzenledim. Gelin size nasıl yapıldığını anlatayım.</p>
<p><img src="http://www.muhammetsevim.com/wp-content/uploads/skitch/081007-navigasyon-20081007-135709.jpg" alt="081007-navigasyon" /></p>
<p><span id="more-749"></span></p>
<p>Çalışma şekli şu: Birkaç satırlık bir javascript kodu <a href="http://www.jquery.com">JQuery</a> yardımıyla içeriğinizi barındıran div (burada #container diye adlandıralım) sayfanın en üst noktasına ulaştığında body&#8217;ye &#8220;smartposition&#8221; sınıfını ekliyor. Eğer #container tekrar gözle görünür hale gelirse &#8220;smartposition&#8221; sınıfı body&#8217;den çıkarılıyor. Siz de CSS üzerinden menünüze &#8220;smartposition&#8221; sınıfı eklendiğinde &#8220;position: fixed&#8221; komutunu atıyorsunuz. Herşey bundan ibaret.</p>
<h4>1. JQuery&#8217;i indirin ve sayfanızdan çağırın</h4>
<p>JQuery&#8217;i <a href="http://docs.jquery.com/Downloading_jQuery">sitesi üzerinden indirin</a>, web sitenizin bulunduğu klasöre atın ve sayfanızdan çağırın. Bunun dışında az sonra oluşturacağımız &#8220;rollingdiv.js&#8221; dosyasını da şimdiden çağırın:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;scripts/jquery.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span><span style="color: #808080; font-style: italic;">&lt;!--mce:0--&gt;</span><span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;scripts/rollingdiv.js&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span><span style="color: #808080; font-style: italic;">&lt;!--mce:1--&gt;</span><span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></pre></div></div>

<h4>2. Rollingdiv.js</h4>
<p>Herşey burada bitiyor. Yukarıda çağırmış olduğumuz rollingdiv.js isimli dosyayı ilgili klasörde oluşturun ve aşağıdaki kodu belgeye yapıştırın:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> smartPosition<span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> jQuery.<span style="color: #660066;">browser</span>.<span style="color: #660066;">msie</span> <span style="color: #339933;">&amp;</span>amp;&amp;amp; parseInt<span style="color: #009900;">&#40;</span>jQuery.<span style="color: #660066;">browser</span>.<span style="color: #660066;">version</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>lt; <span style="color: #CC0000;">7</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">return</span>;
	<span style="color: #009900;">&#125;</span>
&nbsp;
	jQuery<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #000066;">scroll</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #006600; font-style: italic;">// Detect if content is being scroll offscreen.</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">documentElement</span>.<span style="color: #660066;">scrollTop</span> || document.<span style="color: #660066;">body</span>.<span style="color: #660066;">scrollTop</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>gt;= jQuery<span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">offset</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">top</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'smartposition'</span><span style="color: #009900;">&#41;</span>;
		<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
			jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'smartposition'</span><span style="color: #009900;">&#41;</span>;
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span>;</pre></div></div>

<p>(Not: Kod <a href="http://www.getk2.com">K2</a> temasından alınmıştır.)</p>
<h4>3. HTML belgesi</h4>
<p>Şimdi de HTML belgemize aşağıdaki kodu yapıştırıyoruz:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span><span style="color: #808080; font-style: italic;">&lt;!--mce:2--&gt;</span><span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></pre></div></div>

<p>Buradaki &#8220;#container&#8221; elementi yukarıya ulaştığında harekete geçilecek olan element oluyor. Bu adımla birlikte HTML ve JS bölümünü bitirmiş oluyoruz. Yani #container divimiz sayfanın tepesine ulaştığında sayfanın body&#8217;sine &#8220;smartposition&#8221; sınıfı eklenecek, son görüntü şu halde olacak;</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict html4strict" style="font-family:monospace;">&nbsp;</pre></div></div>

<h4>CSS belgesi</h4>
<p>Yapmamız gereken son şey CSS belgemizden &#8220;smartposition&#8221; sınıflı body&#8217;ye özel komutlar atamak. Bu adımda tamamen özgürsünüz; sayfanızın arkaplanının kırmızı olmasını da isteyebilirsiniz, navigasyonunuzun havada asılı kalmasını da. Bu örnekte isteğimiz ikinci şık olduğundan, CSS&#8217;imize aşağıdaki kodu eklememiz gerekiyor;</p>

<div class="wp_syntax"><div class="code"><pre class="css css" style="font-family:monospace;">body<span style="color: #6666ff;">.smartposition</span> <span style="color: #cc00cc;">#navigation</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">fixed</span>;
	<span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">10</span>;
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Bitti bile! &#8220;position:fixed;&#8221; özelliği #navigation isimli alanın (div) veya listenin (ul, ol) havada asılı kalmasını sağlıyor. Tabii sadece &#8220;smartposition&#8221; sınıfı body&#8217;ye ekli olduğunda. Yani içerik alanımız (div#container) sayfanın tepesine ulaştığında&#8230;</p>
<p>Yukarıdaki kodu isteğinize göre değiştirebilirsiniz. Bunun temel mantığı anlatmaya yeteceğini düşünüyorum. Sorularınız, ek istekleriniz olursa yorum yazarak bana ulaşabilirsiniz.</p>
<h4>Güncelleme &#8211; 07.10.08, 18:45</h4>
<p>Bu yöntem IE6′da çalışmamaktadır. Çünkü IE6 ‘position: fixed;’ komunutu anlamamaktadır. Fakat bunu çözmek için birçok yöntem bulunuyor… Kısaca göz atmak yeterli.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muhammetsevim.com/yazi/konumu-sabitlestirilmis-navigasyon-cssjs/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
