在最近的專案中,遇到一個問題,要實現這樣的效果:
點pic_small.Aspx頁面的縮圖後彈出pic_all.aspx頁面,pic_all.aspx頁面的大小要根據圖片大小自動調整,而且要有圖片的說明信息,還可以點上一幅和下一幅等進行翻頁。
實現過程如下:
pic_small.Aspx頁面縮圖處的程式碼為:
<IMG id="imgPic" style="CURSOR: hand" border=0 height="95" onclick="ShowWindow(<%#DataBinder.Eval(Container.DataItem,"ID")%>)" src='< %#"Images/Product/" + DataBinder.Eval(Container.DataItem,"PicUrl")%>' width="118" runat="server">
ShowWindow儲存於OpenWindows.js檔案中,內容如下:
function ShowWindow( id)
{
window.open('pic_all.aspx?ID=' + id,'_blank','Scrollbars=no');
}
以下程式碼即可實現點縮圖後彈出頁面pic_all.aspx顯示圖片訊息,以下要實現的是pic_all.aspx頁面根據圖片的大小自動調整。
將以下程式碼放在pic_all.aspx頁面的<Head></Head>之間:
<script>
function window.onload()
{
var obj=document.getElementById("PicUrl");
window.resizeTo(obj.offsetWidth + 127,obj.offsetHeight + 75);
}
</script>
這裡的PicUrl是頁面pic_all.aspx中用來顯示原圖大小的,我用的是html控件,無論你用什麼方法,反正就是要從資料庫中讀出圖片的名稱或是路徑了。
obj.offsetWidth 得到的就是顯示出來的原圖的寬了,obj.offsetWidth + 127表示窗口在圖片的寬度基礎上再大127像素,因為要留一些空間用來實現圖片的說明信息。
這樣就可以實現彈出來的視窗既可以根據圖片大小自動調整,而且又可以隨意編輯彈出來的頁面,因為彈出來的頁面是一個指定頁面,無論要編輯什麼,都可以和平時處理頁面一樣處理了。
感謝伯虎提供整個實現過程的關鍵代碼,要不是他的幫忙,今天我就完不成項目了,也就沒有辦法安心離開現在的公司了,在此對每一個熱心幫助別人的朋友表示衷心的感謝,這就是為什麼我會把專案中遇到的問題都寫出來的原因,希望能給更多人一些幫助。