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

Summary of some common uses of refs in React

Table of contents What are Refs 1. String type Re...

How to install MySQL for beginners (proven effective)

1. Software Download MySQL download and installat...

How to disable the automatic password saving prompt function of Chrome browser

Note: In web development, after adding autocomplet...

Vue realizes adding watermark to uploaded pictures (upgraded version)

The vue project implements an upgraded version of...

Horizontal header menu implemented with CSS3

Result:Implementation Code html <nav class=&qu...

Similar to HTML tags: strong and em, q, cite, blockquote

There are some tags in XHTML that have similar fu...

JS calculates the probability of winning based on the prize weight

Table of contents 1. Example scenario 1.1. Set th...

Analysis of the solution to Nginx Session sharing problem

This article mainly introduces the solution to th...

Detailed explanation of Redis master-slave replication practice using Docker

Table of contents 1. Background 2. Operation step...

How to connect to virtual machine MySQL using VScode in window environment

1. Virtual Machine Side 1. Find the mysql configu...

Multiple methods to modify MySQL root password (recommended)

Method 1: Use the SET PASSWORD command MySQL -u r...

MySQL join buffer principle

Table of contents 1. MySQL join buffer 2. JoinBuf...

Getting Started with MySQL - Concepts

1. What is it? MySQL is the most popular relation...

A super detailed Vue-Router step-by-step tutorial

Table of contents 1. router-view 2. router-link 3...