Autor Zpráva
vacjos
Profil *
Ahoj,
jak udělat, aby se dal div s vlastností overflow:hidden scrollovat, když nad ním scrolluju?
Scroll tohoto divu zatím dělám přes tlačítko s funkcí:
var time_scroll;
function scrollDiv(id_div,smer) {
  var step = 5;
  var d = document.getElementById(id_div);
  if (smer == 1 && d) {d.scrollTop -= step;}
  if (smer == 2 && d) {d.scrollTop += step;}
  time_scroll = setTimeout('scrollDiv("'+id_div+'","'+smer+'")',10);
}
Jde to nějak zprovoznit i bez tlačítka, rovnou při scrollování na divu?

Dík
vacjos
Profil *
Na netu jsem našel následující funkci, ale ta scrolluje iframe (celou stránku) s overflow:hidden. Jde to nějak poupravit na ten div?

function wheel(event) {
  var delta = 0;
  if (!event) {event = window.event;}
  if (event.wheelDelta) {
    delta = event.wheelDelta/120;
    if (window.opera) {delta = -delta;}
  }
  else if (event.detail) {delta = -event.detail/3;}
  if (delta) {
    if (delta < 0) {window.scrollBy(0, 50);}
    else {window.scrollBy(0, -50);}
  }
  if (event.preventDefault) {event.preventDefault();}
  event.returnValue = false;
}
if (window.addEventListener) {window.addEventListener('DOMMouseScroll', wheel, false);}
window.onmousewheel = document.onmousewheel = wheel;
vacjos
Profil *
Už to mám:-)

window.onload = function () {
  if(window.addEventListener) document.addEventListener('DOMMouseScroll', moveObject, false);
  document.onmousewheel = moveObject;
}

function moveObject(event) {
  var delta = 0;
  if (!event) {event = window.event;}
  if (event.wheelDelta) {
    delta = event.wheelDelta/120;
    if (window.opera) {delta = -delta;}
  }
  else if (event.detail) {delta = -event.detail/3;}
  var currPos = document.getElementById('vyhledavani_dolni');
  if (delta != 0) {currPos.scrollTop = currPos.scrollTop - delta * 50;}
  delta = 0;
}

Moderátor Chamurappi: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
vacjos
Profil *
Škoda jen, že to nejede na IE5.5, kterou stále ještě stránky musí podporovat:-( zprovoznit to na IE5.5 to asi nepůjde, že?
Chamurappi
Profil
Reaguji na vacjose:
zprovoznit to na IE5.5 to asi nepůjde, že?
Nepůjde, událost onmousewheel zavedla až šestka.

Myslíš, že běžní návštěvníci pochopí, že mohou nad <div>em rolovat myší, když tam nebude žádný posuvník? Což takhle zavést nějakou alternativní metodu posunu, která potěší i uživatele prohlížečů kolečkovou událostí neoplývající?
kelvin
Profil
vacjos:
Internet Explorer 5.5 má dle globálních statistik toplistu cca 0.021436 3% , viz http://toplist.cz/global.html | http://www.toplist.cz/stat/?a=history&type=1 . Neřešil bych. Ale to je pouze můj názor.
vacjos
Profil *
kelvin:
Internet Explorer 5.5 má dle globálních statistik toplistu cca 0.021436 3%
OK, díky. Asi tu IE5.5 vynechám.

Chamurappi:
vacjos:
Vkládej prosím kódy mezi značky [pre] a [/pre]
Aha, to jsem nevěděl. Příště se polepšim:-)

Myslíš, že běžní návštěvníci pochopí
Pochopí vzhledem ke kontextu a uspořádání celých stránek, které mají pevnou výšku i šířku,... těžko vysvětlit, když je neznáš.

uživatele prohlížečů kolečkovou událostí neoplývající
Pro ně mám právě ty dvě tlačítka posun nahoru a dolu (viz. příspěvek #1)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: