mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 20.04.2024 02:28 Benutzername: Passwort: Auto-Login

Thema: Javascript - automatisch Scrollen in div (nicht ganzer Body) vom 22.08.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Javascript - automatisch Scrollen in div (nicht ganzer Body)
Autor Nachricht
Sejee
Threadersteller

Dabei seit: 22.08.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 22.08.2008 11:16
Titel

Javascript - automatisch Scrollen in div (nicht ganzer Body)

Antworten mit Zitat Zum Seitenanfang

Hallo

Wahrscheinlich ist das für euch eine Kleinigkeit!

Ich habe folgenden Javascript Code, um eine Html Seite bei Mausberührung automatisch scrollen zu lassen.
Der Code scrollt den kompletten Body und das funktioniert auch wunderbar.

Allerdings möchte ich nur den Inhalt eines divs scrollen und nicht den kompletten Body! Was muss ich umschreiben, damit ich auf diese Art einen div scrollen kann?

Habe schon alles mögliche probiert und stundenlang gesucht aber bin ein absoluter Anfänger in Javascript.

Bitte bitte helft mir, ich bin am verzweifeln.


Hier der Code:


<html><head><script type="text/javascript">

<!--

function SymError()
{
return true;
}

window.onerror = SymError;

var SymRealWinOpen = window.open;

function SymWinOpen(url, name, attributes)
{
return (new Object());
}

window.open = SymWinOpen;

//-->

</script>

<script language="javascript1.2">

<!--

// Parameter
var sense1 = 20; // Sensibilitaetszone 1 (in *balla balla*
var sense2 = 10; // Sensibilitaetszone 2 (in *balla balla*
var sense3 = 1 // Sensibilitaetszone 3 (in *balla balla*
var speed1 = 3; // Scrollgeschwindigkeit in Zone 1
var speed2 = 5; // Scrollgeschwindigkeit in Zone 2
var stime = 10; // Timer zum Scrollen
// Interne Variablen
var scrolling = false
var scrollfast
var richtung
var y_mem = -1
var myWin

// Scrolling anhalten
function stopp_scrolling()
{
scrolling = false
y_mem = -1
}

// Scroll aktivieren und durchfuehren
function start_scrolling(initial)
{
if(!scrolling)
return

// Dokumentposition ermitteln
var dy = (myWin.pageXOffset != null) ? myWin.pageXOffset : myWin.document.body.scrollLeft
if((y_mem != dy) && !initial)
return
var dx = (myWin.pageYOffset != null) ? myWin.pageYOffset : myWin.document.body.scrollTop
dy += richtung * (scrollfast ? speed2 : speed1)

// Scrollen
myWin.scrollTo(dy, dx)
y_mem = dy

// Funktion erneut aufrufen
setTimeout("start_scrolling(false)", stime)
}

// Auswertung der Mausposition
function zeige(e)
{
// Mausposition und Dokumentdaten
var y = myWin.Event ? e.pageX : myWin.event.clientX
if(myWin.Event)
y -= - (myWin.pageXOffset != null) ? myWin.pageXOffset : myWin.document.body.scrollLeft
var wh = myWin.innerHeight ? myWin.innerWidth : myWin.document.body.clientWidth
var dh = myWin.document.height ? myWin.document.width : myWin.document.body.scrollHeight

// Zwischenvariablen
var s1 = Math.round(wh * sense1 / 100)
var s2 = Math.round(wh * sense2 / 100)
var s3 = Math.round(wh * sense3 / 100)
var now_scroll

// Scrollnotwendigkeit ermitteln
if(((y < s1) & (y>s3)) || (y > (wh - s1)) & (y < (wh - s3)))
{
now_scroll = true
richtung = (y < s1) ? -1 : 1
scrollfast = ((y < s2) || (y > (wh - s2))) ? true : false
}
else
{
now_scroll = false
scrolling = false
}

// Scrollstatus geaendert?
if(now_scroll != scrolling)
{
y_mem = -1
scrolling = now_scroll
if(scrolling)
start_scrolling(true)
}
}

// Mauskontrolle initiieren

myWin = window

if(myWin.Event)
myWin.document.captureEvents(Event.MOUSEMOVE)

myWin.document.onmousemove = zeige


//-->

window.onload = InitialiseScrollableArea();</script></head>


<body>

Dieser Text soll NICHT mit Maus scrollbar sein dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd<br><br><br>


<div id="irgendwas" style="overflow:auto;width:100%; height:500px; border:solid 1px red;">Dieser Text soll mit Maus im div scrollen dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd</div></body></html>
  View user's profile Private Nachricht senden
Kash

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Fr 22.08.2008 11:31
Titel

Antworten mit Zitat Zum Seitenanfang

du mußt natürlich auch deinen Div Layer ansprechen.
jetzt sprichst du nur mit 'myWin.document.body' den body an.

