چندین دستور onload در صفحه

3dsmax

Member
سلام دوستان

من یه تعداد عکس دارم، که می‌خوام یکی یکی لود بشن، یعنی اولی بیاد، بعد onload بشه صفحه، دوباره یکی دیگه ظاهر بشه و کامل لود بشه، دوباره یکی دیگه

ولی نمیدونم چطور می‌تونم چندین onload رو با هم به کار ببرم.

با تشکر
 

eAmin

Well-Known Member
در مرورگرهای استاندارد، رویداد onload برای عکسها هم قرار داده شده، یعنی شما میتونید عکس مورد نظر رو توسط dom بگیرید و هر وقت که عکس کامل لود بشه این رویداد به اجرا در میاد.
کد:
var img = document.getElementById("img1");
img.onload = function() {
	alert('loaded');
}
در مرورگرهای قدیمی هم مثل ie 8,7,6 به پایین هم از پراپرتی complete که برای image درنظر گرفته شده میتونید استفاده کنید. نحوه ی استفاده در لینک زیر آورده شده:
http://www.w3schools.com/jsref/prop_img_complete.asp
 

3dsmax

Member
مرسی ولی خیلی دیر جواب دادین، توی چندین سایت مختلف جستجو کردم، تا فهمیدم که دستور onload برای تصویر هم وجود داره،

ولی اون IE رو نمی‌دونستم، اون خوب بود، بازم دست گلت درد نکنه، بایی
 

i-php-i

Active Member
در مرورگرهای قدیمی هم مثل ie 8,7,6 به پایین هم از پراپرتی complete که برای image درنظر گرفته شده میتونید استفاده کنید. نحوه ی استفاده در لینک زیر آورده شده:
اگه از جی کوئری استفاده کنم نیاز هست که چنین کاری رو برای مرورگرهای ie انجام بدم؟
 

eAmin

Well-Known Member
در jQuery دقیقا مطمئن نیستم که متد load برای تگهای img در مرورگر ie پایینتر از 8 بدرستی کار میکنه یا خیر، ولی برای محکم کاری یک پلاگین جمع و جور برای این منظور ایجاد شده که میتونید از اون استفاده کنید:

کد:
// $('img.photo',this).imagesLoaded(myFunction)
// execute a callback when all images have loaded.
// needed because .load() doesn't work on cached images

// mit license. paul irish. 2010.
// webkit fix from Oren Solomianik. thx!

// callback function is passed the last image to load
//   as an argument, and the collection as `this`


$.fn.imagesLoaded = function(callback){
  var elems = this.filter('img'),
      len   = elems.length,
      blank = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
      
  elems.bind('load.imgloaded',function(){
      if (--len <= 0 && this.src !== blank){ 
        elems.unbind('load.imgloaded');
        callback.call(elems,this); 
      }
  }).each(function(){
     // cached images don't fire load sometimes, so we reset src.
     if (this.complete || this.complete === undefined){
        var src = this.src;
        // webkit hack from http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f
        // data uri bypasses webkit log warning (thx doug jones)
        this.src = blank;
        this.src = src;
     }  
  }); 

  return this;
};
 

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

بالا