div relative over img

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Php knipper

php knipper

02/10/2014 20:00:37
Quote Anchor link
Hallo,

Ik wil proberen zelf een panorama weergave ding te maken met jquery, nu wil ik hier ook aanklikbare vakken voor maken maar ik zou niet weten hoe het zou moeten.

De foto zou dus horizontaal buiten beeld lopen en boven en onder volledig zijn (100%) maar niet iedereen zijn scherm is even hoog dus werken met css (top, left, right, bottom) lijk me geen optie. Of toch wel?

Hoe kan ik dat het best aanpakken?

Mvg. knipper
Gewijzigd op 02/10/2014 20:01:04 door Php knipper
 
PHP hulp

PHP hulp

08/11/2024 14:35:56
 
Eddy E

Eddy E

02/10/2014 20:09:16
Quote Anchor link
Google eens op "full screen image css3".
Dan heb je dus de volledige pagina.
De truc is: background-size: cover;.

Daaroverheen (met z-index:;) gooi je eventueel nog 2 aanklikbare <div>'s.
 
Php knipper

php knipper

02/10/2014 22:34:13
Quote Anchor link
hallo Eddy E,

het probleem is niet de foto, dat is iets wat ik al vrij lang kan. het loopt bij mij fout bij de positie van de 2 div's. afhankelijk van de grote van het scherm zal ook de foto groter of kleiner worden waardoor de positie van deze div's verplaatsen. Ikzelf was aan het denken om te werken met aspect ratio om het zo te "berekenen" via jquery maar of dit een goed idéee is weet ik niet.
 
Phpnuke r

phpnuke r

03/10/2014 00:07:56
Quote Anchor link
Een voorbeeld is misschien wel handig, we moeten namelijk oordelen over iets waar we weinig informatie over hebben. Want we praten over een 'panorama weergave ding in jQuery'. Je moet nagaan dat dit erg lastig te raden is voor ons. Desnoods gewoon een paint tekening met wat je wilt en een stukje code wat je al hebt.

Het positioneren van elementen hoef je vrijwel nooit te doen met jQuery, tenzij dit dynamisch moet gebeuren, of hele bijzondere uitzonderingen. Destijds dacht ik dat het onderaan zetten van de footer bij kleine pagina's het beste met JavaScript kon maar ook dat is onnodig.

Wat veel (beginners)mensen niet weten is dat je in een Relative div een absolute div kunt plaatsen die zich vervolgens aan de grootte houdt van de relative div. Dit houdt in dat als je de absolute div 'bottom:0px;' meegeeft hij aan de onderkant van de relative div blijft plakken. Misschien dat dit iets helpt?

Overigens zie ik niet in wat er verkeerd is aan top/left/right/bottom. In ieder geval beter dan JavaScript zo ver ik me kan bedenken.
 
Php knipper

php knipper

03/10/2014 16:47:07
Quote Anchor link
Ok even verduidelijken, op onderstaande foto staan 2 beeldschermen (rood en groen) en de slide dat buiten het scherm gaat (display: none) is het php logo. op dit logo staat met css (top: 10px; left: 10px;) een vak.

Echter is dit vak niet op beide beeldschermen op de zelfde plek. dit komt omdat de foto zijn verhoudingen behoud maar toch naar height 100% gaat.

dit is dus mijn probleem.
Afbeelding
Gewijzigd op 03/10/2014 16:47:19 door php knipper
 
Phpnuke r

phpnuke r

03/10/2014 23:18:28
Quote Anchor link
Php knipper op 03/10/2014 16:47:07:
Ok even verduidelijken, op onderstaande foto staan 2 beeldschermen (rood en groen) en de slide dat buiten het scherm gaat (display: none) is het php logo. op dit logo staat met css (top: 10px; left: 10px;) een vak.

Echter is dit vak niet op beide beeldschermen op de zelfde plek. dit komt omdat de foto zijn verhoudingen behoud maar toch naar height 100% gaat.

dit is dus mijn probleem.

[afbeelding]



-Maak van de image een relative DIV (met achtergrond image)
-Het geen wat er overheen gaat moet absolute zijn met de meegegeven top, left, right, bottom. Test het maar eens.
Gewijzigd op 03/10/2014 23:18:42 door phpnuke r
 
Wouter J

Wouter J

03/10/2014 23:51:27
Quote Anchor link
Beter is het om de afbeelding en de vlakken als elementen van de div te doen ipv een background image.
 
Phpnuke r

phpnuke r

04/10/2014 11:20:16
Quote Anchor link
Ligt er aan hoe de image moet reageren nietwaar..? Anders is de img element volgens mij overbodig.
 
