Šta je novo?

Gigatron "footer"?

obi_van

Slavan
Učlanjen(a)
11.02.2005
Poruke
1,336
Poena
350
Pozdrav,

treba mi pomoc u vidu linka, ili prosto u vidu termina koji bi trebao da potrazim na netu. Ono sto mi treba jeste footer sa funkcijom kao na Gigatron sajtu. Probao sam da pretrazujem net sa footer slider, footer slide up push content, itd, itd...sto termina I ne znam sta jos sve ne, ali nikako da naletim na nesto ovog tipa. Dakle treba mi jedan "toolbar", div koji ce biti fixan dok se ne dodje do dna sadrzaja strane nakon cega ce footer da "ukliza" na gore I izgura sadrzaj plus taj fixni div na gore.

Hvala u napred na odgovorima.
 
To sto ti zelis se zove Affix (fiksna povrsina koja te uvek prati dok se kreces po stranici). Nesto poput ovoga: http://leenk.in/qHxCL (navbar i meni levo su fiksni i prate te po strani). U principu, to nije nikakva mudrolija, u pitanju je obican DIV koji ima specificno fixed pozicioniranje, z-index i 100% sirinu. To mozes i sam da napravis, ne treba ti nikakav skript niti bilo sta drugo.
 
jest, obican fiksirani div sa nabacanim elementima.. ako bas ne zelis da se bakces sa cssom, imas mnogo bootstrap tema sa slicnim i istim funkcijama za 10-15 dolara na netu, pa cak i neka besplatna resenja
 
Cist CSS? Ajde pogledacu, meni deluje kao da ima I neki script. Nije meni problem da fiksiram na odredjenoj visini ili na dnu strane div, mene zanima kako da se taj div kada dodjem do kraja strane pomeri na gore onoliko koliko je visok footer. To kazete moze kroz CSS? Ja vec nasao nesto uz pomoc javascripta, ali bi me zanimalo I u CSS-u ako moze da se izvede.
 
Daj neki primer tog pomeranja, nisam shvatio sta tacno zelis.
 
Imas tacno na gigatronovom sajtu. Kada ga otvoris imas dole fiksiran div, pa kad skrolujes i dodjes do dna strane, futer se pojavi (slideup) i odgura sav sadrzaj za toliko na gore.
 
Aha skontao sam sta ti treba :) Postoji super skript za to, pokusacu da ga nadjem sutra.
 
Ja sam dosao do ovakvog resenja ispod, ali nisam bas najsrecniji, jer ne budem li imao dovoljno sadrzaja na strani, necu imati ni skrol, a samim tim ni footer :d

Kod:
<html>
<head>
	<style type="text/css">
		#footershop {
    height:0px;
    width:100%;
    z-index: 2;
    background:#00ffff;
    position: fixed;
    bottom:0;
    left:0;
    overflow:visible;
    float: left;
	}
	body {
    position:relative;   
	}
	#footerTopLine
	{
	height:35px;
    width:100%;
    z-index: 1;
    background:#888;
    position: fixed;
    bottom:0;
    left:0;
    overflow:visible;
    float: left;
	}

	

	</style>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        
	<script type="text/javascript">
	$(window).scroll(function() {

    var distanceTop = $('#showfootershop').offset().top - $(window).height();

    if ($(window).scrollTop() >= distanceTop - 20) {
        $("#footershop").animate({
            'height': '35px'
        }, 'fast');
    }
    else {
        $("#footershop").animate({
            'height': '0px'
        }, 'fast');
    }
});
	</script>
	<script type="text/javascript">
	$(window).scroll(function() {

    var distanceTop = $('#showfooterTopLine').offset().top - $(window).height();

    if ($(window).scrollTop() > distanceTop) {
        $("#footerTopLine").animate({
            'height':'70px'
        }, 'fast');
    }
    else {
        $("#footerTopLine").animate({
            'height':'35px'
        }, 'fast');
    }
});
	</script>
</head>
<p>
    
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris a eros eu sem sollicitudin vulputate. Maecenas ac ante libero, quis volutpat diam. Etiam eleifend arcu eu enim tincidunt ornare. Sed imperdiet viverra bibendum. Proin a enim et turpis tempus mattis vitae et ipsum. In et ligula eget tellus malesuada pretium sed ut ipsum. Curabitur posuere pellentesque erat vel ullamcorper. Nullam mauris erat, elementum et semper sed, lacinia quis orci. Curabitur ornare dapibus accumsan. Curabitur sollicitudin porttitor vulputate. Nullam ornare magna at justo sodales tristique. Pellentesque vel arcu felis, vel egestas turpis. Sed a libero nibh.</p> <br />

<p>

Nunc sagittis, nibh non blandit congue, diam est adipiscing purus, non volutpat nunc eros in sapien. Sed rutrum euismod dui eu posuere. Vestibulum sem purus, condimentum rhoncus auctor ut, ultrices at lectus. Nullam sodales nunc in erat pulvinar ac mattis arcu bibendum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam lectus magna, facilisis sit amet gravida eu, ultricies vel justo. Cras tincidunt quam et sem sodales id luctus felis tempus. Curabitur dictum ultricies felis id ullamcorper.</p><br />

