ในโครงการล่าสุด ฉันพบปัญหาเพื่อให้บรรลุผลนี้:
หลังจากคลิกรูปขนาดย่อของหน้า 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 พร้อมด้วยเนื้อหาต่อไปนี้:
ฟังก์ชัน ShowWindow (รหัส)
-
window.open('pic_all.aspx?ID=' + id,'_blank','Scrollbars=no');
-
รหัสต่อไปนี้สามารถทราบได้ว่าหลังจากคลิกภาพขนาดย่อ หน้า pic_all.aspx จะปรากฏขึ้นเพื่อแสดงข้อมูลภาพ สิ่งที่ต้องดำเนินการด้านล่างนี้คือหน้า pic_all.aspx จะปรับตามขนาดของภาพโดยอัตโนมัติ
วางโค้ดต่อไปนี้ระหว่าง <Head></Head> บนเพจ pic_all.aspx:
<script>
ฟังก์ชั่น 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 พิกเซล เนื่องจากต้องเว้นพื้นที่บางส่วนเพื่อใช้ข้อมูลคำอธิบายของรูปภาพ
ด้วยวิธีนี้ หน้าต่างป๊อปอัปสามารถปรับได้โดยอัตโนมัติตามขนาดของรูปภาพ และหน้าป๊อปอัปสามารถแก้ไขได้ตามต้องการ เนื่องจากหน้าป๊อปอัปเป็นหน้าที่กำหนดและไม่ว่าคุณต้องการอะไรก็ตาม หากต้องการแก้ไขคุณสามารถจัดการได้ตามปกติ
ขอขอบคุณ Bohu ที่ให้รหัสสำคัญสำหรับกระบวนการดำเนินการทั้งหมด หากไม่มีความช่วยเหลือจากเขา ฉันคงไม่สามารถดำเนินโครงการให้เสร็จสิ้นได้ในวันนี้ และฉันก็ไม่สามารถออกจากบริษัทปัจจุบันได้อย่างสบายใจ ขอขอบคุณจากใจจริงต่อเพื่อนทุกคนที่กระตือรือร้นในการช่วยเหลือผู้อื่น ซึ่งเป็นเหตุผลที่ฉันจะเขียนปัญหาทั้งหมดที่พบในโครงการโดยหวังว่าจะช่วยเหลือผู้คนได้มากขึ้น