Wouter J

Wouter J

04/10/2014 12:16:07
Quote Anchor link
PHPnuke, nee. HTML heeft namelijk niks met de opmaak of reactie van elementen te maken. HTML heeft het over het omschrijven wat er op een pagina is en het labelen van de informatie (bijv. dit is een heading, en zus is een paragraaf en dat is een lijst item). CSS is het enige dat gaat over de opmaak.
 
Phpnuke r

phpnuke r

04/10/2014 12:33:38
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div class="panorama">
  <div class="caption"></div>
</div>
<style>
.panorama {
  position:relative;
  background-image:url(phphulp-logo.png);
  ...
}

.caption {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  height:40px;
  ...
}
</style>


Dit komt toch gewoon overeen met jouw stelling dat html de elementen moet aangeven? Ik kan mij goed voorstellen dat zowel een <img> in de panorama class een voordeel kan zijn, maar ook een nadeel.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div class="panorama">
  <img src="phphulp-logo.png" />
  <div class="caption"></div>
</div>
<style>
.panorama img {
  /* CSS code om de image goed te plaatsen */
}

.caption {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  height:40px;
  ...
}
// + zorgen dat de caption goed over de IMG valt
</style>
 
Php knipper

php knipper

06/10/2014 18:35:19
Quote Anchor link
Maar het is niet de bedoeling dat het over heel het scherm is. ik ben van plan 360° foto's te maken in vb een huis en een div te plaatsen voor de deuren, als ze op deze deuren klikken gaan ze naar de volgende 360° foto in die kamer en zo verder.

zoals in mijn foto beschreven gaat de div over de deur niet kloppen bij verschillende schermen tenzij ik werk met procent maar dat lijkt me niet te werken.
 
Eddy E

Eddy E

06/10/2014 18:38:40
Quote Anchor link
En is de <map>-tag niets?

http://www.image-maps.com/
 
Php knipper

php knipper

06/10/2014 19:01:02
Quote Anchor link
@Eddy E,

Dat is het, maar ik wil het eerst simpel zelf proberen te maken (ik wil hier eigenlijk van leren).
Ikzelf wilde dus de positie van de deuren opslaan en dan met jquery deze her berekenen. maar is dit wel een goed idee?
 
Eddy E

Eddy E

06/10/2014 20:50:37
Quote Anchor link
Nee.
Gewoon met de <map>-tag 3 afbeeldingen (3x hetzelfde, dat zou ik 1x maken en dan kopieren met jQuery) tonen.
En dan weer met jQuery zodra afbeelding (en <map>) 3 getoond wordt, naadloos nummer 4 etc er naast kopieren.
 
Phpnuke r

phpnuke r

06/10/2014 21:27:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
Maar het is niet de bedoeling dat het over heel het scherm is. ik ben van plan 360 foto's te maken in vb een huis en een div te plaatsen voor de deuren, als ze op deze deuren klikken gaan ze naar de volgende 360 foto in die kamer en zo verder.

zoals in mijn foto beschreven gaat de div over de deur niet kloppen bij verschillende schermen tenzij ik werk met procent maar dat lijkt me niet te werken.

Met mijn voorbeeld moet dit volgens mij goed gaan. Zolang je zowel de image als de 'child' in procenten behoud OF in pixels. (of ik zit fout te denken :P)

Als je bijvoorbeeld de image in procenten doet en de child gewoonweg 50 pixels top zou geven dan gaat dat natuurlijk fout.
Gewijzigd op 06/10/2014 21:28:14 door phpnuke r
 
Eddy E

Eddy E

06/10/2014 22:13:10
Quote Anchor link
Daarom ook niet met overlays werken: gewoon met <map>. Dat is daar voor.
Daarnaast: je kan ook de locaties van de deuren in procenten zoeken ;).
 
Php knipper

php knipper

07/10/2014 19:23:43
Quote Anchor link
@Eddy, en hoe kan ik die <map> tag dan gebruiken? Ik heb wel info gevonden maar snap de coords niet. is dat van de foto en wat als deze foto tot width 100% gaat?

http://www.w3schools.com/tags/tag_map.asp

en nog een klein puntje als het mag:
Ik ben aan het zoeken hoe ik dit het beste kan doen. De opzet is dat mensen zoals op google street vieuw horizontaal kunnen slepen om zo rond te draaien. Dit moet met jquery maar ik zou niet weten hoe ik dit kan doen. hoe kan ik dat slepen maken? of bestaat hier een tutorial voor?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.