wangsheng
2021-12-01 5944b55b1486943c696a3beb004d564dceb81cf2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/**
* @name jquery freeTip
* @function 更改html标签的title提示样式,使之更友好,对ie8、FF3.6、360 3.9支持较好(提示框可随鼠标左右移动),
*     在ie6、7下支持有待改善
*
* @date 2011.7.30
* @author zhifeichuan
*
* @version 1.0
*
* 欢迎大家指出错误、提出建议
*/
(function ($) {
    $.fn.freeTip = function (options) {
        var defaults = {
            cssClass: "freeTip", //提示框类样式
            sanJiaoClass: "sanJiaoTip" //提示框下的三角类样式
        }
 
        var options = $.extend(defaults, options);
        var $o = this; //目标
        var $tip = $("<div id='freeTip' style='display:none;'></div>"); //提示框对象
        var $sanJiao = $("<div id='sanJiaoTip' style='display:none;'></div>"); //提示框下的三角对象
 
        //设置提示框的样式
        $tip.html($o.attr("title"));
        $tip.addClass(options.cssClass);
        $sanJiao.addClass(options.sanJiaoClass);
        $o.attr("title", "");
 
        //添加到文档中
        $("body").append($tip);
        $("body").append($sanJiao);
 
 
 
        $o.bind("mousemove", function (e) {
            var _e = e;
            $tip.show();
            $sanJiao.show();
            creatTip(_e);
 
        });
 
        $o.bind("mouseout", function () {
            $tip.hide();
            $sanJiao.hide();
        });
 
 
        //提示框定位
        var creatTip = function (e) {
            var mouse = new Mouse(e);
 
            //在ie6、7中,三角下会出现白色区域,通过设置提示框的位置解决此问题
            if (getVersion() != "IE6" && getVersion() != "IE7") {
                $tip.css("left", mouse.mouseX);
            } else {
                $tip.css("left", $o.position().left + 35);
            }
 
            $tip.css("top", $o.position().top - $tip.outerHeight());
            creatSanJiao();
        }
 
        //三角定位
        var creatSanJiao = function () {
            $sanJiao.css("top", $tip.position().top + $tip.outerHeight() + "px");
            $sanJiao.css("left", $tip.position().left + 10 + "px");
        }
 
 
        var Mouse = function (e) {
            var mouseEvent = new MouseEvent(e);
            this.mouseX = mouseEvent.x;
            this.mouseY = mouseEvent.y - $tip.height();
        }
 
        //鼠标坐标
        var MouseEvent = function (e) {
            this.x = e.pageX;
            this.y = e.pageY;
        }
 
        //浏览器判断 
        var getVersion = function () {
            if ($.browser.msie && ($.browser.version == "6.0")) {
                return "IE6";
            } else if ($.browser.msie && ($.browser.version == "7.0")) {
                return "IE7";
            }
            return "";
        }
    }
})(jQuery);