/**************************************************
示例:
HTML容器:<div id="imgPlayer"></div>
PImgPlayer.addItem( "test1", "http://down.liehuo.net", "http://www.yiiker.com/images/logo1.jpg");
PImgPlayer.addItem( "test2", "http://down.liehuo.net", "http://www.yiiker.com/images/logo2.jpg");
PImgPlayer.addItem( "test3", "http://down.liehuo.net", "http://www.yiiker.com/images/logo3.jpg");
PImgPlayer.init( "imgPlayer", 200, 230 );
***************************************************/
var PImgPlayer = {
_timer : null,
_items : [],
_container : null,
_index : 0,
_imgs : [],
intervalTime : 8000,//轮播间隔时间
init : function( objID, w, h, time )
{

this.intervalTime = time || this.intervalTime;
this._container = document.getElementById( objID );
this._container.style.display = "block";
this._container.style.width = w + "px";
this._container.style.height = h + "px";
this._container.style.position = "relative";
this._container.style.overflow  = "hidden";

//this._container.style.border = "1px solid #fff";
var linkStyle = "display: block; TEXT-DECORATION: none;";
if( document.all )
{
linkStyle += "FILTER:";
linkStyle += "progid:DXImageTransform.Microsoft.Wipe(duration=1, motion='forward', GradientSize=1.0) ";
}

var ulStyle = "margin:0;width:"+w+"px;position:absolute;z-index:999;right:5px;FILTER:Alpha(Opacity=20,FinishOpacity=90, Style=1);overflow: hidden;bottom:5px;height:16px; border-right:0";

var liStyle = "margin:0;list-style-type: none; margin:0;padding:0; float:right;";

var baseSpacStyle = "clear:both; display:block; width:23px;line-height:16px; font-size:12px; FONT-FAMILY:'宋体';opacity: 0.6;margin:2px;";
baseSpacStyle += "border:0;border-right:0;border-bottom:0;";
baseSpacStyle += "color:#fff;text-align:center; cursor:pointer; ";

var ulHTML = "";
for(var i = this._items.length -1; i >= 0; i--)
{
var spanStyle = "";
if( i==this._index )
{
spanStyle = baseSpacStyle + "background:#00a889;";

   else {
spanStyle = baseSpacStyle + "background:#4e4e4e;";
}
ulHTML += "<li style=\""+liStyle+"\">";
ulHTML += "<span onmouseover=\"PImgPlayer.mouseOver(this);\" onmouseout=\"PImgPlayer.mouseOut(this);\" style=\""+spanStyle+"\" onclick=\"PImgPlayer.play("+i+");return false;\" herf=\"javascript:;\" title=\"" + this._items[i].title + "\">" + (i+1) + "</span>";
ulHTML += "</li>";
}

// var html = "<a href=\""+this._items[this._index].link+"\" title=\""+this._items[this._index].title+"\" target=\"_blank\" style=\""+linkStyle+"\"></a><ul style=\""+ulStyle+"\">"+ulHTML+"</ul>";

var html = ""+this._items[this._index].link+"\" title=\""+this._items[this._index].title+"\" target=\"_blank\" style=\""+linkStyle+"\""<ul style=\""+ulStyle+"\">"+ulHTML+"</ul>";//        var html = "++" <ul style=\""+ulStyle+"\">"+ulHTML+"</ul>";
//       alert(html);
      
this._container.innerHTML = html;
var link = this._container.getElementsByTagName("A")[0];
link.style.width =  w + "px";
link.style.height = h + "px";
link.style.background = 'url(' + this._items[0].img + ') no-repeat center center';

this._timer = setInterval( "PImgPlayer.play()", this.intervalTime );
},

addItem : function( _title, _link, _imgURL )
{
this._items.push ( {title:_title, link:_link, img:_imgURL } );
var img = new Image();
img.src = _imgURL;
this._imgs.push( img );
},

play : function( index )
{
if( index!=null )
{
this._index = index;
clearInterval( this._timer );
this._timer = setInterval( "PImgPlayer.play()", this.intervalTime );

else {
this._index = this._index<this._items.length-1 ? this._index+1 : 0;
}
var link = this._container.getElementsByTagName("A")[0];
if(link.filters)
{
var ren = Math.floor(Math.random()*(link.filters.length));
link.filters[ren].Apply();
link.filters[ren].play();
}
link.href = this._items[this._index].link;
link.title = this._items[this._index].title;
link.style.background = 'url(' + this._items[this._index].img + ') no-repeat center center';

var liStyle = "margin:0;list-style-type: none; margin:0;padding:0; float:right;";
var baseSpacStyle = "clear:both; display:block; width:23px;line-height:16px; font-size:12px; FONT-FAMILY:'宋体'; opacity: 0.6;margin:2px;";
baseSpacStyle += "border:0;border-right:0;border-bottom:0;";
baseSpacStyle += "color:#fff;text-align:center; cursor:pointer; ";
var ulHTML = "";
for(var i = this._items.length -1; i >= 0; i--)
{
var spanStyle = "";
if( i==this._index )
{
spanStyle = baseSpacStyle + "background:#00a889;";

else {
spanStyle = baseSpacStyle + "background:#4e4e4e;";
}
ulHTML += "<li style=\""+liStyle+"\">";
ulHTML += "<span onmouseover=\"PImgPlayer.mouseOver(this);\" onmouseout=\"PImgPlayer.mouseOut(this);\" style=\""+spanStyle+"\" onclick=\"PImgPlayer.play("+i+");return false;\" herf=\"javascript:;\" title=\"" + this._items[i].title + "\">" + (i+1) + "</span>";
ulHTML += "</li>";
}
this._container.getElementsByTagName("UL")[0].innerHTML = ulHTML;
},

mouseOver : function(obj)
{
var i = parseInt( obj.innerHTML );
if( this._index!=i-1)
{
obj.style.color = "#00a889";
}
},

mouseOut : function(obj)
{
obj.style.color = "#fff";
}
}

解决方案 »

  1.   

    添加点击事件???下面的语句中修改成如下
    ulHTML += "<span onclick="PImgPlayer.click(this);" onmouseover=\"PImgPlayer.mouseOver(this);\" onmouseout=\"PImgPlayer.mouseOut(this);\" style=\""+spanStyle+"\" onclick=\"PImgPlayer.play("+i+");return false;\" herf=\"javascript:;\" title=\"" + this._items[i].title + "\">" + (i+1) + "</span>";
    然后对应的添加click方法,比如在mouseOut : function(obj)前添加click : function(obj){
        //你的操作
        alert(o.innerHTML);
    },
      

  2.   

    我想去掉点击事件 现在点击图片会弹出网页,我想把这功能去掉ulHTML += "<span onclick="PImgPlayer.click(this);" onmouseover=\"PImgPlayer.mouseOver(this);\" onmouseout=\"PImgPlayer.mouseOut(this);\" style=\""+spanStyle+"\" onclick=\"PImgPlayer.play("+i+");return false;\" herf=\"javascript:;\" title=\"" + this._items[i].title + "\">" + (i+1) + "</span>";
      
    onclick  onmouseover  去掉不知道为什么还是可以点击弹出网页
      

  3.   

    onclick=\"PImgPlayer.play("+i+");return false;\"  这段取消不就好了?
      

  4.   

     去掉onclick=\"PImgPlayer.play("+i+");return false;\" 点击事件还是可以点击 之后弹出页面
    还有<a></> 我上面的代码注释了 开始还以为是超链接的缘故 可是去掉a标记就报错 或不显示图片var html = "<a href=\""+this._items[this._index].link+"\" title=\""+this._items[this._index].title+"\" target=\"_blank\" style=\""+linkStyle+"\"></a><ul style=\""+ulStyle+"\">"+ulHTML+"</ul>";
      

  5.   

    那位大侠给小弟留个QQ指导下 js是在让人头痛 还不能跟踪 郁闷
      

  6.   

    我晕你,点击图片会弹出网页,这算什么点击事件???那是由你给出的参数造成的
    PImgPlayer.addItem( "test1", "http://down.liehuo.net", "b/1.jpg");第二个参数就是点击图片后的超链接地址,你不想弹出网页
    1:改变一下参数
    PImgPlayer.addItem( "test1", "javascript:void(0);", "b/1.jpg");2:找到你说的这行
    var html = "<a href=\""+this._items[this._index].link+"\" title=\""+this._items[this._index].title+"\" target=\"_blank\" style=\""+linkStyle+"\"></a><ul style=\""+ulStyle+"\">"+ulHTML+"</ul>";
    将 target=\"_blank\"删除
      

  7.   

    完整示例代码如下:
    <script type="text/javascript">
    var PImgPlayer = {
        _timer : null,
        _items : [],
        _container : null,
        _index : 0,
        _imgs : [],
        intervalTime : 8000,//轮播间隔时间
        init : function( objID, w, h, time ){
            this.intervalTime = time || this.intervalTime;
            this._container = document.getElementById( objID );
            this._container.style.display = "block";
            this._container.style.width = w + "px";
            this._container.style.height = h + "px";
            this._container.style.position = "relative";
            this._container.style.overflow = "hidden";
            //this._container.style.border = "1px solid #fff";
            var linkStyle = "display: block; TEXT-DECORATION: none;";
            if( document.all){
                linkStyle += "FILTER:";
                linkStyle += "progid:DXImageTransform.Microsoft.Wipe(duration=1, motion='forward', GradientSize=1.0) ";
            }
            var ulStyle = "margin:0;width:"+w+"px;position:absolute;z-index:999;right:5px;FILTER:Alpha(Opacity=20,FinishOpacity=90, Style=1);overflow: hidden;bottom:5px;height:16px; border-right:0";
            var liStyle = "margin:0;list-style-type: none; margin:0;padding:0; float:right;";
            var baseSpacStyle = "clear:both; display:block; width:23px;line-height:16px; font-size:12px; FONT-FAMILY:'宋体';opacity: 0.6;margin:2px;";
            baseSpacStyle += "border:0;border-right:0;border-bottom:0;";
            baseSpacStyle += "color:#fff;text-align:center; cursor:pointer; ";
            var ulHTML = "";
            for(var i = this._items.length -1; i >= 0; i--){
                var spanStyle = "";
                if( i==this._index ){
                    spanStyle = baseSpacStyle + "background:#00a889;";
                }else { 
                    spanStyle = baseSpacStyle + "background:#4e4e4e;";
                }
                ulHTML += "<li style=\""+liStyle+"\">";
                ulHTML += "<span onmouseover=\"PImgPlayer.mouseOver(this);\" onmouseout=\"PImgPlayer.mouseOut(this);\" style=\""+spanStyle+"\" onclick=\"PImgPlayer.play("+i+");return false;\" herf=\"javascript:;\" title=\"" + this._items[i].title + "\">" + (i+1) + "</span>";
                ulHTML += "</li>";
            }
            var html = "<a href=\""+this._items[this._index].link+"\" title=\""+this._items[this._index].title+"\"  style=\""+linkStyle+"\"></a><ul style=\""+ulStyle+"\">"+ulHTML+"</ul>";
            this._container.innerHTML = html;
            var link = this._container.getElementsByTagName("A")[0]; 
            link.style.width = w + "px";
            link.style.height = h + "px";
            link.style.background = 'url(' + this._items[0].img + ') no-repeat center center';        this._timer = setInterval( "PImgPlayer.play()", this.intervalTime );
        },    addItem:function( _title,_link,_imgURL ){
            this._items.push ( {title:_title, link:_link, img:_imgURL } );
            var img = new Image();
            img.src = _imgURL;
            this._imgs.push( img );
        },    play : function( index ){
            if( index!=null){
                this._index = index;
                clearInterval( this._timer );
                this._timer = setInterval( "PImgPlayer.play()", this.intervalTime );
            }else{
                this._index = this._index<this._items.length-1 ? this._index+1 : 0;
            }
            var link = this._container.getElementsByTagName("A")[0]; 
            if(link.filters){
                var ren = Math.floor(Math.random()*(link.filters.length));
                link.filters[ren].Apply();
                link.filters[ren].play();
            }
            link.href = this._items[this._index].link;
            link.title = this._items[this._index].title;
            link.style.background = 'url(' + this._items[this._index].img + ') no-repeat center center';
            var liStyle = "margin:0;list-style-type: none; margin:0;padding:0; float:right;";
            var baseSpacStyle = "clear:both; display:block; width:23px;line-height:16px; font-size:12px; FONT-FAMILY:'宋体'; opacity: 0.6;margin:2px;";
            baseSpacStyle += "border:0;border-right:0;border-bottom:0;";
            baseSpacStyle += "color:#fff;text-align:center; cursor:pointer; ";
            var ulHTML = "";
            for(var i = this._items.length -1; i >= 0; i--){
                var spanStyle = "";
                if( i==this._index ){
                    spanStyle = baseSpacStyle + "background:#00a889;";
                }else { 
                    spanStyle = baseSpacStyle + "background:#4e4e4e;";
                }
                ulHTML += "<li style=\""+liStyle+"\">";
                ulHTML += "1<span onmouseover=\"PImgPlayer.mouseOver(this);\" onmouseout=\"PImgPlayer.mouseOut(this);\" style=\""+spanStyle+"\" onclick=\"PImgPlayer.play("+i+");return false;\" herf=\"javascript:;\" title=\"" + this._items[i].title + "\">" + (i+1) + "</span>";
                ulHTML += "</li>";
            }
            this._container.getElementsByTagName("UL")[0].innerHTML = ulHTML; 
        },    mouseOver:function(obj){
            var i = parseInt( obj.innerHTML );
            if( this._index!=i-1){
                obj.style.color = "#00a889";
            }
        },
        mouseOut : function(obj){
            obj.style.color = "#fff";
        }
    }
    window.onload=function(){
        PImgPlayer.addItem( "test1", "javascript:void(0)", "b/1.jpg");
        PImgPlayer.addItem( "test2", "javascript:void(0)", "b/2.jpg");
        PImgPlayer.addItem( "test3", "javascript:void(0)", "b/3.jpg");
        PImgPlayer.init( "imgPlayer", 200, 230 );
    }
    <script>
    <div id="imgPlayer"></div>
      

  8.   

    改变了参数 将 target=\"_blank\"属性删除 果然好了 谢谢了