Hướng dẫn tạo tooltips tự động hiển thị khi hover

Xin chào mừng tất cả các bạn đã đến với blog của mình.Hôm nay mình xin chia sẻ đến các bạn cách để tạo tooltips đẹp cho blogspot
Demo

Các bước thực hiện:))

Bước 1:Thêm đoạn js bên dưới vào blog của bạn
! function (_0x41afx1) {
    _0x41afx1.tooltipsy = function (_0x41afx2, _0x41afx3) {
        this.options = _0x41afx3, this["$el"] = _0x41afx1(_0x41afx2), this.title = this["$el"].attr("title") || "", this["$el"].attr("title", ""), this.random = parseInt(1e4 * Math.random()), this.ready = !1, this.shown = !1, this.width = 0, this.height = 0, this.delaytimer = null, this["$el"].data("tooltipsy", this), this.init()
    }, _0x41afx1.tooltipsy.prototype = {
        init: function () {
            var _0x41afx2, _0x41afx3 = this,
                _0x41afx4 = _0x41afx3["$el"],
                _0x41afx5 = _0x41afx4[0];
            _0x41afx3.settings = _0x41afx2 = _0x41afx1.extend({}, _0x41afx3.defaults, _0x41afx3.options), _0x41afx2.delay = +_0x41afx2.delay, "function" == typeof _0x41afx2.content && _0x41afx3.readify(), _0x41afx2.showEvent === _0x41afx2.hideEvent && "click" === _0x41afx2.showEvent ? _0x41afx4.toggle(function (_0x41afx1) {
                "click" === _0x41afx2.showEvent && "A" == _0x41afx5.tagName && _0x41afx1.preventDefault(), _0x41afx2.delay > 0 ? _0x41afx3.delaytimer = window.setTimeout(function () {
                    _0x41afx3.show(_0x41afx1)
                }, _0x41afx2.delay) : _0x41afx3.show(_0x41afx1)
            }, function (_0x41afx1) {
                "click" === _0x41afx2.showEvent && "A" == _0x41afx5.tagName && _0x41afx1.preventDefault(), window.clearTimeout(_0x41afx3.delaytimer), _0x41afx3.delaytimer = null, _0x41afx3.hide(_0x41afx1)
            }) : _0x41afx4.bind(_0x41afx2.showEvent, function (_0x41afx1) {
                "click" === _0x41afx2.showEvent && "A" == _0x41afx5.tagName && _0x41afx1.preventDefault(), _0x41afx3.delaytimer = window.setTimeout(function () {
                    _0x41afx3.show(_0x41afx1)
                }, _0x41afx2.delay || 0)
            }).bind(_0x41afx2.hideEvent, function (_0x41afx1) {
                "click" === _0x41afx2.showEvent && "A" == _0x41afx5.tagName && _0x41afx1.preventDefault(), window.clearTimeout(_0x41afx3.delaytimer), _0x41afx3.delaytimer = null, _0x41afx3.hide(_0x41afx1)
            })
        },
        show: function (_0x41afx2) {
            !1 === this.ready && this.readify();
            var _0x41afx3 = this,
                _0x41afx4 = _0x41afx3.settings,
                _0x41afx5 = _0x41afx3["$tipsy"],
                _0x41afx6 = _0x41afx3["$el"],
                _0x41afx7 = _0x41afx6[0],
                _0x41afx8 = _0x41afx3.offset(_0x41afx7);
            if (!1 === _0x41afx3.shown && (function (_0x41afx1) {
                    var _0x41afx2, _0x41afx3 = 0;
                    for (_0x41afx2 in _0x41afx1) {
                        _0x41afx1.hasOwnProperty(_0x41afx2) && _0x41afx3++
                    };
                    return _0x41afx3
                }(_0x41afx4.css) > 0 && _0x41afx3["$tip"].css(_0x41afx4.css), _0x41afx3.width = _0x41afx5.outerWidth(), _0x41afx3.height = _0x41afx5.outerHeight()), "cursor" === _0x41afx4.alignTo && _0x41afx2) {
                if ((_0x41afx9 = [_0x41afx2.clientX + _0x41afx4.offset[0], _0x41afx2.clientY + _0x41afx4.offset[1]])[0] + _0x41afx3.width > _0x41afx1(window).width()) {
                    _0x41afx9[1], _0x41afx9[0]
                } else {
                    _0x41afx9[1], _0x41afx9[0]
                }
            } else {
                var _0x41afx9 = [_0x41afx4.offset[0] < 0 ? _0x41afx8.left - Math.abs(_0x41afx4.offset[0]) - _0x41afx3.width : 0 === _0x41afx4.offset[0] ? _0x41afx8.left - (_0x41afx3.width - _0x41afx6.outerWidth()) / 2 : _0x41afx8.left + _0x41afx6.outerWidth() + _0x41afx4.offset[0], _0x41afx4.offset[1] < 0 ? _0x41afx8.top - Math.abs(_0x41afx4.offset[1]) - _0x41afx3.height : 0 === _0x41afx4.offset[1] ? _0x41afx8.top - (_0x41afx3.height - _0x41afx3["$el"].outerHeight()) / 2 : _0x41afx8.top + _0x41afx3["$el"].outerHeight() + _0x41afx4.offset[1]]
            };
            _0x41afx5.css({
                top: _0x41afx9[1] + "px",
                left: _0x41afx9[0] + "px"
            }), _0x41afx3.settings.show(_0x41afx2, _0x41afx5.stop(!0, !0))
        },
        hide: function (_0x41afx1) {
            var _0x41afx2 = this;
            !1 !== _0x41afx2.ready && (_0x41afx1 && _0x41afx1.relatedTarget === _0x41afx2["$tip"][0] ? _0x41afx2["$tip"].bind("mouseleave", function (_0x41afx1) {
                _0x41afx1.relatedTarget !== _0x41afx2["$el"][0] && _0x41afx2.settings.hide(_0x41afx1, _0x41afx2["$tipsy"].stop(!0, !0))
            }) : _0x41afx2.settings.hide(_0x41afx1, _0x41afx2["$tipsy"].stop(!0, !0)))
        },
        readify: function () {
            this.ready = !0, this["$tipsy"] = _0x41afx1("<div id=\"tooltipsy" + this.random + "\" style=\"position:fixed;z-index:2147483647;display:none\">").appendTo("body"), this["$tip"] = _0x41afx1("<div class=\"" + this.settings.className + "\">").appendTo(this.$tipsy), this["$tip"].data("rootel", this.$el);
            var _0x41afx2 = this["$el"],
                _0x41afx3 = this["$tip"];
            this["$tip"].html("" != this.settings.content ? "string" == typeof this.settings.content ? this.settings.content : this.settings.content(_0x41afx2, _0x41afx3) : this.title)
        },
        offset: function (_0x41afx1) {
            return this["$el"][0].getBoundingClientRect()
        },
        destroy: function () {
            this["$tipsy"] && (this["$tipsy"].remove(), _0x41afx1.removeData(this.$el, "tooltipsy"))
        },
        update: function () {
            this.title = this["$el"].attr("title"), this["$tipsy"] && this["$tipsy"].remove(), this.ready = !1
        },
        defaults: {
            alignTo: "element",
            offset: [0, -1],
            content: "",
            show: function (_0x41afx1, _0x41afx2) {
                _0x41afx2.fadeIn()
            },
            hide: function (_0x41afx1, _0x41afx2) {
                _0x41afx2.fadeOut()
            },
            css: {},
            className: "tooltipsy",
            delay: 0,
            showEvent: "mouseenter",
            hideEvent: "mouseleave"
        }
    }, _0x41afx1.fn.tooltipsy = function (_0x41afx2) {
        return this.each(function () {
            new _0x41afx1.tooltipsy(this, _0x41afx2)
        })
    }
}(jQuery),
function (_0x41afx1) {
    _0x41afx1.tooltipsy2 = function (_0x41afx2, _0x41afx3) {
        this.options = _0x41afx3, this["$el"] = _0x41afx1(_0x41afx2), this.title = this["$el"].attr("title") || "", this["$el"].attr("title", ""), this.random = parseInt(1e4 * Math.random()), this.ready = !1, this.shown = !1, this.width = 0, this.height = 0, this.delaytimer = null, this["$el"].data("tooltipsy2", this), this.init()
    }, _0x41afx1.tooltipsy2.prototype = {
        init: function () {
            var _0x41afx2, _0x41afx3 = this,
                _0x41afx4 = _0x41afx3["$el"],
                _0x41afx5 = _0x41afx4[0];
            _0x41afx3.settings = _0x41afx2 = _0x41afx1.extend({}, _0x41afx3.defaults, _0x41afx3.options), _0x41afx2.delay = +_0x41afx2.delay, "function" == typeof _0x41afx2.content && _0x41afx3.readify(), _0x41afx2.showEvent === _0x41afx2.hideEvent && "click" === _0x41afx2.showEvent ? _0x41afx4.toggle(function (_0x41afx1) {
                "click" === _0x41afx2.showEvent && "A" == _0x41afx5.tagName && _0x41afx1.preventDefault(), _0x41afx2.delay > 0 ? _0x41afx3.delaytimer = window.setTimeout(function () {
                    _0x41afx3.show(_0x41afx1)
                }, _0x41afx2.delay) : _0x41afx3.show(_0x41afx1)
            }, function (_0x41afx1) {
                "click" === _0x41afx2.showEvent && "A" == _0x41afx5.tagName && _0x41afx1.preventDefault(), window.clearTimeout(_0x41afx3.delaytimer), _0x41afx3.delaytimer = null, _0x41afx3.hide(_0x41afx1)
            }) : _0x41afx4.bind(_0x41afx2.showEvent, function (_0x41afx1) {
                "click" === _0x41afx2.showEvent && "A" == _0x41afx5.tagName && _0x41afx1.preventDefault(), _0x41afx3.delaytimer = window.setTimeout(function () {
                    _0x41afx3.show(_0x41afx1)
                }, _0x41afx2.delay || 0)
            }).bind(_0x41afx2.hideEvent, function (_0x41afx1) {
                "click" === _0x41afx2.showEvent && "A" == _0x41afx5.tagName && _0x41afx1.preventDefault(), window.clearTimeout(_0x41afx3.delaytimer), _0x41afx3.delaytimer = null, _0x41afx3.hide(_0x41afx1)
            })
        },
        show: function (_0x41afx2) {
            !1 === this.ready && this.readify();
            var _0x41afx3 = this,
                _0x41afx4 = _0x41afx3.settings,
                _0x41afx5 = _0x41afx3["$tipsy"],
                _0x41afx6 = _0x41afx3["$el"],
                _0x41afx7 = _0x41afx6[0],
                _0x41afx8 = _0x41afx3.offset(_0x41afx7);
            if (!1 === _0x41afx3.shown && (function (_0x41afx1) {
                    var _0x41afx2, _0x41afx3 = 0;
                    for (_0x41afx2 in _0x41afx1) {
                        _0x41afx1.hasOwnProperty(_0x41afx2) && _0x41afx3++
                    };
                    return _0x41afx3
                }(_0x41afx4.css) > 0 && _0x41afx3["$tip"].css(_0x41afx4.css), _0x41afx3.width = _0x41afx5.outerWidth(), _0x41afx3.height = _0x41afx5.outerHeight()), "cursor" === _0x41afx4.alignTo && _0x41afx2) {
                if ((_0x41afx9 = [_0x41afx2.clientX + _0x41afx4.offset[0], _0x41afx2.clientY + _0x41afx4.offset[1]])[0] + _0x41afx3.width > _0x41afx1(window).width()) {
                    _0x41afx9[1], _0x41afx9[0]
                } else {
                    _0x41afx9[1], _0x41afx9[0]
                }
            } else {
                var _0x41afx9 = [_0x41afx4.offset[0] < 0 ? _0x41afx8.left - Math.abs(_0x41afx4.offset[0]) - _0x41afx3.width : 0 === _0x41afx4.offset[0] ? _0x41afx8.left - (_0x41afx3.width - _0x41afx6.outerWidth()) / 2 : _0x41afx8.left + _0x41afx6.outerWidth() + _0x41afx4.offset[0], _0x41afx4.offset[1] < 0 ? _0x41afx8.top - Math.abs(_0x41afx4.offset[1]) - _0x41afx3.height : 0 === _0x41afx4.offset[1] ? _0x41afx8.top - (_0x41afx3.height - _0x41afx3["$el"].outerHeight()) / 2 : _0x41afx8.top + _0x41afx3["$el"].outerHeight() + _0x41afx4.offset[1]]
            };
            _0x41afx5.css({
                top: _0x41afx9[1] + "px",
                left: _0x41afx9[0] + "px"
            }), _0x41afx3.settings.show(_0x41afx2, _0x41afx5.stop(!0, !0))
        },
        hide: function (_0x41afx1) {
            var _0x41afx2 = this;
            !1 !== _0x41afx2.ready && (_0x41afx1 && _0x41afx1.relatedTarget === _0x41afx2["$tip"][0] ? _0x41afx2["$tip"].bind("mouseleave", function (_0x41afx1) {
                _0x41afx1.relatedTarget !== _0x41afx2["$el"][0] && _0x41afx2.settings.hide(_0x41afx1, _0x41afx2["$tipsy"].stop(!0, !0))
            }) : _0x41afx2.settings.hide(_0x41afx1, _0x41afx2["$tipsy"].stop(!0, !0)))
        },
        readify: function () {
            this.ready = !0, this["$tipsy"] = _0x41afx1("<div id=\"tooltipsy2" + this.random + "\" style=\"position:fixed;z-index:2147483647;display:none\">").appendTo("body"), this["$tip"] = _0x41afx1("<div class=\"" + this.settings.className + "\">").appendTo(this.$tipsy), this["$tip"].data("rootel", this.$el);
            var _0x41afx2 = this["$el"],
                _0x41afx3 = this["$tip"];
            this["$tip"].html("" != this.settings.content ? "string" == typeof this.settings.content ? this.settings.content : this.settings.content(_0x41afx2, _0x41afx3) : this.title)
        },
        offset: function (_0x41afx1) {
            return this["$el"][0].getBoundingClientRect()
        },
        destroy: function () {
            this["$tipsy"] && (this["$tipsy"].remove(), _0x41afx1.removeData(this.$el, "tooltipsy2"))
        },
        update: function () {
            this.title = this["$el"].attr("title"), this["$tipsy"] && this["$tipsy"].remove(), this.ready = !1
        },
        defaults: {
            alignTo: "element",
            offset: [0, -1],
            content: "",
            show: function (_0x41afx1, _0x41afx2) {
                _0x41afx2.fadeIn()
            },
            hide: function (_0x41afx1, _0x41afx2) {
                _0x41afx2.fadeOut()
            },
            css: {},
            className: "tooltipsy2",
            delay: 0,
            showEvent: "mouseenter",
            hideEvent: "mouseleave"
        }
    }, _0x41afx1.fn.tooltipsy2 = function (_0x41afx2) {
        return this.each(function () {
            new _0x41afx1.tooltipsy2(this, _0x41afx2)
        })
    }
}(jQuery);
$(".bsw-tl").tooltipsy({
    offset: [0, 10],
    show: function (_0x41afx2, _0x41afx1) {
        _0x41afx1.css({
            left: parseInt(_0x41afx1[0].style.left.replace(/[a-z]/g, "")),
            display: "block"
        }).animate({
            left: parseInt(_0x41afx1[0].style.left.replace(/[a-z]/g, ""))
        }, 0)
    },
    hide: function (_0x41afx2, _0x41afx1) {
        _0x41afx1.hide()
    }
}), $(".bsw-tls").tooltipsy2({
    offset: [10, 0],
    show: function (_0x41afx2, _0x41afx1) {
        _0x41afx1.css({
            left: parseInt(_0x41afx1[0].style.left.replace(/[a-z]/g, "")),
            display: "block"
        }).animate({
            left: parseInt(_0x41afx1[0].style.left.replace(/[a-z]/g, ""))
        }, 0)
    },
    hide: function (_0x41afx2, _0x41afx1) {
        _0x41afx1.hide()
    }
})
Bước 2:Thêm đoạn css bên dưới vào trong thẻ ]]></b:skin>
.tooltipsy,.tooltipsy2{ padding: 6px 12px; max-width: 300px; color: #fff; background-color: #333; box-shadow: 0 0 20px rgba(0,0,0,.1); border-radius: 4px; font-size:14px; line-height:1.35; position:relative; pointer-events: none; text-align: center }
.tooltipsy:before {
content: '';
border: 8px solid #333;
border-top: 6px solid transparent;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
top: -13px;
position: absolute;
left: 50%;
z-index: 1;
transform: translate(-50%,0);
}
.tooltipsy2:before{
content: '';
border: 6px solid transparent;
border-top: 6px solid transparent;
border-left: 6px solid transparent;
border-right: 12px solid #333;
top: 50%;
position: absolute;
left: -14px;
z-index: 10;
transform: translate(0,-50%);
}
Vậy là đã hoàn thành rồi =))
Nếu muốn sử dụng bạn chỉ cần thêm class bsw-tl hoặc bsw-tls vào đó
#view-code:bsw

1 nhận xét: