Web前端-JS效果-图片自动获取焦点与切换

    xiaoxiao2021-03-26  11

    一个自动获取图片焦点,并定时切换的代码: 此图镇楼:

    1.html代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>JS焦点幻灯代码 </title> <script type="text/javascript" src="js/js1.js"></script> <link rel="stylesheet" href="css/base.css" /> <style type="text/css"> #ifocus { width:500px; height:266px;margin:0 auto;border:1px solid #DEDEDE; background:#F8F8F8; } #ifocus_pic { display:inline; position:relative; float:left; width:400px; height:266px; overflow:hidden; } #ifocus_piclist { position:absolute; } #ifocus_piclist li { width:400px; height:266px; overflow:hidden; } #ifocus_piclist img { width:400px; height:266px; margin: 0 auto;} #ifocus_btn { display:inline; float:left; width:99px;margin-right:1px ;} #ifocus_btn li { width:98px; height:53px; cursor:pointer; opacity:0.5; -moz-opacity:0.5; filter:alpha(opacity=50); } #ifocus_btn img { width:98px; height:53px; } #ifocus_btn .current {opacity:1; -moz-opacity:1; filter:alpha(opacity=100); } #ifocus_opdiv { position:absolute; left:0; bottom:0; width:410px; height:35px; background:#000; opacity:0.5; -moz-opacity:0.5; filter:alpha(opacity=50); } #ifocus_tx { position:absolute; left:8px; bottom:8px; color:#FFF; } #ifocus_tx .normal { display:none; } </style> <script type="text/javascript"> </script> </head> <body> <!--本真人解析开始,这个是一个居中的div盒子--> <div align="center"> <!--一个背景为浅灰色的div盒子--> <div id="ifocus"> <!--获取焦点时的图片,这个盒子命名真够糟的!应该是左边部分--> <div id="ifocus_pic"> <!--图片列表:轮播的图片--> <div id="ifocus_piclist" style="left:0; top:0;"> <ul> <li><img src="img/p1.png"/></li> <li><img src="img/p2.jpg"/></li> <li><img src="img/p3.jpg"/></li> <li><img src="img/p4.jpg"/></li> <li><img src="img/p5.jpg"/></li> </ul> </div> <!--下面那一块黑色的阴影!--> <div id="ifocus_opdiv"></div> <!--阴影中的列表文字:每张图片上固定,故图片切换,文字看起来也是切换!--> <div id="ifocus_tx"> <ul> <li class="current">a1:你瞅啥!</li> <li class="normal">b2:瞅你咋地!</li> <li class="normal">c3:你有病吧!</li> <li class="normal">d4:你有药吧!</li> <li class="normal">e5:你吃多少!</li> </ul> </div> </div> <!--右边:鼠标放上去有突起来样子的小图片!--> <div id="ifocus_btn"> <ul> <!--都是采用列表啊,练浮动都省了--> <li class="current" style="margin-top:0px;"><img src="img/pp1.jpg"/></li> <li class="normal"><img src="img/pp2.jpg" /></li> <li class="normal"><img src="img/pp3.jpg"/></li> <li class="normal"><img src="img/pp4.jpg"/></li> <li class="normal"><img src="img/pp5.jpg" /></li> </ul> </div> </div> </div> </body> </html>

    JS代码:

    //用JQuery不就行了,非要用JS来代替JQuery function $(id) { return document.getElementById(id); } //window.onload方式就是一个良好的选择。window.onload是一个事件,当文档加载完成之后就会触发该事件,可以为此事件注册事件处理函数,并将要执行的脚本代码放在事件处理函数中,于是就可以避免获取不到对象的情况。 function addLoadEvent(func){ var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function(){ oldonload(); func(); } } } function moveElement(elementID,final_x,final_y,interval) { if (!document.getElementById) return false; if (!document.getElementById(elementID)) return false; var elem = document.getElementById(elementID); if (elem.movement) { clearTimeout(elem.movement); } if (!elem.style.left) { elem.style.left = "0px"; } if (!elem.style.top) { elem.style.top = "0px"; } var xpos = parseInt(elem.style.left); var ypos = parseInt(elem.style.top); if (xpos == final_x && ypos == final_y) { return true; } if (xpos < final_x) { var dist = Math.ceil((final_x - xpos)/10); xpos = xpos + dist; } if (xpos > final_x) { var dist = Math.ceil((xpos - final_x)/10); xpos = xpos - dist; } if (ypos < final_y) { var dist = Math.ceil((final_y - ypos)/10); ypos = ypos + dist; } if (ypos > final_y) { var dist = Math.ceil((ypos - final_y)/10); ypos = ypos - dist; } elem.style.left = xpos + "px"; elem.style.top = ypos + "px"; var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")"; elem.movement = setTimeout(repeat,interval); } function classNormal(iFocusBtnID,iFocusTxID){ var iFocusBtns= $(iFocusBtnID).getElementsByTagName('li'); var iFocusTxs = $(iFocusTxID).getElementsByTagName('li'); for(var i=0; i<iFocusBtns.length; i++) { iFocusBtns[i].className='normal'; iFocusTxs[i].className='normal'; } } function classCurrent(iFocusBtnID,iFocusTxID,n){ var iFocusBtns= $(iFocusBtnID).getElementsByTagName('li'); var iFocusTxs = $(iFocusTxID).getElementsByTagName('li'); iFocusBtns[n].className='current'; iFocusTxs[n].className='current'; } function iFocusChange() { if(!$('ifocus')) return false; $('ifocus').onmouseover = function(){atuokey = true}; $('ifocus').onmouseout = function(){atuokey = false}; //不是传值:而是获取成数组集 var iFocusBtns = $('ifocus_btn').getElementsByTagName('li'); //数组集长度 var listLength = iFocusBtns.length; //它用的是直接切换图片的位置! iFocusBtns[0].onmouseover = function() { moveElement('ifocus_piclist',0,0,5); classNormal('ifocus_btn','ifocus_tx'); classCurrent('ifocus_btn','ifocus_tx',0); } if (listLength>=2) { iFocusBtns[1].onmouseover = function() { moveElement('ifocus_piclist',0,-266,5); classNormal('ifocus_btn','ifocus_tx'); classCurrent('ifocus_btn','ifocus_tx',1); } } if (listLength>=3) { iFocusBtns[2].onmouseover = function() { moveElement('ifocus_piclist',0,-532,5); classNormal('ifocus_btn','ifocus_tx'); classCurrent('ifocus_btn','ifocus_tx',2); } } if (listLength>=4) { iFocusBtns[3].onmouseover = function() { moveElement('ifocus_piclist',0,-798,5); classNormal('ifocus_btn','ifocus_tx'); classCurrent('ifocus_btn','ifocus_tx',3); } } if (listLength>=5) { iFocusBtns[4].onmouseover = function() { moveElement('ifocus_piclist',0,-1064,5); classNormal('ifocus_btn','ifocus_tx'); classCurrent('ifocus_btn','ifocus_tx',4); } } } setInterval('autoiFocus()',5000); var atuokey = false; function autoiFocus() { if(!$('ifocus')) return false; if(atuokey) return false; var focusBtnList = $('ifocus_btn').getElementsByTagName('li'); var listLength = focusBtnList.length; for(var i=0; i<listLength; i++) { if (focusBtnList[i].className == 'current') var currentNum = i; } if (currentNum==0&&listLength!=1 ){ moveElement('ifocus_piclist',0,-266,5); classNormal('ifocus_btn','ifocus_tx'); classCurrent('ifocus_btn','ifocus_tx',1); } if (currentNum==1&&listLength!=2 ){ moveElement('ifocus_piclist',0,-532,5); classNormal('ifocus_btn','ifocus_tx'); classCurrent('ifocus_btn','ifocus_tx',2); } if (currentNum==2&&listLength!=3 ){ moveElement('ifocus_piclist',0,-798,5); classNormal('ifocus_btn','ifocus_tx'); classCurrent('ifocus_btn','ifocus_tx',3); } if (currentNum==3&&listLength!=4 ){ moveElement('ifocus_piclist',0,-1064,5); classNormal('ifocus_btn','ifocus_tx'); classCurrent('ifocus_btn','ifocus_tx',4); } //右边小图片列表 if (currentNum==1&&listLength==2 ){ moveElement('ifocus_piclist',0,0,5); classNormal('ifocus_btn','ifocus_tx'); classCurrent('ifocus_btn','ifocus_tx',0); } if (currentNum==2&&listLength==3 ){ moveElement('ifocus_piclist',0,0,5); classNormal('ifocus_btn','ifocus_tx'); classCurrent('ifocus_btn','ifocus_tx',0); } if (currentNum==4 ){ moveElement('ifocus_piclist',0,0,5); classNormal('ifocus_btn','ifocus_tx'); classCurrent('ifocus_btn','ifocus_tx',0); } } addLoadEvent(iFocusChange);
    转载请注明原文地址: https://ju.6miu.com/read-600304.html

    最新回复(0)