2009-07-28 8 views
0

Ich habe eine Seite, die einen Stil wie dies in einer CSS-Datei hat:wie html Hintergrund ändern dynamisch

body 
{ 
    background: #000000 url(images/back_all.gif) repeat-x top; 
    font: 12px Tahoma, Arial, Helvetica, sans-serif; 
    color: #666666; 
} 

und ich habe entweder ein Javascript, das nach window.onload geladen wird und verursacht Seite erweitern werden und so wird der Rest meiner Seite schwarz. Wie kann ich das Hintergrundbild nach Abschluss des Javascript-Codes erneut auf meine Seite anwenden?

+0

Wenn Sie sagen, "Ursachen Seite vertikal erweitert werden" was meinst du? Meinst du das Browserfenster oder ein HTML-Element? – NotMe

+0

ja es wird componenet Seite – JGC

+0

hinzufügen Ich glaube nicht, dass Sie seine Frage beantwortet haben ... Erweitert sich das Fenster (physischer Browser) oder erweitert sich ein Element wie eine Div. – user140125

Antwort

8

jQuery:

$('body').css('backgroundImage', 'url(something.gif)');


Non-jQuery:

Assign Körper eine ID: <body id="the_body">

document.getElementById('the_body').style.backgroundImage = "something.gif"

oder wie John erwähnt

document.body.style.backgroundImage = "something.gif";

und darüber hinaus ein T POPs erwähnt, stellen Sie sicher, dass es am Ende geht:

<html> 
<body> 
..... Data ........ 
<script type="text/javascript"> 
.... Code ........ 
</script> 
</body> 
</html> 
+2

Das ist, wenn Sie jQuery auf der Seite ausgeführt haben. –

+0

Was ist mit document.body? –

+0

Das könnte funktionieren, ich werde es hinzufügen. –

0

Einige Browser haben einen Bug (Chrome, Safari), wo sie den HTML-Body-Hintergrund nicht korrekt erweitern, bis ein Reload auftritt. Abhängig davon, was Sie eigentlich in Ihrem Javascript tun, gibt es hier möglicherweise keine Lösung.

0

Die CSS-Stil 'repeat-x' legt den Hintergrund nur horizontal und nicht vertikal expandieren. Durch Entfernen dieses Teils aus dem Code wird sichergestellt, dass sich der Hintergrund sowohl in X- (horizontal) als auch in Y- (vertikal) Richtung wiederholt.

0

Werfen Sie einen Blick auf:

Dynamic CSS Changes

, die eine Art und Weise zeigt, zu erreichen, was Sie über Javascript möchten.

2

Ich denke, das Einfügen dies am Ende eines Dokuments arbeiten könnte:

<script type="text/javascript"> 
    var obj= document.getElementByName("body"); 
    obj.style.background = "#000000 url(images/myimage.gif) repeat-x top"; 
    // change color, image and settings 
</script> 

Grüße

+0

document.getElementByName funktioniert nicht. getElement * s * tut und gibt ein Array zurück. – vahidg

+0

Dies funktioniert nicht –

+0

Sie haben Recht. Es tut mir leid, erinnerte mich nicht an dieses ... – Atmocreations

0
will give an example hope it will helpful for you. 

<a class="t-hub" href="#" title="T-HUB"> 

<div> 
<img src="../../images/TBO_Tran_Logo.png" class="imglogocenter" alt="" style="width: 110px; height: 64px;margin: -6px 0 0;"> 
</div> </a> 

You see the class **imglogocenter** we can call the class which page we have to change the image dynamically,go through that page and put in a css property changes in a loading function .Dont go and change the css property in the main page. 
Here I can demonstrate 

Example: 

$(function() { 
     // $('#dvLoading').fadeOut(2000); 
     $('.imglogocenter').css('margin','-11px 0 0');   
    }); 
0

Nun, wenn Sie wie ich sind und Sie sind neu in Javascript und jQuery finden Sie diese Aufgabe sehr beeindruckend. Aber du hast Glück, denn ich habe eine Lösung gefunden.Versuchen Sie folgendes:

Link-jQuery vor dies zu tun:

$(function es() { 
    $('body').addClass('sec'); 
}); 

und tun dies in CSS:

body { 
    background-Image: url(../someImage); 
} 
.sec { 
    background-Image: url(../anotherImage); 
} 

Was dies in erster Linie tut, ist es, den Körper eine Klasse von zweiten und in css zweiten gibt hat ein anderes Hintergrundbild als der Körper, also überlagert es den Körper CSS-Regel // Ich denke // Ich bin auch neu zu diesem //