Use simple jQuery + CSS to create a custom a tag title tooltip

Use simple jQuery + CSS to create a custom a tag title tooltip
Introduction

Use simple jQuery+CSS to create a custom a tag title prompt to replace the browser default behavior. As shown in the figure:



Javascript code

Copy code
The code is as follows:

</pre><pre name="code" class="javascript">$(function() {
$("a[title]").each(function() {
var a = $(this);
var title = a.attr('title');
if (title == undefined || title == "") return;
a.data('title', title)
.removeAttr('title')
.hover(
function () {
var offset = a.offset();
$("<div id=\"anchortitlecontainer\"></div>").appendTo($("body")).html(title).css({ top: offset.top + a.outerHeight() + 10, left: offset.left + a.outerWidth() + 1 }).fadeIn(function () {
var pop = $(this);
setTimeout(function () { pop.remove(); }, pop.text().length*80);
});
},
function() { $("#anchortitlecontainer").remove(); }
);
});
});

Don't forget to reference jQuery.

In the code, setTimeout(function () { pop.remove(); }, pop.text().length*80); calculates the prompt time based on the title length to prevent a too short title from being too long or a too long title from being too short.

CSS Code

Copy code
The code is as follows:

#anchortitlecontainer {
position: absolute;
z-index: 5999;
border: solid 1px #315B6C;
padding: 5px;
color: #315B6C;
background: none repeat scroll 0 0 #FFFFFF;
border-radius: 5px;
display: none;
}
#anchortitlecontainer:before {
position: absolute;
bottom: auto;
left: -1px;
top: -15px;
border-color: transparent transparent transparent #315B6C;
border-style: solid;
border-width: 15px;
content: "";
display: block;
width: 0;
}
#anchortitlecontainer:after {
position: absolute;
bottom: auto;
left: 0px;
top: -13px;
border-color: transparent transparent transparent #FFFFFF;
border-style: solid;
border-width: 15px;
content: "";
display: block;
width: 0;
}

Use some CSS3 features and avoid using images.

I am not a CSS expert, so it took me some time to come up with this style. It would be my honor if someone could use it. :)

<<:  How to use mysql index merge

>>:  How to create a scroll bar with fixed navigation and left and right sliding using CSS

Recommend

JavaScript array merging case study

Method 1: var a = [1,2,3]; var b=[4,5] a = a.conc...

Solve MySQL login error: 'Access denied for user 'root'@'localhost'

First of all, I don't know why I can't lo...

HTML Language Encyclopedia

123WORDPRESS.COM--HTML超文本标记语言速查手册<!-- --> !D...

PHP related paths and modification methods in Ubuntu environment

PHP related paths in Ubuntu environment PHP path ...

XHTML Tutorial: XHTML Basics for Beginners

<br />This site’s original content, please i...

Detailed explanation of Nginx timeout configuration

I recently used nginx in a project, and used Java...

10 key differences between HTML5 and HTML4

HTML5 is the next version of the HTML standard. M...

How to quickly copy large files under Linux

Copy data When copying data remotely, we usually ...

Detailed explanation of 8 ways to pass parameters in Vue routing components

When we develop a single-page application, someti...

Detailed explanation of Vue two-way binding

Table of contents 1. Two-way binding 2. Will the ...

js implements single click to modify the table

Pure js implements a single-click editable table ...

Will the deprecated Docker be replaced by Podman?

The Kubernetes team recently announced that it wi...