国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JQuery slideshow的一個小問題(如何發現及解決過程)

2024-05-06 14:19:40
字體:
來源:轉載
供稿:網友
第一階段,試用slideshow
在做一個網頁homepage的時候,想用slideshow[1]做圖片切換效果,其中js部分代碼如下:
代碼如下:
function next_slide() {
  var $active = $('#bitware-overlay img.active');
  if ($active.length == 0)
    $active = $('#bitware-overlay img:last');
  var $next = $active.next().length ? $active.next() : $('#bitware-overlay img:first');
  $active.addClass('last-active');
  $next.addClass('active');
  $next.css({opacity: 0.0});
  $next.animate({opacity: 1.0}, 1500,function(){
    $active.removeClass();
  });
}
$(function() {
  setInterval("next_slide()", 4000);
});

第二階段,發現問題
在打開頁面所以的正常測試都沒問題,最后領導發現,當瀏覽器同時打開多個tab,停留他tab中的頁面一段時間后,會出現圖片是最后一張圖片,然后變化為第一張圖片,剛變化(有淡入的的效果)完成,就突然跳轉到最后一張圖片。當我改為:
代碼如下:
function next_slide() {
  var $active = $('#bitware-overlay img.active');
  if ($active.length == 0)
    $active = $('#bitware-overlay img:last');
  var $next = $active.next().length ? $active.next() : $('#bitware-overlay img:first');
  $active.addClass('last-active');
  $next.addClass('active');
  $next.css({opacity: 0.0});
  $next.animate({opacity: 1.0}, 1500);
  $active.removeClass();
  setTimeout("next_slide()", 4000);
}
$(function() {
  setTimeout("next_slide()", 4000);
});

發現停留在其它tab后,回到頁面時,圖片顯示的順序正確,間隔時間也正確,4000毫秒,但是顯示出來的時候,是直接跳轉式,也不是淡出形狀,似乎animate的1500毫秒沒有啟動任何效果。過一段時間會恢復正常,但是這種現象的時間長短,跟停留在別的tab時間長短似乎成正比。
第三階段,解決問題
最后發現原因,是因為jquery的本質是單線程[2],當停留在別的tab中,任務中將next_silde()函數積壓過多所致。最后找到的解決方案[4]如下:
代碼如下:
function next_slide() {
  var $active = $('#bitware-overlay img.active');
  if ($active.length == 0)
    $active = $('#bitware-overlay img:last');
  var $next = $active.next().length ? $active.next() : $('#bitware-overlay img:first');
  $active.addClass('last-active');
  $next.addClass('active');
  $next.css({opacity: 0.0});
  $next.animate({opacity: 1.0}, 1500,function(){
  $active.removeClass();
    setTimeout("next_slide()", 4000);
  });
}
$(function() {
  setTimeout("next_slide()", 4000);
});
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 浪卡子县| 友谊县| 周口市| 铜山县| 滁州市| 保靖县| 黔西| 慈溪市| 南岸区| 松阳县| 江津市| 建德市| 监利县| 丹巴县| 周至县| 平武县| 儋州市| 扎赉特旗| 安吉县| 克山县| 迁安市| 钦州市| 河津市| 江城| 五台县| 封丘县| 施秉县| 新晃| 涿鹿县| 岢岚县| 鲜城| 佛教| 澄城县| 崇义县| 包头市| 山东省| 通海县| 大余县| 大同市| 庆城县| 巴马|