看到博客页面超链接上小标签是不是心动了?
好吧~我今天分享一下~~
原理也很简单,读取超链接的title标签,然后建立一个DIV标签,用postion定位,加上CSS修饰和jQuery动画就可以了。
首先必须要加载jQuery库,然后把以下代码放到JS中。
方框半透明
<code>
<script>
jQuery(document).ready(function($) {
$(function() {
$(".articlebox a, .articlebox img,.shuoshuo a,header a,.lsidebar a,.menu a").each(function(b) {
if (this.title) {
var c = this.title;
var a = 30;
var x = 20;
$(this).mouseover(function(d) {
this.title = "";
$("body").append('<div id="tooltip">' + c + "</div>");
$("#tooltip").css({
left: (d.pageX + a) + "px",
top: (d.pageY + x) + "px",
opacity: "0.8"
}).show(250)
}).mouseout(function() {
this.title = c;
$("#tooltip").remove()
}).mousemove(function(d) {
$("#tooltip").css({
left: (d.pageX + a) + "px",
top: (d.pageY + x) + "px"
})
})
}
})
});
});
</script>
</code>
<script>
jQuery(document).ready(function($) {
$(function() {
$(".articlebox a, .articlebox img,.shuoshuo a,header a,.lsidebar a,.menu a").each(function(b) {
if (this.title) {
var c = this.title;
var a = 30;
var x = 20;
$(this).mouseover(function(d) {
this.title = "";
$("body").append('<div id="tooltip">' + c + "</div>");
$("#tooltip").css({
left: (d.pageX + a) + "px",
top: (d.pageY + x) + "px",
opacity: "0.8"
}).show(250)
}).mouseout(function() {
this.title = c;
$("#tooltip").remove()
}).mousemove(function(d) {
$("#tooltip").css({
left: (d.pageX + a) + "px",
top: (d.pageY + x) + "px"
})
})
}
})
});
});
</script>
</code>
下面就是她漂亮的CSS样式了,放在合适的位置。
<code>
<style>
#tooltip{-moz-border-radius:17px 17px 17px 17px;padding:5px;position:absolute;text-align:left;width:auto;z-index:1000;font-size:12px;color:rgb(105,76,44);text-shadow:1px 1px 0 #eee;padding:4px 8px;border:1px solid rgba(255,255,255,0.25);background:rgb(255,255,255);background:rgba(255,255,255,0.6);border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;box-shadow:1px 1px 2px #555;-webkit-box-shadow:1px 1px 2px #555;-moz-box-shadow:1px 1px 2px #555}
#tooltip p em{color:#232323;text-shadow:0px 0px 0px #000;display:block;font-style:normal;font-weight:600;margin-top:3px}
#tooltips{background:#000;color:#4a7304;text-align:center;padding:6px 0;position:absolute;z-index:1}
</style>
</code>
<style>
#tooltip{-moz-border-radius:17px 17px 17px 17px;padding:5px;position:absolute;text-align:left;width:auto;z-index:1000;font-size:12px;color:rgb(105,76,44);text-shadow:1px 1px 0 #eee;padding:4px 8px;border:1px solid rgba(255,255,255,0.25);background:rgb(255,255,255);background:rgba(255,255,255,0.6);border-radius:3px;-webkit-border-radius:3px;-moz-border-radius:3px;box-shadow:1px 1px 2px #555;-webkit-box-shadow:1px 1px 2px #555;-moz-box-shadow:1px 1px 2px #555}
#tooltip p em{color:#232323;text-shadow:0px 0px 0px #000;display:block;font-style:normal;font-weight:600;margin-top:3px}
#tooltips{background:#000;color:#4a7304;text-align:center;padding:6px 0;position:absolute;z-index:1}
</style>
</code>
黑色透明气泡式
JS驱动行为
<code>
~ (function($) {
$.fn.tipTip = function(options) {
var defaults = {
activation: "hover",
keepAlive: false,
maxWidth: "200px",
edgeOffset: 3,
defaultPosition: "bottom",
delay: 400,
fadeIn: 200,
fadeOut: 200,
attribute: "title",
content: false,
enter: function() {},
exit: function() {}
};
var opts = $.extend(defaults, options);
if ($("#tiptip_holder").length <= 0) {
var tiptip_holder = $('<div id="tiptip_holder" style="max-width:' + opts.maxWidth + ';"></div>');
var tiptip_content = $('<div id="tiptip_content"></div>');
var tiptip_arrow = $('<div id="tiptip_arrow"></div>');
$("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('<div id="tiptip_arrow_inner"></div>')))
} else {
var tiptip_holder = $("#tiptip_holder");
var tiptip_content = $("#tiptip_content");
var tiptip_arrow = $("#tiptip_arrow")
}
return this.each(function() {
var org_elem = $(this);
if (opts.content) {
var org_title = opts.content
} else {
var org_title = org_elem.attr(opts.attribute)
}
if (org_title != "") {
if (!opts.content) {
org_elem.removeAttr(opts.attribute)
}
var timeout = false;
if (opts.activation == "hover") {
org_elem.hover(function() {
active_tiptip()
},
function() {
if (!opts.keepAlive) {
deactive_tiptip()
}
});
if (opts.keepAlive) {
tiptip_holder.hover(function() {},
function() {
deactive_tiptip()
})
}
} else if (opts.activation == "focus") {
org_elem.focus(function() {
active_tiptip()
}).blur(function() {
deactive_tiptip()
})
} else if (opts.activation == "click") {
org_elem.click(function() {
active_tiptip();
return false
}).hover(function() {},
function() {
if (!opts.keepAlive) {
deactive_tiptip()
}
});
if (opts.keepAlive) {
tiptip_holder.hover(function() {},
function() {
deactive_tiptip()
})
}
}
function active_tiptip() {
opts.enter.call(this);
tiptip_content.html(org_title);
tiptip_holder.hide().removeAttr("class").css("margin", "0");
tiptip_arrow.removeAttr("style");
var top = parseInt(org_elem.offset()['top']);
var left = parseInt(org_elem.offset()['left']);
var org_width = parseInt(org_elem.outerWidth());
var org_height = parseInt(org_elem.outerHeight());
var tip_w = tiptip_holder.outerWidth();
var tip_h = tiptip_holder.outerHeight();
var w_compare = Math.round((org_width - tip_w) / 2);
var h_compare = Math.round((org_height - tip_h) / 2);
var marg_left = Math.round(left + w_compare);
var marg_top = Math.round(top + org_height + opts.edgeOffset);
var t_class = "";
var arrow_top = "";
var arrow_left = Math.round(tip_w - 12) / 2;
if (opts.defaultPosition == "bottom") {
t_class = "_bottom"
} else if (opts.defaultPosition == "top") {
t_class = "_top"
} else if (opts.defaultPosition == "left") {
t_class = "_left"
} else if (opts.defaultPosition == "right") {
t_class = "_right"
}
var right_compare = (w_compare + left) < parseInt($(window).scrollLeft());
var left_compare = (tip_w + left) > parseInt($(window).width());
if ((right_compare && w_compare < 0) || (t_class == "_right" && !left_compare) || (t_class == "_left" && left < (tip_w + opts.edgeOffset + 5))) {
t_class = "_right";
arrow_top = Math.round(tip_h - 13) / 2;
arrow_left = -12;
marg_left = Math.round(left + org_width + opts.edgeOffset);
marg_top = Math.round(top + h_compare)
} else if ((left_compare && w_compare < 0) || (t_class == "_left" && !right_compare)) {
t_class = "_left";
arrow_top = Math.round(tip_h - 13) / 2;
arrow_left = Math.round(tip_w);
marg_left = Math.round(left - (tip_w + opts.edgeOffset + 5));
marg_top = Math.round(top + h_compare)
}
var top_compare = (top + org_height + opts.edgeOffset + tip_h + 8) > parseInt($(window).height() + $(window).scrollTop());
var bottom_compare = ((top + org_height) - (opts.edgeOffset + tip_h + 8)) < 0;
if (top_compare || (t_class == "_bottom" && top_compare) || (t_class == "_top" && !bottom_compare)) {
if (t_class == "_top" || t_class == "_bottom") {
t_class = "_top"
} else {
t_class = t_class + "_top"
}
arrow_top = tip_h;
marg_top = Math.round(top - (tip_h + 5 + opts.edgeOffset))
} else if (bottom_compare | (t_class == "_top" && bottom_compare) || (t_class == "_bottom" && !top_compare)) {
if (t_class == "_top" || t_class == "_bottom") {
t_class = "_bottom"
} else {
t_class = t_class + "_bottom"
}
arrow_top = -12;
marg_top = Math.round(top + org_height + opts.edgeOffset)
}
if (t_class == "_right_top" || t_class == "_left_top") {
marg_top = marg_top + 5
} else if (t_class == "_right_bottom" || t_class == "_left_bottom") {
marg_top = marg_top - 5
}
if (t_class == "_left_top" || t_class == "_left_bottom") {
marg_left = marg_left + 5
}
tiptip_arrow.css({
"margin-left": arrow_left + "px",
"margin-top": arrow_top + "px"
});
tiptip_holder.css({
"margin-left": marg_left + "px",
"margin-top": marg_top + "px"
}).attr("class", "tip" + t_class);
if (timeout) {
clearTimeout(timeout)
}
timeout = setTimeout(function() {
tiptip_holder.stop(true, true).fadeIn(opts.fadeIn)
},
opts.delay)
}
function deactive_tiptip() {
opts.exit.call(this);
if (timeout) {
clearTimeout(timeout)
}
tiptip_holder.fadeOut(opts.fadeOut)
}
}
})
}
})(jQuery);
</code>
~ (function($) {
$.fn.tipTip = function(options) {
var defaults = {
activation: "hover",
keepAlive: false,
maxWidth: "200px",
edgeOffset: 3,
defaultPosition: "bottom",
delay: 400,
fadeIn: 200,
fadeOut: 200,
attribute: "title",
content: false,
enter: function() {},
exit: function() {}
};
var opts = $.extend(defaults, options);
if ($("#tiptip_holder").length <= 0) {
var tiptip_holder = $('<div id="tiptip_holder" style="max-width:' + opts.maxWidth + ';"></div>');
var tiptip_content = $('<div id="tiptip_content"></div>');
var tiptip_arrow = $('<div id="tiptip_arrow"></div>');
$("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('<div id="tiptip_arrow_inner"></div>')))
} else {
var tiptip_holder = $("#tiptip_holder");
var tiptip_content = $("#tiptip_content");
var tiptip_arrow = $("#tiptip_arrow")
}
return this.each(function() {
var org_elem = $(this);
if (opts.content) {
var org_title = opts.content
} else {
var org_title = org_elem.attr(opts.attribute)
}
if (org_title != "") {
if (!opts.content) {
org_elem.removeAttr(opts.attribute)
}
var timeout = false;
if (opts.activation == "hover") {
org_elem.hover(function() {
active_tiptip()
},
function() {
if (!opts.keepAlive) {
deactive_tiptip()
}
});
if (opts.keepAlive) {
tiptip_holder.hover(function() {},
function() {
deactive_tiptip()
})
}
} else if (opts.activation == "focus") {
org_elem.focus(function() {
active_tiptip()
}).blur(function() {
deactive_tiptip()
})
} else if (opts.activation == "click") {
org_elem.click(function() {
active_tiptip();
return false
}).hover(function() {},
function() {
if (!opts.keepAlive) {
deactive_tiptip()
}
});
if (opts.keepAlive) {
tiptip_holder.hover(function() {},
function() {
deactive_tiptip()
})
}
}
function active_tiptip() {
opts.enter.call(this);
tiptip_content.html(org_title);
tiptip_holder.hide().removeAttr("class").css("margin", "0");
tiptip_arrow.removeAttr("style");
var top = parseInt(org_elem.offset()['top']);
var left = parseInt(org_elem.offset()['left']);
var org_width = parseInt(org_elem.outerWidth());
var org_height = parseInt(org_elem.outerHeight());
var tip_w = tiptip_holder.outerWidth();
var tip_h = tiptip_holder.outerHeight();
var w_compare = Math.round((org_width - tip_w) / 2);
var h_compare = Math.round((org_height - tip_h) / 2);
var marg_left = Math.round(left + w_compare);
var marg_top = Math.round(top + org_height + opts.edgeOffset);
var t_class = "";
var arrow_top = "";
var arrow_left = Math.round(tip_w - 12) / 2;
if (opts.defaultPosition == "bottom") {
t_class = "_bottom"
} else if (opts.defaultPosition == "top") {
t_class = "_top"
} else if (opts.defaultPosition == "left") {
t_class = "_left"
} else if (opts.defaultPosition == "right") {
t_class = "_right"
}
var right_compare = (w_compare + left) < parseInt($(window).scrollLeft());
var left_compare = (tip_w + left) > parseInt($(window).width());
if ((right_compare && w_compare < 0) || (t_class == "_right" && !left_compare) || (t_class == "_left" && left < (tip_w + opts.edgeOffset + 5))) {
t_class = "_right";
arrow_top = Math.round(tip_h - 13) / 2;
arrow_left = -12;
marg_left = Math.round(left + org_width + opts.edgeOffset);
marg_top = Math.round(top + h_compare)
} else if ((left_compare && w_compare < 0) || (t_class == "_left" && !right_compare)) {
t_class = "_left";
arrow_top = Math.round(tip_h - 13) / 2;
arrow_left = Math.round(tip_w);
marg_left = Math.round(left - (tip_w + opts.edgeOffset + 5));
marg_top = Math.round(top + h_compare)
}
var top_compare = (top + org_height + opts.edgeOffset + tip_h + 8) > parseInt($(window).height() + $(window).scrollTop());
var bottom_compare = ((top + org_height) - (opts.edgeOffset + tip_h + 8)) < 0;
if (top_compare || (t_class == "_bottom" && top_compare) || (t_class == "_top" && !bottom_compare)) {
if (t_class == "_top" || t_class == "_bottom") {
t_class = "_top"
} else {
t_class = t_class + "_top"
}
arrow_top = tip_h;
marg_top = Math.round(top - (tip_h + 5 + opts.edgeOffset))
} else if (bottom_compare | (t_class == "_top" && bottom_compare) || (t_class == "_bottom" && !top_compare)) {
if (t_class == "_top" || t_class == "_bottom") {
t_class = "_bottom"
} else {
t_class = t_class + "_bottom"
}
arrow_top = -12;
marg_top = Math.round(top + org_height + opts.edgeOffset)
}
if (t_class == "_right_top" || t_class == "_left_top") {
marg_top = marg_top + 5
} else if (t_class == "_right_bottom" || t_class == "_left_bottom") {
marg_top = marg_top - 5
}
if (t_class == "_left_top" || t_class == "_left_bottom") {
marg_left = marg_left + 5
}
tiptip_arrow.css({
"margin-left": arrow_left + "px",
"margin-top": arrow_top + "px"
});
tiptip_holder.css({
"margin-left": marg_left + "px",
"margin-top": marg_top + "px"
}).attr("class", "tip" + t_class);
if (timeout) {
clearTimeout(timeout)
}
timeout = setTimeout(function() {
tiptip_holder.stop(true, true).fadeIn(opts.fadeIn)
},
opts.delay)
}
function deactive_tiptip() {
opts.exit.call(this);
if (timeout) {
clearTimeout(timeout)
}
tiptip_holder.fadeOut(opts.fadeOut)
}
}
})
}
})(jQuery);
</code>
这里还有有一句
修改相对应的标签就可以了,这里我的是#kings a标签。
<code>
$(document).ready(function() {
$("#Kings a").addClass("tooltip");
$(".tooltip").tipTip({
delay: 0,
defaultPosition: "top",
maxWidth: "250px"
}).show('fast');
});
</code>
$(document).ready(function() {
$("#Kings a").addClass("tooltip");
$(".tooltip").tipTip({
delay: 0,
defaultPosition: "top",
maxWidth: "250px"
}).show('fast');
});
</code>
CSS样式
<code>
#tiptip_holder {
display:none;
position:absolute;
top:0;
left:0;
z-index:99999
}
#tiptip_content {
font-size:12px;
color:#E5E5E5;
padding:5px 15px 4px 17px;
background:#000;
border-radius:15px;
-moz-border-radius:15px;
-webkit-border-radius:15px;
box-shadow:0 0 3px #000;
-moz-box-shadow:0 0 3px #000;
-webkit-box-shadow:0 0 3px #000;
opacity:0.7
}
#tiptip_arrow,#tiptip_arrow_inner {
position:absolute;
border-color:transparent;
border-style:solid;
border-width:7px
}
#tiptip_holder.tip_top #tiptip_arrow_inner {
margin-top:-7px;
margin-left:-7px;
border-top-color:#535353;
z-index:10
}</code>
#tiptip_holder {
display:none;
position:absolute;
top:0;
left:0;
z-index:99999
}
#tiptip_content {
font-size:12px;
color:#E5E5E5;
padding:5px 15px 4px 17px;
background:#000;
border-radius:15px;
-moz-border-radius:15px;
-webkit-border-radius:15px;
box-shadow:0 0 3px #000;
-moz-box-shadow:0 0 3px #000;
-webkit-box-shadow:0 0 3px #000;
opacity:0.7
}
#tiptip_arrow,#tiptip_arrow_inner {
position:absolute;
border-color:transparent;
border-style:solid;
border-width:7px
}
#tiptip_holder.tip_top #tiptip_arrow_inner {
margin-top:-7px;
margin-left:-7px;
border-top-color:#535353;
z-index:10
}</code>