文本内容过长显示插件

/**
 * 文本内容过长显示插件
 * 鼠标放上去的时候就会整条浮动显示,没有放上去的时候就缩略显示
 *      一行显示
 *      多行显示
 *      (时间小,占用面积大)
 * 鼠标放上去的时候就会  Led屏滚动显示,没有放上去的时候就缩略显示
 *      只能一行显示
 *     (时间长,占用面积小)
 * @param options
 */
$.fn.textContentOverLengthShow=function(options){
    options=$.extend($.fn.textContentOverLengthShow.default,options);
    var self={},$this=$(this);

    /**
     * led显示方式
     */
    self.ledShow=function(){
        var ele=$("<div class='led_show'/>");
        ele.text($this.text());
        $this.text("");
        $this.append(ele);
        var marginLeftWidth=self.thisWidth-options.width;
        var marginLeftWidthEvel=0;
        self.ledShow.setIntervalIndex=setInterval(function(){
            marginLeftWidthEvel=marginLeftWidthEvel+10;
            ele.css("margin-left","-"+marginLeftWidthEvel+"px");
            if(marginLeftWidthEvel >= marginLeftWidth){
                marginLeftWidthEvel=-10;
            }
        },options.ledFontShowTime);
    }

    /**
     * 关闭 Led显示方式
     */
    self.closeLedShow=function(){
        clearInterval(self.ledShow.setIntervalIndex);
        var ele=$this.find(".led_show");
        $this.text(ele.text());
        ele.remove();
    }

    /**
     * 浮动显示
     */
    self.floatShow=function(){
        var offset=$this.offset();
        var ele=$("<div class='float_show'/>");
        if(this.floatShowRow > 1){
            ele.width(options.width);
        }else{
            ele.css("display","inline-block");
            ele.width(options.width);
        }
        ele.css("position","absolute");
        $this.css("white-space","normal");
        ele.offset(offset);
        ele.text($this.text());
        $this.append(ele);
        //$this.text("");
    }

    /**
     * 关闭浮动显示
     */
    self.closeFloatShow=function(){
        var ele=$this.find(".float_show");
        $this.css("white-space","nowrap");
        //$this.text(ele.text());
        ele.remove();
    }

    /**
     * 初始化
     */
    self.init=function(){
        var span=$("<span>"+$this.text()+"</span>");
        $("body").append(span);
        self.thisWidth=span.width();
        span.remove();
        if(options.width > self.thisWidth){
            return;
        }
        $this.css({
            display:"inline-block",
            overflow:"hidden",
            "text-overflow":"ellipsis",
            "white-space":"nowrap"
        });
        $this.width(options.width);
        $this.hover(
            function () {//over
                if(options.showType == 1){
                    self.floatShow();
                }else if(options.showType == 2){
                    self.ledShow();
                }
            },
            function () {//out
                if(options.showType == 1){
                    self.closeFloatShow();
                }else if(options.showType == 2){
                    self.closeLedShow();
                }
            }
        );
    }
    self.init();
}
$.fn.textContentOverLengthShow.default={
    showType:1,//显示类型 1:浮动显示,2:Led屏滚动显示
    floatShowRow:1,//浮动显示的函数:1行,超过1 代表多行
    width:200, //显示宽度
    ledFontShowTime:100 //显示时间间隔
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值