在最近的項目中,遇到一個問題,要實現這樣的效果:
點pic_small.Aspx頁面的縮略圖後彈出pic_all.aspx頁面,pic_all.ASPx頁面的大小要根據圖片大小自動調整,而且要有圖片的說明信息,還可以點上一幅和下一幅等進行翻頁。
實現過程如下:
pic_small.ASPx頁面縮略圖處的代碼為:
<IMG id="imgPic" 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像素,因為要留一些空間用來實現圖片的說明信息。
這樣就可以實現彈出來的窗口既可以根據圖片大小自動調整,而且又可以隨意編輯彈出來的頁面,因為彈出來的頁面是一個指定頁面,無論要編輯什麼,都可以和平時處理頁面一樣處理了。
感謝 伯虎 提供整個實現過程的關鍵代碼,要不是他的幫忙,今天我就完不成項目了,也就沒有辦法安心離開現在的公司了,在此對每一個熱心幫助別人的朋友表示衷心的感謝,這就是為什麼我會把項目中遇到的問題都寫出來的原因,希望能給更多人一些幫助。