我加了我認爲是小提琴的重要部分。基本上,我所有的文件都在一個目錄中。 CSS使用相對路徑在div #slides上放置背景圖像。然後,使用javascript和一個數組,我想改變背景圖片。然而,只有當我放入圖像的絕對路徑時,js纔有效。無法使用JavaScript替換/使用relatvie圖片網址。絕對路徑的作品,相對不
小提琴不會顯示圖像,但結構在那裏。通常情況下,我有一個函數可以增加i並顯示相應的圖片,但我認爲這對於故障排除是不必要的。
我試圖使用相對路徑的原因是因爲我可能需要能夠複製和粘貼整個文件夾或使用它從沒有互聯網訪問的PC上的USB驅動器。
在開發控制檯中,當我設置i = 1並運行該功能時,背景爲空白。當我設置了絕對路徑並執行相同的操作時,它會根據i值顯示正確的圖片。
感謝您的幫助!
編輯:當我將所有我的代碼合併到html文檔中時,所有代碼都可以使用相對路徑。所以,在寫出使用不同html/css/js文件的路徑時,我一定有一些簡單的東西。
http://jsfiddle.net/xvs8ogjg/4/
HTML
<div id="slides"></div>
CSS
/* I'm using % based sizes on the actual version, but everything else is the same. */
#slides {
width: 200px;
height: 200px;
margin: 0;
/* this css loads the first image properly when the page loads */
background-image: url("test1.svg");
background-size: contain;
background-repeat: no-repeat;
background-position: center;
}
JS
//Array with images. Images, css, and js are all in the same folder called slideshow for now.
var slides = document.getElementById('slides');
//Does not work
var images = new Array (
"test1.svg",
"test2.svg"
);
//Does not work, i thought i could trick it or something, idk
var images = new Array (
"../slideshow/test1.svg",
"../slideshow/test2.svg"
);
//Works
var images = new Array (
"http://example.com/directory/slideshow/test1.svg",
"http://example.com/directory/slideshow/test2.svg"
);
//Also works, locally
var images = new Array (
"file:///C:/Users/myname/directory/slideshow/test1.svg",
"file:///C:/Users/myname/directory/slideshow/test2.svg"
);
var i = 0;
var change = function() {
slides.style.backgroundImage = 'url("' + images[i] + '")';
};
你有沒有試過檢查編輯樣式與不同的相對路徑,看看你是否可以手動做到這一點?至少可以排除一個路徑/ CSS問題。 – inorganik