jQuery插件实现带圆点的焦点图片轮播切换
这次分享的代码是jQuery插件,HovertreeImg是一个图片轮播jquery插件,使用方便,可以设置大小,圆点位置等,代码简洁
<!DOCTYPEhtml> <html> <head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <basetarget="_blank"/> <metacharset="utf-8"/> <style>#img{width:768px;height:66px;overflow:hidden} #imgimg{width:100%;height:100%;} #img#imgcontent{display:none}a{color:blue}</style> </head> <body> <divid="img"> <ahref="/h/bjaf/hovertreeimg.htm"title="Img"target="_blank"><imgsrc="/jq/img/img.jpg"alt="Img插件"/></a> <divid="imgcontent"> <ahref="/h/bjaf/easysector.htm"title="HTML5百分比饼图"target="_blank"><imgsrc="/themes/img/easysector.gif"alt="EasySector插件"/></a> <ahref="/texiao/game/"title="见缝插针"target="_blank"><imgsrc="/themes/img/jfcz.gif"alt="见缝插针"/></a> </div> </div> <div> <br/><br/> </div> <scriptsrc="/ziyuan/jquery/jquery-1.12.0.min.js"></script> <scriptsrc="/jq/hovertreeimg/jquery.img.js"></script> <script> $("#img").hovertreeimg({ "h_circlePosition":"",//left,right,center "h_width":768, "h_height":66, "h_borderColor":"silver", "h_circleWidth":14 }); </script> </body> </html>
jquery.img.js
/*! *HovertreeImg(jQueryPlugin) *version:1.0.0 *Copyright(c)2016HoverTree */ (function($){ $.fn.hovertreeimg=function(options){ varsettings=$.extend({ h_time:"3000",//切换时间 h_borderColor:"transparent",//边框颜色 h_width:"500",//宽度 h_height:"200",//高度 h_circleWidth:"18",//方框边长 h_circleColor:"silver",//圆点颜色 h_currentCircleColor:"red",//当前圆点颜色 h_circlePosition:"right"//圆点位置 },options); varh_hovertreeimg=$(this); if(h_hovertreeimg.length<1) return; h_hovertreeimg.css({ "position":"relative","border":"solid1px"+settings.h_borderColor ,"width":settings.h_width,"height":settings.h_height ,"overflow":"hidden" }) varh_hovertreeimgcontent=h_hovertreeimg.find(">div#hovertreeimgcontent"); h_hovertreeimgcontent.hide(); varh_hovertreeimgcurrent=h_hovertreeimg.find(">a"); h_hovertreeimgcurrent.wrap("<divid='replaceframe'></div>"); h_replaceFrame=h_hovertreeimg.find("#replaceframe").css({"width":"100%","height":"100%"}); //构造圆点框 $('<divclass="hovertreeimgpoint"></div>').appendTo(h_hovertreeimg); varh_hovertreeimgpoint=h_hovertreeimg.find(".hovertreeimgpoint"); h_hovertreeimgcontent.prepend(h_hovertreeimgcurrent.clone(true));//复制到总a集合 varh_hovertreeimgitems=h_hovertreeimgcontent.children();//所有a标签集合 varh_hovertreeimglength=h_hovertreeimgitems.length;//所有轮播项数量 varh_isswitch=true;//是否轮播 varh_circleWidth=parseInt(settings.h_circleWidth); //加边框与间隔 varh_circleFrameWidth=(h_circleWidth+4)*h_hovertreeimglength+2; h_hovertreeimgpoint.css({ "height":(h_circleWidth+4),"position":"absolute","bottom":"0px", "display":"inline-block" }) //设置圆点位置 switch(settings.h_circlePosition){ case'right': h_hovertreeimgpoint.css({ "right":"0px" }) break; case'left': h_hovertreeimgpoint.css({ "left":"0px" }) break; default: h_hovertreeimgpoint.css({ "left":"0px", "right":"0px", "width":h_circleFrameWidth+"px", "margin":"0pxauto" }) break; } //切换索引 varh_hovertreeimgindex=1; if(h_hovertreeimglength<2) h_hovertreeimgindex=0; //构造圆点 for(varh_i=0;h_i<h_hovertreeimglength;h_i++){ h_hovertreeimgpoint.append("<divhovertreeimgdata='"+h_i+"'id='hovertreeimgpoint"+h_i+"'></div>"); } h_pointset=h_hovertreeimgpoint.find("div");//圆点集合 h_pointset.css({ "background-color":settings.h_circleColor,"width":settings.h_circleWidth ,"height":settings.h_circleWidth ,"border":"1pxsolidwhite" ,"margin-left":"2px", "display":"inline-block", "border-radius":"50%" }) h_pointset.eq(0).css({"background-color":settings.h_currentCircleColor}); //设置当前图片 functionimgswitch(imgindex){ h_replaceFrame.html(h_hovertreeimgitems.eq(imgindex)); h_pointset.css({"background-color":settings.h_circleColor}); h_pointset.eq(imgindex).css({"background-color":settings.h_currentCircleColor}); } h_replaceFrame.find("img").css({ "width":settings.h_width ,"height":settings.h_height }) //圆点操作 h_pointset.hover(function(){ h_isswitch=false;//光标悬停到圆点停止切换 imgswitch($(this).attr('hovertreeimgdata')); } ,function(){ h_isswitch=true; } ) //切换 setInterval(function(){ if(!h_isswitch) return; imgswitch(h_hovertreeimgindex); h_hovertreeimgindex=(h_hovertreeimgindex+1)%h_hovertreeimglength; },settings.h_time) //光标悬停到图片停止切换 h_replaceFrame.hover(function(){h_isswitch=false;},function(){h_isswitch=true;}) } }(jQuery));