2012-06-28 78 views
0

我有一個名爲'progressbar.png'的圖像。有沒有一種方法可以用PHP或Javascript修剪此圖像,每次頁面加載時圖像都會根據進度百分比進行裁剪並加載到頁面中。例如,如果圖像寬度爲200px,則進度爲25%時,圖像將裁剪爲只有50px寬。用PHP或Javascript修剪圖像

+1

有很多插件實際上是這樣的(http://docs.jquery.com/UI/Progressbar)已經 – Joseph

+1

不要裁剪,只需使用HTML div並用javascript改變寬度 – dukevin

+1

*什麼*的進展百分比? –

回答

3

製作div,將div的背景設置爲您的圖像,然後將div的寬度設置爲您想要的值。

HTML:

<div id="progressbar"></div> 

CSS:

#progressbar{ 
background:url(progressbar.png) top left; 
height:progressbarheightpx; 
} 

的Javascript:

document.getElementById('progressbar').style.width='50px' 

或者,它可能在PHP中通過簡單地直接打印寬度到div來完成:

<div id="progressbar" width="<?php echo $percent_done*200;?>px"></div> 
+3

設置背景比包裝img標籤更好。 – amsprich

0

裁剪服務器端(與PHP)將需要每次一個新文件的百分比變化的請求。

使用JavaScript修剪圖像可以通過使用<canvas>(請參閱Copy and crop images in Javascript)來完成,雖然這會造成巨大的開銷。

只要使用CSS,它有一些技巧只顯示一個元素的切口。請參閱CSS Display an Image Resized and CroppedClip images with HTML and CSSHow to show a region on a image with CSS

順便說一句:通常不需要爲進度條使用圖像。使用適當樣式的簡單DOM元素更容易,HTML5甚至提供<progress>標籤。見How to make a progress bar