javascript实现图片播放功能

// javascript实现图片播放功能
< style type = " text/css " >  
#imgp
float:left; margin:3px; width:405px; height:220px; text-align:center;}
#imgp img
{ border:10px solid #b4be99;}
</ style >

< table >
< tr >
< td >< div id = " imgp "   >
</ div ></ td >
</ tr >
</ table >
< div id = div2 ></ div >
播放速度:
& nbsp; < select name = " speedMenu "  onchange = " changeSpeed(this.selectedIndex); "  ID = " Select1 " >
< option value = " 0 " > 快速 </ option >
< option value = " 1 "  selected > 中速 </ option >
< option value = " 2 " > 慢速 </ option >
</ select >
< a href = " javascript:play() " > 放映 </ a >
< a href = " javascript:stop() " > 停止 </ a >
< a href = " javascript:setButton(0); rewind(); " > 上一张 </ a >
< a href = " javascript:setButton(1); forward(); " > 下一张 </ a >
< script language = " javascript " >
<!--
var  imageIDsArray  =   new  Array( ' 4942182 ' , ' 4942181 ' , ' 4942180 ' );
var  imageSrcArray  =   new  Array( ' http://photo2.hexun.com/p/2006/0602/24710/b_211317F94CF6C932.jpg ' , ' http://photo2.hexun.com/p/2006/0602/24710/b_3C4067CEE679E853.jpg ' , ' http://photo2.hexun.com/p/2006/0602/24710/b_C5811785E17E0B1D.jpg ' );
var  imageNameArray  =   new  Array( ' 留下青春与幸福1 ' , ' 留下青春与幸福2 ' , ' 留下青春与幸福3 ' );
var  imageWidthArray  =   new  Array( ' 600 ' , ' 449 ' , ' 467 ' );
var  imageHeightArray  =   new  Array( ' 495 ' , ' 480 ' , ' 700 ' );
var  SHOWINGSTRING = ' 第%slideNum / 3张 ' ;
var  numImgs  =   3 ;
var  blogName = ' beauty9235 ' ;
var  arrPreload  =   new  Array();
var  begImg   =   0 ;
var  arrPreload  =   new  Array();                   
var  spd  =   2 ;
function  init()
{
preloadRange(
0,_PRELOADRANGE-1);
curImg 
= begImg;
if (curImg < 0 || curImg > numImgs - 1)
curImg 
= numImgs - 1;
changeSlide();
setTimeout(
"play()"4000)
}


var  curImg  =   0 ;
var  timerId  =   - 1 ;
var  interval  =   3500 ;
var  imgIsLoaded  =   false ;

var  current_transition  =   15 ;
var  flag  =   true ;
var  bFirst  =   false ;

var  agt = navigator.userAgent.toLowerCase();
//  Note: On IE5, these return 4, so use is_ie5up to detect IE5.
var  is_major  =  parseInt(navigator.appVersion);
var  is_minor  =  parseFloat(navigator.appVersion);

//  Note: Opera and WebTV spoof Navigator.  We do strict client detection.
//
 If you want to allow spoofing, take out the tests for opera and webtv.

var  is_nav   =  ((agt.indexOf( ' mozilla ' ) !=- 1 &&  (agt.indexOf( ' spoofer ' ) ==- 1 )
&&  (agt.indexOf( ' compatible ' ==   - 1 &&  (agt.indexOf( ' opera ' ) ==- 1 )
&&  (agt.indexOf( ' webtv ' ) ==- 1 &&  (agt.indexOf( ' hotjava ' ) ==- 1 ));
var  is_nav2  =  (is_nav  &&  (is_major  ==   2 ));
var  is_nav3  =  (is_nav  &&  (is_major  ==   3 ));
var  is_nav4  =  (is_nav  &&  (is_major  ==   4 ));
var  is_nav4up  =  (is_nav  &&  (is_major  >=   4 ));
var  is_navonly       =  (is_nav  &&  ((agt.indexOf( " ;nav " !=   - 1 ||
      (agt.indexOf(
" ; nav " !=   - 1 )) );
var  is_nav6  =  (is_nav  &&  (is_major  ==   5 ));
var  is_nav6up  =  (is_nav  &&  (is_major  >=   5 ));
var  is_gecko  =  (agt.indexOf( ' gecko ' !=   - 1 );


var  is_ie      =  ((agt.indexOf( " msie " !=   - 1 &&  (agt.indexOf( " opera " ==   - 1 ));
var  is_ie3     =  (is_ie  &&  (is_major  <   4 ));
var  is_ie4     =  (is_ie  &&  (is_major  ==   4 &&  (agt.indexOf( " msie 4 " ) !=- 1 ) );
var  is_ie4up   =  (is_ie  &&  (is_major  >=   4 ));
var  is_ie5     =  (is_ie  &&  (is_major  ==   4 &&  (agt.indexOf( " msie 5.0 " ) !=- 1 ) );
var  is_ie5_5   =  (is_ie  &&  (is_major  ==   4 &&  (agt.indexOf( " msie 5.5 " !=- 1 ));
var  is_ie5up   =  (is_ie  &&   ! is_ie3  &&   ! is_ie4);
var  is_ie5_5up  = (is_ie  &&   ! is_ie3  &&   ! is_ie4  &&   ! is_ie5);
var  is_ie6     =  (is_ie  &&  (is_major  ==   4 &&  (agt.indexOf( " msie 6. " ) !=- 1 ) );
var  is_ie6up   =  (is_ie  &&   ! is_ie3  &&   ! is_ie4  &&   ! is_ie5  &&   ! is_ie5_5);

//  KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
//
 or if this is the first browser window opened.  Thus the
//
 variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.
var  is_aol    =  (agt.indexOf( " aol " !=   - 1 );
var  is_aol3   =  (is_aol  &&  is_ie3);
var  is_aol4   =  (is_aol  &&  is_ie4);
var  is_aol5   =  (agt.indexOf( " aol 5 " !=   - 1 );
var  is_aol6   =  (agt.indexOf( " aol 6 " !=   - 1 );

var  is_opera  =  (agt.indexOf( " opera " !=   - 1 );
var  is_opera2  =  (agt.indexOf( " opera 2 " !=   - 1   ||  agt.indexOf( " opera/2 " !=   - 1 );
var  is_opera3  =  (agt.indexOf( " opera 3 " !=   - 1   ||  agt.indexOf( " opera/3 " !=   - 1 );
var  is_opera4  =  (agt.indexOf( " opera 4 " !=   - 1   ||  agt.indexOf( " opera/4 " !=   - 1 );
var  is_opera5  =  (agt.indexOf( " opera 5 " !=   - 1   ||  agt.indexOf( " opera/5 " !=   - 1 );
var  is_opera5up  =  (is_opera  &&   ! is_opera2  &&   ! is_opera3  &&   ! is_opera4);

var  is_webtv  =  (agt.indexOf( " webtv " !=   - 1 ); 

var  is_TVNavigator  =  ((agt.indexOf( " navio " !=   - 1 ||  (agt.indexOf( " navio_aoltv " !=   - 1 )); 
var  is_AOLTV  =  is_TVNavigator;

var  is_hotjava  =  (agt.indexOf( " hotjava " !=   - 1 );
var  is_hotjava3  =  (is_hotjava  &&  (is_major  ==   3 ));
var  is_hotjava3up  =  (is_hotjava  &&  (is_major  >=   3 ));

//  *** JAVASCRIPT VERSION CHECK ***
var  is_js;
if  (is_nav2  ||  is_ie3) is_js  =   1.0 ;
else   if  (is_nav3) is_js  =   1.1 ;
else   if  (is_opera5up) is_js  =   1.3 ;
else   if  (is_opera) is_js  =   1.1 ;
else   if  ((is_nav4  &&  (is_minor  <=   4.05 ))  ||  is_ie4) is_js  =   1.2 ;
else   if  ((is_nav4  &&  (is_minor  >   4.05 ))  ||  is_ie5) is_js  =   1.3 ;
else   if  (is_hotjava3up) is_js  =   1.4 ;
else   if  (is_nav6  ||  is_gecko) is_js  =   1.5 ;
//  NOTE: In the future, update this code when newer versions of JS
//
 are released. For now, we try to provide some upward compatibility
//
 so that future versions of Nav and IE will show they are at
//
 *least* JS 1.x capable. Always check for JS version compatibility
//
 with > or >=.
else   if  (is_nav6up) is_js  =   1.5 ;
//  NOTE: ie5up on mac is 1.4
else   if  (is_ie5up) is_js  =   1.3

//  HACK: no idea for other browsers; always check for JS version with > or >=
else  is_js  =   0.0 ;

//  *** PLATFORM ***
var  is_win    =  ( (agt.indexOf( " win " ) !=- 1 ||  (agt.indexOf( " 16bit " ) !=- 1 ) );
//  NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all
//
        Win32, so you can't distinguish between Win95 and WinNT.
var  is_win95  =  ((agt.indexOf( " win95 " ) !=- 1 ||  (agt.indexOf( " windows 95 " ) !=- 1 ));

//  is this a 16 bit compiled version?
var  is_win16  =  ((agt.indexOf( " win16 " ) !=- 1 ||  
(agt.indexOf(
" 16bit " ) !=- 1 ||  (agt.indexOf( " windows 3.1 " ) !=- 1 ||  
(agt.indexOf(
" windows 16-bit " ) !=- 1 ) );  

var  is_win31  =  ((agt.indexOf( " windows 3.1 " ) !=- 1 ||  (agt.indexOf( " win16 " ) !=- 1 ||
(agt.indexOf(
" windows 16-bit " ) !=- 1 ));

var  is_winme  =  ((agt.indexOf( " win 9x 4.90 " ) !=- 1 ));
var  is_win2k  =  ((agt.indexOf( " windows nt 5.0 " ) !=- 1 ));

//  NOTE: Reliable detection of Win98 may not be possible. It appears that:
//
       - On Nav 4.x and before you'll get plain "Windows" in userAgent.
//
       - On Mercury client, the 32-bit version will return "Win98", but
//
         the 16-bit version running on Win98 will still return "Win95".
var  is_win98  =  ((agt.indexOf( " win98 " ) !=- 1 ||  (agt.indexOf( " windows 98 " ) !=- 1 ));
var  is_winnt  =  ((agt.indexOf( " winnt " ) !=- 1 ||  (agt.indexOf( " windows nt " ) !=- 1 ));
var  is_win32  =  (is_win95  ||  is_winnt  ||  is_win98  ||  
((is_major 
>=   4 &&  (navigator.platform  ==   " Win32 " ))  ||
(agt.indexOf(
" win32 " ) !=- 1 ||  (agt.indexOf( " 32bit " ) !=- 1 ));

var  is_os2    =  ((agt.indexOf( " os/2 " ) !=- 1 ||  
(navigator.appVersion.indexOf(
" OS/2 " ) !=- 1 ||    
(agt.indexOf(
" ibm-webexplorer " ) !=- 1 ));

var  is_mac     =  (agt.indexOf( " mac " ) !=- 1 );
//  hack ie5 js version for mac
if  (is_mac  &&  is_ie5up) is_js  =   1.4 ;
var  is_mac68k  =  (is_mac  &&  ((agt.indexOf( " 68k " ) !=- 1 ||  
           (agt.indexOf(
" 68000 " ) !=- 1 )));
var  is_macppc  =  (is_mac  &&  ((agt.indexOf( " ppc " ) !=- 1 ||  
            (agt.indexOf(
" powerpc " ) !=- 1 )));

var  is_sun    =  (agt.indexOf( " sunos " ) !=- 1 );
var  is_sun4   =  (agt.indexOf( " sunos 4 " ) !=- 1 );
var  is_sun5   =  (agt.indexOf( " sunos 5 " ) !=- 1 );
var  is_suni86 =  (is_sun  &&  (agt.indexOf( " i86 " ) !=- 1 ));
var  is_irix   =  (agt.indexOf( " irix " !=- 1 );     //  SGI
var  is_irix5  =  (agt.indexOf( " irix 5 " !=- 1 );
var  is_irix6  =  ((agt.indexOf( " irix 6 " !=- 1 ||  (agt.indexOf( " irix6 " !=- 1 ));
var  is_hpux   =  (agt.indexOf( " hp-ux " ) !=- 1 );
var  is_hpux9  =  (is_hpux  &&  (agt.indexOf( " 09. " ) !=- 1 ));
var  is_hpux10 =  (is_hpux  &&  (agt.indexOf( " 10. " ) !=- 1 ));
var  is_aix    =  (agt.indexOf( " aix " !=- 1 );       //  IBM
var  is_aix1   =  (agt.indexOf( " aix 1 " !=- 1 );    
var  is_aix2   =  (agt.indexOf( " aix 2 " !=- 1 );    
var  is_aix3   =  (agt.indexOf( " aix 3 " !=- 1 );    
var  is_aix4   =  (agt.indexOf( " aix 4 " !=- 1 );    
var  is_linux  =  (agt.indexOf( " inux " ) !=- 1 );
var  is_sco    =  (agt.indexOf( " sco " ) !=- 1 ||  (agt.indexOf( " unix_sv " ) !=- 1 );
var  is_unixware  =  (agt.indexOf( " unix_system_v " ) !=- 1 ); 
var  is_mpras     =  (agt.indexOf( " ncr " ) !=- 1 ); 
var  is_reliant   =  (agt.indexOf( " reliantunix " ) !=- 1 );
var  is_dec    =  ((agt.indexOf( " dec " ) !=- 1 ||  (agt.indexOf( " osf1 " ) !=- 1 ||  
(agt.indexOf(
" dec_alpha " ) !=- 1 ||  (agt.indexOf( " alphaserver " ) !=- 1 ||  
(agt.indexOf(
" ultrix " ) !=- 1 ||  (agt.indexOf( " alphastation " ) !=- 1 )); 
var  is_sinix  =  (agt.indexOf( " sinix " ) !=- 1 );
var  is_freebsd  =  (agt.indexOf( " freebsd " ) !=- 1 );
var  is_bsd  =  (agt.indexOf( " bsd " ) !=- 1 );
var  is_unix   =  ((agt.indexOf( " x11 " ) !=- 1 ||  is_sun  ||  is_irix  ||  is_hpux  ||  
is_sco 
|| is_unixware  ||  is_mpras  ||  is_reliant  ||  
is_dec 
||  is_sinix  ||  is_aix  ||  is_linux  ||  is_bsd  ||  is_freebsd);

var  is_vms    =  ((agt.indexOf( " vax " ) !=- 1 ||  (agt.indexOf( " openvms " ) !=- 1 ));
//  - IE5.5 and up can do the blending transition.
var  browserCanBlend  =  (is_ie5_5up);
/* show the blend select if appropriate */
var  transitions  =   new  Array;
transitions[
0 =   " progid:DXImageTransform.Microsoft.Fade(duration=1) " ;
transitions[
1 =   " progid:DXImageTransform.Microsoft.Blinds(Duration=1,bands=20) " ;
transitions[
2 =   " progid:DXImageTransform.Microsoft.Checkerboard(Duration=1,squaresX=20,squaresY=20) " ;
transitions[
3 =   " progid:DXImageTransform.Microsoft.Strips(Duration=1,motion=rightdown) " ;
transitions[
4 =   " progid:DXImageTransform.Microsoft.Barn(Duration=1,orientation=vertical) " ;
transitions[
5 =   " progid:DXImageTransform.Microsoft.GradientWipe(duration=1) " ;
transitions[
6 =   " progid:DXImageTransform.Microsoft.Iris(Duration=1,motion=out) " ;
transitions[
7 =   " progid:DXImageTransform.Microsoft.Wheel(Duration=1,spokes=12) " ;
transitions[
8 =   " progid:DXImageTransform.Microsoft.Pixelate(maxSquare=10,duration=1) " ;
transitions[
9 =   " progid:DXImageTransform.Microsoft.RadialWipe(Duration=1,wipeStyle=clock) " ;
transitions[
10 =   " progid:DXImageTransform.Microsoft.RandomBars(Duration=1,orientation=vertical) " ;
transitions[
11 =   " progid:DXImageTransform.Microsoft.Slide(Duration=1,slideStyle=push) " ;
transitions[
12 =   " progid:DXImageTransform.Microsoft.RandomDissolve(Duration=1,orientation=vertical) " ;
transitions[
13 =   " progid:DXImageTransform.Microsoft.Spiral(Duration=1,gridSizeX=40,gridSizeY=40) " ;
transitions[
14 =   " progid:DXImageTransform.Microsoft.Stretch(Duration=1,stretchStyle=push) " ;
transitions[
15 =   " special case " ;
var  transition_count  =   15 ;

var  arrPreload  =   new  Array();
var  _PRELOADRANGE  =   5 ;

function  change_transition() 
{
current_transition 
= document.all.transitionType.selectedIndex;
//alert(current_transition);
if(current_transition == 0)
current_transition 
= 15;
else
current_transition
--;
}



function  changeSpeed(sidx)
{
switch (sidx) 
{
case 0: interval = 2000break;
case 1: interval = 4000break;
case 2: interval = 6000break;
default: interval = 4000;
}

if (timerId != -1
{
window.clearInterval(timerId);
timerId 
= window.setInterval("forward();", interval);
}

}



var  arrPreload  =   new  Array();
var  _PRELOADRANGE  =   5 ;




function  preloadRange(intPic,intRange)  {
var divStr = "";
for (var i=intPic; i<(intPic+intRange); i++{
arrPreload[i] 
= new Image();
arrPreload[i].src 
= imageSrcArray[i];    
}
 

if(!bFirst)
{
if (browserCanBlend) 
{
var divTrans = '<select name="transitionType" size=1  οnchange="change_transition()" class="list1" ><option value=15 selected>随机显示</option> <option value=0 >混合效果</option> <option value=1 >百叶窗</option> <option value=2 >棋盘效果</option> <option value=3 >斜式效果</option> <option value=4 >开门见山</option> <option value=5 >擦除效果</option> <option value=6 >虹式效果</option> <option value=7 >风车效果</option> <option value=8 >波纹荡漾</option> <option value=9 >时钟转动</option> <option value=10 >雨丝效果</option> <option value=11 >滑动方式</option> <option value=12 >雪花显示</option> <option value=13 >盘旋收缩</option> <option value=14 >伸展方式</option> </select> ';
document.getElementById(
"div2").innerHTML = divTrans;
}

bFirst 
= true;
}

return false;
}


function  ScaleImage(i)
{
var iAvailableWidth = 400;//span.clientWidth;;
var iAvailableHeight = 215;//span.clientHeight;
iFullImageWidth = imageWidthArray[i];
iFullImageHeight 
= imageHeightArray[i];
var flScale = Math.min(    1,Math.min((iAvailableWidth /iFullImageWidth),(iAvailableHeight /iFullImageHeight)));
var width = iScaledImageWidth = Math.round(iFullImageWidth * flScale);
var height = iScaledImageHeight = Math.round(iFullImageHeight * flScale);
var style="style='HEIGHT: "+height+"; WIDTH: "+width+";'";
return style;
}

function  imgLoadNotify()
{
imgIsLoaded 
= true;
}



function  changeSlide(n)
{    
if (document.all)
{        
/* transistion effects */
if (browserCanBlend)
{
var do_transition;
if (current_transition == (transition_count)) 
{
do_transition 
= Math.floor(Math.random() * transition_count);
}
 
else 
{
do_transition 
= current_transition;
}

document.all.imgp.style.filter
=transitions[do_transition];
document.all.imgp.filters[
0].Apply();            
}

else
{
document.all.imgp.style.filter
="blendTrans(duration=1)";
document.all.imgp.filters.blendTrans.Apply();
}


}


imgIsLoaded 
= false;
var s = ScaleImage(curImg);

var htmlCont = "<a href='http://"+blogName+".photo.hexun.com"+"/"+imageIDsArray[curImg]+"_d.html' target=_blank title='点击查看图片详细信息'><img align=middle  src='" + imageSrcArray[curImg] + "' οnlοad='imgLoadNotify();' "+s+" ></a><br>"+imageNameArray[curImg];
document.getElementById(
"imgp").innerHTML = htmlCont;
if (document.all) 
{            
document.all.imgp.filters[
0].Play();        

}


}


function  forward()
{
imgIsLoaded 
= false;

if (!arrPreload[curImg+1])
{
curImg
++;
if (curImg >= numImgs) 

curImg 
= 0;

}
 
}
 
else 
{
curImg
++;
if (curImg >= numImgs) 
{  
curImg 
= 0;
}

}

changeSlide();
}


function  rewind()
{
curImg
--;
if (curImg < 0)
{
curImg 
= numImgs-1;        
}

changeSlide();
}


function  stop()
{
window.clearInterval(timerId);
timerId 
= -1;
imgIsLoaded 
= true;
}


function  play()
{
if (timerId == -1
timerId 
= window.setInterval('forward();', interval);
}


function  setButton(direction)
{
if (timerId != -1{ window.clearInterval(timerId); timerId = window.setInterval("forward();", interval); }
imgIsLoaded 
= true;
}

// -->
</ script >
< script language = " javascript " > init(); </ script >
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jquery 图片播放器插件 作者:笑的自然 我的博客:http://blog.csdn.net/xxd851116 我的邮箱: xingxiudong@gmail.com 下载: 项目地址:http://code.google.com/p/imgplayer/ 历史下载: http://code.google.com/p/imgplayer/downloads/list jquery.fn.imgplayer.js最新下载地址:http://imgplayer.googlecode.com/svn/trunk/imgplayer/src/jquery.fn.imgplayer.js jquery.fn.imgplayer.min.js最新下载地址:http://imgplayer.googlecode.com/svn/trunk/imgplayer/src/jquery.fn.imgplayer.min.js 说明: 1. 项目编码为GBK 2. 目前播放模式支持 1:溶解,2:挂历模式,3:滑动(从左到右),4:滑动(从上到下),5:滑动(从下到上),6:滑动(从右到左),善不支持随机模式 3. 在IE6,IE8,FF下测试通过 4. 支持任意数量图片,使用简单 5. 考虑到图片占用空间较多,示例中图片来自网络,离线状态下需要自定义图片 由于采用纯JavaScript实现,动画效果比较简单,目前善不支持随机播放模式,希望广大编程爱好者提出建议和不足。 参数: imgCSS : 用户自定义图片样式 transition : 播放模式选项 1:溶解,2:挂历模式,3:滑动(从左到右),4:滑动(从上到下),5:滑动(从下到上),6:滑动(从右到左),23:随机 width : 播放器div容器的宽度 height : 播放器div容器的高度 time : 图片播放间隙时间,单位:毫秒 duration : 图片播放时间,单位:毫秒 onStart : 开始播放时执行的函数 onStop : 停止播放时执行的函数 onShow : 每页图片显示时执行的函数 onHide : 每页图片隐藏时执行的函数 使用示例: 1. 容器代码 <div id="imgContainer" style="margin-left:auto;margin-right:auto;margin-top:5px;display:none;"> <a href="" target="_blank" title=""><img src="" title="" /></a> ...... </div> 2. 导入jquery包(http://code.jquery.com/jquery-1.4.2.min.js) <script type="text/javascript" src="jquery-1.4.2.min.js"></script> 3. 导入imgplayer插件(http://imgplayer.googlecode.com/svn/trunk/imgplayer/src/jquery.fn.imgplayer.min.js) <script type="text/javascript" src="jquery.fn.imgplayer.min.js"></script> 4. 绑定播放函数(参数说明详见上述) var player = $("#imgContainer").playImgs({ imgCSS : {'width' : '800px', 'height' : '600px'}, width : '800px', height: '600px', time : '5000', transition : 1, duration : 2000 }).start(); 更新日志: v1.2(2010-02-24): 1.修改了标题栏右侧冲出容器的bug 2.添加了duration参数,可自定义图片动画效果时间 v1.1(2009-09-23): 1.修改了鼠标停留播放器和序号标签上图片继续播放的问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值