ساخت لودینگ برای نمایش محتویات یک div

beh.tehrani

New Member
سلام

لطفا کد زیر را نگاه کنید.

HTML:
<html dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<script language=javascript type='text/javascript'> 
function hidediv() { 
if (document.getElementById) { // DOM3 = IE5, NS6 
document.getElementById('hideshow').style.visibility = 'hidden'; 
document.getElementById('hideshow').style.display = 'none'; 
} 
else { 
if (document.layers) { // Netscape 4 
document.hideshow.visibility = 'hidden'; 
} 
else { // IE 4 
document.all.hideshow.style.visibility = 'hidden';
} 
} 
} 
function showdiv() { 
if (document.getElementById) { // DOM3 = IE5, NS6 
document.getElementById('hideshow').style.visibility = 'visible'; 
document.getElementById('hideshow').style.display = 'block'; 
} 
else { 
if (document.layers) { // Netscape 4 
document.hideshow.visibility = 'visible'; 
} 
else { // IE 4 
document.all.hideshow.style.visibility = 'visible'; 
} 
} 
} 
</script> 
</head>
<body>
<a href="javascript:hidediv()">Hide div</a>
<a href="javascript:showdiv()">show div</a> 
<img src="http://i.microsoft.com/global/En/us/PublishingImages/SLWindowPane/en-us_MAR_16-17_F.jpg">
</body>
</html>

وقتی شما این صفحه را باز می کنید دو گزینه مشاهده می کنید که یکی show div و دیگری hide div است.

وقتی شما گزینه show div را کلیک می کنید تصویری در آن به نمایش گذاشته می شود. البته می توان بجای تصویر متنی را نیز تعیین نمود. فرقی نمی کند ولی با گذاشتن عکس بهتر می توانم منظورم را بیان کنم.

وقتی کلا شما این صفحه را که کد آن را در بالا گذاشته ام را باز می کنید بدون آنکه هنوز گزینه show div را کلیک می کنید. تصویر در همان ابتدا بارگذاری می شود. حال اگر متن باشد نیز همینطور است. اما ما می خواهیم که وقتی بروی گزینه show div کلیک می شود تازه عکس برود و بارگذاری شود و یا متن. نه اینکه هنوز کلیک نشده این اتفاق بیفتد که باعث شود سرعت صفحه کم شود.

لطفا این کد را به روشی که درخواست نمودم تغییر دهید تا عملکرد آن همانگونه شود که عرض کردم.
اگر بتوانید با کد زیر یک لودینگ نمایشی برای زمانی که وقتی روی show div کلیک می شود تا بخواهد مقادیر متنی یا تصویری ما را لود کند نمایش داده شود بهتر نیز می شود.

کد لوینگ:

HTML:
<SCRIPT> 
var DHTML = (document.getElementById || document.all || document.layers); 
function ap_getObj(name) 
{ 
if (document.getElementById) 
{ 
return document.getElementById(name).style; 
} 
else if (document.all) 
{ 
return document.all[name].style; 
} 
else if (document.layers) 
{ 
return document.layers[name]; 
} 
} 
function ap_showWaitMessage(div,flag) 
{ 
if (!DHTML) return; 
var x = ap_getObj(div); 
x.visibility = (flag) ? 'visible':'hidden' 
if(! document.getElementById) 
if(document.layers) 
x.left=280/2; 
return true; 
} 
 </SCRIPT>

<div style="display:none;" id="hideshow"> 
<!--AJAX LOADING -->
<div id="waitDiv" style="border: 1px dotted silver ; POSITION:absolute;TOP: 261px;RIGHT:536px;TEXT-ALIGN:center; visibility:hidden; width:200; background-color:white"  padding-left:4px; padding-right:4px; padding-top:1px; padding-bottom:1px>
 <tr>
 <td align="middle"> </td>
 <p dir="rtl" style="margin-top: 5">
 <font color="#FFFFFF" face="Tahoma"><span lang="fa" style="letter-spacing: 1px">
 <font color="gray" style="font-size: 8.5pt; text-decoration:none">صفحه در حال بارگذاری است!<br>
 لطفا کمی صبر کنيد...</font></span></font></p>
 <table cellpadding="0" border="0">
  <tr>
   <td align="middle">
   <img alt="... Please wait" src="loading.gif" width="30" height="30" border="0">
   
   </td>
  </tr>
 </table>
</div> 
  
<SCRIPT> 
  ap_showWaitMessage('waitDiv', 1); 
</SCRIPT>
<!--AJAX LOADING -->
 
<SCRIPT>  ap_showWaitMessage('waitDiv', 0);   </SCRIPT>
</div>

با تشکر از شما
 

foranyone

Well-Known Member
کد تون رو نگاه کردم به نظرم بهتره کد بالا رو بی خیال شین و از Jquery استفاده کنید :

امیدورام این 2 تا فایل کمکتون کنه :

یکی برای جمع کردن یه div و دیگری برای لود تصویر :
 

پیوست ها

  • pic load.zip
    69.6 کیلوبایت · بازدیدها: 43
  • effects.zip
    30.5 کیلوبایت · بازدیدها: 32

جدیدترین ارسال ها

بالا