<p>Nullam nulla risus, lobortis sollicitudin scelerisque quis, varius ac quam. Maecenas condimentum, erat nec dapibus luctus, velit nulla suscipit elit, ac vulputate nulla nulla in elit. Integer nisi purus, faucibus aliquam scelerisque ac, convallis semper ante. Maecenas et nunc eu mi fringilla mattis. Duis commodo, metus eget egestas scelerisque, velit orci malesuada magna, malesuada rhoncus nisi nisl non lorem. Vestibulum ullamcorper nisl at nunc molestie condimentum. Etiam elementum dignissim tincidunt. Donec feugiat tristique est non cursus. Phasellus consequat congue quam ac dictum.</p><br />
    
   <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris a eros eu sem sollicitudin vulputate. Maecenas ac ante libero, quis volutpat diam. Etiam eleifend arcu eu enim tincidunt ornare. Sed imperdiet viverra bibendum. Proin a enim et turpis tempus mattis vitae et ipsum. In et ligula eget tellus malesuada pretium sed ut ipsum. Curabitur posuere pellentesque erat vel ullamcorper. Nullam mauris erat, elementum et semper sed, lacinia quis orci. Curabitur ornare dapibus accumsan. Curabitur sollicitudin porttitor vulputate. Nullam ornare magna at justo sodales tristique. Pellentesque vel arcu felis, vel egestas turpis. Sed a libero nibh.</p><br />

<p>Nunc sagittis, nibh non blandit congue, diam est adipiscing purus, non volutpat nunc eros in sapien. Sed rutrum euismod dui eu posuere. Vestibulum sem purus, condimentum rhoncus auctor ut, ultrices at lectus. Nullam sodales nunc in erat pulvinar ac mattis arcu bibendum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam lectus magna, facilisis sit amet gravida eu, ultricies vel justo. Cras tincidunt quam et sem sodales id luctus felis tempus. Curabitur dictum ultricies felis id ullamcorper.</p><br />

Nullam nulla risus, lobortis sollicitudin scelerisque quis, varius ac quam. Maecenas condimentum, erat nec dapibus luctus, velit nulla suscipit elit, ac vulputate nulla nulla in elit. Integer nisi purus, faucibus aliquam scelerisque ac, convallis semper ante. Maecenas et nunc eu mi fringilla mattis. Duis commodo, metus eget egestas scelerisque, velit orci malesuada magna, malesuada rhoncus nisi nisl non lorem. Vestibulum ullamcorper nisl at nunc molestie condimentum. Etiam elementum dignissim tincidunt. Donec feugiat tristique est non cursus. Phasellus consequat congue quam ac dictum.
</p><br />
<div id="showfooterTopLine"></div>
<div id="footerTopLine">
	<h1>Shop Links</h1>
</div>
<div id="showfootershop"></div>
<div id="footershop">
    <h1>Shop Links</h1>
</div>
<body>
</body>
</html>
 
ja tek sad videh kako ovaj na gigatronu radi.. nazalost nemam pojma kako se to postize, a ni na netu nista nisam nasao osim onog "stickyfooter"-a (glupost ziva), koji bi mozda mogao nekako da se prilagodi. mogli bi neki fiddle da napravimo pa da eksperimentisemo :)
 
Niko nema neko, bolje resenje?
 
Kad dođe do određenog broja piksela od top-a daje tom divu vrednost absolute i poziciju od bot-a, nema nikakve animacije. Ne znam sad kako idu te funkcije u JQ/JS ali to je suština.
 
Evo kako se detektuje kraj stranice kada se skroluje: http://jsfiddle.net/nick_craver/gWD66/

Onda se ukine apsolutno pozicioniranje za div id='user-bar'. Ispod njega se umetne div id='footer-holder'. U tom trenutku je stranica produzena pa moze jos da se skroluje i dobije se efekat da je user-bar "izvukao" footer-holder sa dna.

Sta mislite?
 
Poslednja izmena:
Zvuci obecavajuce, jel mozes to da dodas u ovaj fiddle?
 
Evo kao inspiracija malo dirty koda:

Kod:
<html>
	<head>
		<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
		<style>
			
		</style>
		<script>
			
			function getDocHeight() {
				var D = document;
				return Math.max(
					D.body.scrollHeight, D.documentElement.scrollHeight,
					D.body.offsetHeight, D.documentElement.offsetHeight,
					D.body.clientHeight, D.documentElement.clientHeight
				);
			}
			
			$(function(){
				
				$('#xx').css('display','none'); 
				
				$(window).scroll(function() {   
					
				   if( $(window).scrollTop() + window.innerHeight == getDocHeight() ) {			   
						
						$("#footer").css({"position":"relative","top":"-100"});
						$("#xx").css("display","inline");
						$("body").css("height","-=100");
					}
				});
				
				
			});
		</script>
	</head>
	<body>
		<div id='container' style='height:2000px; background-color:blue;'> 
			
		</div>
		<div id='footer' style='position: fixed; bottom:0; width:100%; background-color:red;'> FOOTER FOOTER FOOTER FOOTER <br/>
			<div id='xx' style='background-color:green;'>
				XXXX <br/> 
				XXXX <br/>
				XXXX <br/>
				XXXX <br/>
				XXXX <br/>
				XXXX <br/>
			</div>
		</div>
	</body>
</html>

PS window.innerHeight nije za sve browser-e ali to se lako sredjuje...
EDIT: Probao sam kratko na Chrome-u... deluje da radi. Fali jos da se sredi kada se skroluje na gore da se vrati u prvobitno stanje...
 
Poslednja izmena:
Nazad
Vrh Dno