Défilement horizontal

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Défilement horizontal

par Dom! » 25 janv. 2007, 23:22

Toujours personne pour m'aider ???

:cry:

Je n'en peux plus de chercher....

par Dom! » 25 janv. 2007, 17:52

J'ai beau chercher mais je ne trouve pas quelle valeur changer pour palier à mon probleme !

Peux tu me donner un indice ? :D

Merci d'avance

par sadeq » 25 janv. 2007, 15:47

- calcule bien la position X du (LEFT) suivant par rapport au X (LEFT) + la largeur (WIDTH) du pécédent
- utilise des style CSS propres pour tes objets porteurs (DIV) qui se déplacent et pour leur contenu (tes images)
Il faut fixer surtout les marges (PADDING) des DIV ainsi que les images contenues.

par Dom! » 25 janv. 2007, 15:40

Ok alors avec tes explications j'ai trouvé comment faire en revanche mes images ont un espacement entre elles trop importante et je n'arrive pas à régler cette espace.

Auriez vous une idée ?
MErci

par sadeq » 25 janv. 2007, 14:01

sans lire ton code, la solution pour inverser le déplacement vertical en horizontal est d'inverser les abssices et les ordonnées XY.

dans un déplacement vertical, un objet est déplacé (moveTo) sur un axe X fixe en variant les Y (Y++ ou Y--)

Inversement, le déplacement horizontal fixe l'axe Y et varie les X (X++ ou X--)

Les axes XY de la fenêtre d'affichage étant :
  • 0-----x0-----x1----------+ Axe X
    |
    |
    y0
    |
    |
    y1
    |
    |
    +

    Axe Y
Légende: Les X sont les colonnes et les Y sont les lignes

par Dom! » 25 janv. 2007, 13:39

Et pour mon code personne ne peux me répondre ?

Car je gélere ! merci :-)

par AB » 24 janv. 2007, 18:18

Je ne suis pas assez calé en JS pour te dépanner sur ce script.

Par contre, perso, j'utilise un script beaucoup plus simple pour la même fonctionalité : http://www.phpfrance.com/forums/voir_sujet-11093.php
La seule resrtriction pour l'instant est qu'on ne peut insérer qu'un module défilant par page.

Défilement horizontal

par Dom! » 24 janv. 2007, 15:40

Bonjour,

J'ai récupéré ceci :
function NewsTicker(x,y,width,height) {
	this.name = 'NewsTicker'+(NewsTicker.count++)
	this.x = x
	this.y = y
	this.w = width
	this.h = height
	this.obj = this.name + "Object"
	eval(this.obj + "=this")
	this.items = new Array()
	this.scrollCount = 0

	this.pauseLength = 0	
	this.inc = 2
	this.speed = 80
	this.fromX = 0
	this.fromY = this.x
	this.bgColor = null

	this.addItem = NewsTickerAddItem
	this.activate = NewsTickerActivate
	this.build = NewsTickerBuild
	this.start = NewsTickerStart
	this.stop = NewsTickerStop
	this.slide = NewsTickerSlide
}
function NewsTickerAddItem(text) {
	var i = this.items.length
	this.items[i] = new Object()
	this.items[i].text = text
}
function NewsTickerBuild() {
	this.css = css(this.name,this.x,this.y,this.w,this.h)
	this.div = '<div id="'+this.name+'">'
	for (var i=0;i<this.items.length;i++) {
		this.css += css(this.name+'Item'+i,0,0,this.w,this.h,this.bgColor,'hidden')
		this.div += '<div id="'+this.name+'Item'+i+'">'+this.items[i].text+'</div>'
	}
	this.div += '</div>'
}
function NewsTickerActivate(autostart) {
	for (var i=0;i<this.items.length;i++) {
		this.items[i].lyr = new DynLayer(this.name+'Item'+i)
		this.items[i].lyr.moveTo(this.fromX,this.fromY)
		this.items[i].lyr.show()
	}
	this.items[0].lyr.moveTo(0,0)
	this.lyr = new DynLayer(this.name)
	var num = Math.sqrt(Math.pow(this.fromX,2) + Math.pow(this.fromY,2))/this.inc
	this.dx = this.fromX/num || 0
	this.dy = this.fromY/num || 0
	if (autostart!=false) setTimeout(this.obj+'.start()',this.pauseLength)
}
function NewsTickerStart() {
	if (!this.started) {
	this.started = true
	var t = this.scrollCount
	var b = (this.scrollCount==this.items.length-1)? 0 : this.scrollCount+1
	var obj1 = this.items[t].lyr.obj
	var obj2 = this.items[b].lyr.obj
	this.timer = setInterval(this.obj+'.slide('+obj1+','+obj2+')',this.speed)
	}
}
function NewsTickerStop() {
	clearInterval(this.timer)
	this.started = false
}
function NewsTickerSlide(obj1,obj2) {
	obj1.moveBy(-this.dx,-this.dy)
	obj2.moveBy(-this.dx,-this.dy)
	if ((this.dx!=0 && Math.floor(obj2.x)==0) || (this.dy!=0 && Math.floor(obj2.y)==0)) {
		clearInterval(this.timer)
		obj1.moveTo(this.fromX,this.fromY)
		obj2.moveTo(0,0)
		this.scrollCount = (this.scrollCount==this.items.length-1)? 0 : this.scrollCount+1
		this.timer = setTimeout(this.obj+'.started=false;'+this.obj+'.start()',this.pauseLength)
	}
}
NewsTicker.count = 0
et je n'arrive pas à faire défiler mes photos en horizontal... actuellement les photos défilent en vertical !

Pourriez vous m'aider ??? merci