Autor | Zpráva | ||
---|---|---|---|
Luko Profil * |
#1 · Zasláno: 6. 7. 2013, 20:47:21
Zdravím,
potrebujem pomôcť doladiť tento kód: window.onload = function (){ var window_height = window.screen.availHeight; var website_height = document.body.offsetHeight; if ((window_height * 1.5) < website_height){ var link = document.createElement ("a"); link.href = "#"; link.className = "go_to_top"; link.title = "Go to top of the page"; var icon = document.createElement ("img"); icon.src = "/img/top.png"; icon.width = "64"; icon.height = "46"; icon.alt = "Top of page"; link.appendChild (icon); document.getElementById ("main").appendChild (link); } } |
||
Joker Profil |
#2 · Zasláno: 6. 7. 2013, 22:06:12
Luko:
Tak si nechte třeba do konzole vypsat hodnoty window_height a website_height a uvidíte, jestli tam jsou očekávané hodnoty. Ale odvozovat prostor pro stránku od screen.availHeight (což by měla být dostupná výška obrazovky pro maximalizované okno) mi nepřipadá šťastné. I když moderní prohlížeče se obvykle snaží dát maximum prostoru stránce a moc nepřekážet, přesto nějaký prostor zaberou. A dost lidí má taky různé toolbary, často nedobrovolně (zanese jim to tam nějaká aplikace a oni to neumějí odstranit), někteří dokonce i dobrovolně, v každém případě to zabere další prostor. Viděl jsem dokonce i prohlížeč (na netbooku), kde na samotnou stránku zbývala sotva polovina dostupné výšky okna. A naopak při prohlížení stránky v celoobrazovkovém režimu může dostupný prostor pro stránku být dokonce větší, než je hodnota screen.availHeight. Obecně platí, že objekt window.screen je pro běžné stránky užitečný málokdy a z rozměrů ve screen.* nelze odvozovat rozměry na stránce. Přesnější hodnota by asi byla window.innerHeight. Akorát ji nemá IE < 9, tam by mělo fungovat document.documentElement.clientHeight, takže: var window_height = window.innerHeight || document.documentElement.clientHeight; |
||
Luko Profil * |
#3 · Zasláno: 7. 7. 2013, 09:27:19
Ďakujem za pomoc, funguje to presne ako má.
|
||
Časová prodleva: 12 let
|
0