Ich möchte einen Code schreiben, der den Hintergrund eines div basierend auf x-Achsen-Mausbewegungen subtil verschiebt. Ich verwende derzeit .mousemove und die background-position -Eigenschaft, um das Hintergrundbild zu verschieben. Ich musste den Hintergrund ein wenig abhängig von der Fenstergröße bewegen, damit es nicht von der Seite ging. Ich habe einige if-Anweisungen eingerichtet, um das zu behandeln, aber die Hintergrundposition wird nicht aktualisiert, wenn das Fenster in der Größe geändert wird. Es funktioniert nur, wenn die Seite komplett neu geladen wird - dann liest es die if-Anweisungen erneut und der Hintergrund wird richtig positioniert. Die Hintergrundposition beträgt 23% 50% für Medienabfragen, die kleineren Fenstern entsprechen, und 40% 50% für Medienabfragen, die größeren Fenstergrößen entsprechen. Irgendwelche Ideen, wie ich den Code ändern kann, um die Hintergrundposition in Echtzeit zu aktualisieren, wenn die Fenstergröße geändert wird?Verwenden von jQuery zum Verschieben eines div-Hintergrunds basierend auf der Mausposition
Vielen Dank!
$(document).ready(function(){
if ($(".container").css("background-position")=="23% 50%")
{
$(document).mousemove(function(event) {
var m = event.pageX;
var q = 23 + m/200;
$(".container").css({"background-position": q + "% 50%"});
$(".andServices").text(q);
});
}
else if ($(".container").css("background-position")=="40% 50%")
{
$(document).mousemove(function(event){
var z = event.pageX;
var t = 40 + z/200;
$(".container").css({"background-position": t + "% 50%"});
$(".creativeProducts").text(t);
});
}
});
<div class="container">
<div class = "mobileBG"></div>
<div class="textContainer">
<p class="creativeProducts">Creative Products</p>
<p class = "andServices">And Services</p>
<p class = "ebaySales">eBay Sales</p>
<p class = "seoServices">SEO Services</p>
<p class = "webDesign">Web Design</p>
<p class = "photography">Photography</p>
</div>
</div>
.container{
width:100%;
position:relative;
top:0;
bottom:0;
left:0;
right:0;
height:750px;
background-image:url(images/frontCoverImage.gif);
background-size:cover;
background-repeat:no-repeat;
background-position:23% 50%;
}
Vielen Dank für Ihre Eingabe! Haben Sie Vorschläge, wo dies in den Code einfließen könnte? – pmank64
Sie können [.resize()] (https://api.jquery.com/resize/) und [.load()] (https://api.jquery.com/load/) zusammen mit [. on()] (https://api.jquery.com/on/) Ereignis-Listener. –
Yup @MichaelSchwartz hat Recht. Die Funktion resize() übernimmt die Größenanpassung des Browsers, während Sie beim Aufruf der Seite auch die Funktion load() benötigen, um den Initialcode aufzurufen. – Norman