myWin.document.body.irgendwas

wobei ich das auch so nicht lösen würde.
wenn jemand javascript (wie ich auch) deaktiviert hat, kann er den relevanten inhalt nicht sehen.
weil die scrollfunktion nicht funktioniert.

du kannst dem div auch die css eigenschaft 'overflow:auto;' vergeben.
dann kannst du diesen div mittels css scrollen wenn mehr inhalt drin ist.


schildere doch mal was du eigentl erreichen möchtest?


gruß


Zuletzt bearbeitet von Kash am Fr 22.08.2008 11:50, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Snifferdog

Dabei seit: 08.03.2007
Ort: Düsseldorf
Alter: 35
Geschlecht: Männlich
Verfasst Fr 22.08.2008 11:34
Titel

Antworten mit Zitat Zum Seitenanfang

Hi,

also ich kenne mich mit JavaScript auch nicht besonders gut aus und kann deswegen in deinem Script nicht wirklich
nach Fehlern suchen oder sowas. Allerdings habe ich auch mal einen Scroller für Divs mit JavaScript geschrieben
und da habe ich einfach 2 Divs genommen die ich ineinander verschachtelt habe. Sodass das äußere Div immer gleich groß war und nur das innere mit dem Text seine Position verändert. So ist es denke ich mal am einfachsten auch von der Umsetzung her. Vielleicht hilft dir das ja etwas *zwinker*


Gruß
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Sejee
Threadersteller

Dabei seit: 22.08.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 22.08.2008 14:17
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo

Erst mal danke für die Antworten.

Zitat:

du mußt natürlich auch deinen Div Layer ansprechen.
jetzt sprichst du nur mit 'myWin.document.body' den body an.


Ja ich weiss, ich habe bereits versucht, den Script umzuschreiben aber ich habe es nicht korrekt hingekriegt...

Kannst du mir vielleicht sagen, was genau ich alles ändern muss?

Zitat:

wobei ich das auch so nicht lösen würde.
wenn jemand javascript (wie ich auch) deaktiviert hat, kann er den relevanten inhalt nicht sehen.
weil die scrollfunktion nicht funktioniert.


Ich verwende auf meiner Homepage viele Javascripte, weshalb ich es so eingerichtet habe, dass man automatisch auf eine Fehlerseite kommt, wenn man Javascript nicht aktiviert hat.
Meine noch unvollständige Homepage könnt ihr euch ansehen unter: http://www.vegetodesign.ch/jenny

Bisher scrollt der ganze Body (nur im Firefox/Safari). Da dies im IE Probleme mit einem anderen Script gibt , muss ich das ganze unbedingt in einen scrollbaren Div verpacken können...

Naja, schwer zu erklären.
  View user's profile Private Nachricht senden
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 22.08.2008 15:00
Titel

Antworten mit Zitat Zum Seitenanfang

Hübsche Seite, hast Du die selbst gestaltet? Richtig nett.

Wg. Javascript-Problem:
Dazu müsste man das Script ziemlich umschreiben, ich
glaube nicht das jemand hier den Nerv dazu hat - besonders
wegen dem lästigen Troubleshooting im IE. Du könntest
alternativ aber auch eine Js-Libary hernehmen, dann kannst
Du dir wenigstens sicher sein dass das auf allen einigermaßen
modernen Browsern funzt.

In deinem Fall: http://demos111.mootools.net/Scroller
Brauchst aber einen ordentlichen Doctype dafür.

Gruß

zweitaccount
  View user's profile Private Nachricht senden
Kash

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Fr 22.08.2008 15:20
Titel

Antworten mit Zitat Zum Seitenanfang

zweitaccount hat geschrieben:


In deinem Fall: http://demos111.mootools.net/Scroller
....

Gruß

zweitaccount


super tipp. * Applaus, Applaus *
  View user's profile Private Nachricht senden
Sejee
Threadersteller

Dabei seit: 22.08.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 22.08.2008 15:30
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:

In deinem Fall: http://demos111.mootools.net/Scroller


jaaa super!!

danke * Applaus, Applaus *
  View user's profile Private Nachricht senden
Sejee
Threadersteller

Dabei seit: 22.08.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 22.08.2008 15:32
Titel

Antworten mit Zitat Zum Seitenanfang

ahso

Zitat:

Hübsche Seite, hast Du die selbst gestaltet? Richtig nett.


ja danke Lächel
  View user's profile Private Nachricht senden
 
Ähnliche Themen automatisch mit javascript horizontal und vertikal scrollen
PopUp automatisch öffnen lassen ohne <body>-tag?
Automatisch horizontal scrollen
iFrame automatisch hoch und runter scrollen lassen
body {padding} und body{height:100%} möglich
JavaScript Scrollen?
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.