como hacer efecto parallax?
Publicado por MariNohemy (1 intervención) el 15/07/2019 16:44:55
Poner imágenes con textos flotantes
Valora esta pregunta


0
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Parallax Uno</title>
<script src="jquery.min.js"></script>
</head>
<body>
<div id="uno"></div>
<div id="dos" >
<p><span>Texto principal</span></p>
<p><span>Texto arriba</span></p>
<p><span>Texto abajo</span></p>
</div>
<div id="tres"></div>
<style>
*{margin: 0; padding: 0;}
#uno {height: 50vw; width: 100%; background: none;}
#dos {height: 30vw; width: 100%; background: url('3.jpg'); background-position: 0; background-size: cover; background-attachment: fixed;}
#dos p {position: absolute; font-family: sans-serif;}
#dos p:nth-child(1){font-size: 10vw; font-weight: bold; color: #fff; margin-left: 24vw; margin-top: 0;}
#dos p:nth-child(2){font-size: 12vw; font-weight: bold; color: #fff; margin-left: 10vw; margin-top: -15vw; opacity: 0;}
#dos p:nth-child(3){font-size: 12vw; font-weight: bold; color: #fff; margin-left: 32vw; margin-top: 26vw; opacity: 0;}
#tres {height: 60vw; width: 100%; background: none;}
</style>
<script>
$(window).scroll(function() {
function scrollOpacity(ini,fin,val1,val2,mod)
{
var altoPan=$(window).width();
var ini=(ini*altoPan)/1366;
var fin=(fin*altoPan)/1366;
var pos=$(window).scrollTop();
var dif1=fin-ini;
var dif2=val1-val2;
var cam=dif2/dif1;
if(pos<ini){var val=0}
else if(pos>fin){
var val=dif1*cam;
}
else {var val=cam*(pos-ini);}
if(mod=='menor'){var valUlt=val1-val;}
else{var valUlt=val1-val;}
return valUlt;
}
$('#dos').css({'background-position':'0 '+scrollOpacity(0,1100,0,-100)+'vw'});
$('#dos').css({'filter':'grayscale('+scrollOpacity(500,700,100,0)+'%)'});
$('#dos p:nth-child(1)').css({'margin-top':scrollOpacity(0,1000,0,15)+'vw'});
$('#dos p:nth-child(1)').css({'opacity':scrollOpacity(0,500,0,1)});
$('#dos p:nth-child(1) span').css({'opacity':scrollOpacity(500,1100,1,0)});
$('#dos p:nth-child(2)').css({'margin-top':scrollOpacity(300,1210,-15,30)+'vw'});
$('#dos p:nth-child(2)').css({'opacity':scrollOpacity(500,600,0,0.5)});
$('#dos p:nth-child(2) span').css({'opacity':scrollOpacity(700,1200,0.5,0)});
$('#dos p:nth-child(3)').css({'margin-top':scrollOpacity(300,1210,35,-15)+'vw'});
$('#dos p:nth-child(3)').css({'opacity':scrollOpacity(500,600,0,0.5)});
$('#dos p:nth-child(3) span').css({'opacity':scrollOpacity(700,1200,0.5,0)});
});
</script>
</body>
</html>