代码部分:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page Title</title>
<script src="jquery-3.3.1.min.js"></script>
<style>
*{
margin: 0;
padding: 0
}
#tooltip{
position: absolute;
/* background: rgba(0, 0, 0, 0); */
}
img{
width: 200px;
height: 340px;
margin-left: 10px;
}
#imgtip{
position: absolute;
/* width: 400px;
height: 680px; */
}
</style>
</head>
<body>
<a id="link" href="http://www.baidu.com" title="跳转至百度">出门左转百度</a>
<br>
<img src="../img/卡莎.jpeg" title="卡莎">
<img src="../img/405263107449.jpeg" title="伊芙琳">
<img src="../img/405263107443.jpeg" title="阿卡丽">
<img src="../img/405263107437.jpeg" title="阿狸">
<script>
$(function(){
var X = 10;
var Y = 20;
$("#link").mouseover(function(e){
this.myTitle = this.title;//获取原先的title值
this.title = "";//清空原先的title值
var tooltip = "<div id='tooltip'>" + this.myTitle + "</div>";//创建新的div 类似于html()方法
$("body").append(tooltip);//插入新的div到文档中
$("#tooltip").css({
"top": (e.pageY + Y) + "px",//设置提示的位置,与鼠标位置有关
"left": (e.pageX + X) +"px"
}).show("fast"); //show()方法的speed参数规定元素的出现速度
})//链式操作同样可以用于绑定事件
.mouseout(function(){
this.title = this.myTitle;//鼠标离开后,将title值还原,避免下一次划入时myTitle = ""
$("#tooltip").remove();//移除提示
}).mousemove(function(e){
$("#tooltip").css({
"top": (e.pageY + Y) + "px",//使提示的位置随着鼠标位置而变化
"left": (e.pageX + X) +"px"
});
});
$("img").mouseover(function(e){
this.myTitle = this.title;
this.title = "";
var imgTitle = this.myTitle ? "<br/>" + this.myTitle : "";
var tooltip = "<div id = 'tooltip'><img src='" + this.src + "'>" + imgTitle + "</div>";
$("body").append(tooltip);
$("#tooltip").css({
"top": (e.pageY + Y) + "px",
"left": (e.pageX + X) +"px"
}).show("fast");
}).mouseout(function(){
this.title = this.myTitle;
$("#tooltip").remove();
}).mousemove(function(e){
$("#tooltip").css({
"top": (e.pageY + Y) + "px",//使提示的位置随着鼠标位置而变化
"left": (e.pageX + X) +"px"
});
});
})
</script>
</body>
</html>

事实上仍然有一些纰漏:

为了美观起见,应该把title居中对齐,但是:

在整个tooltip div中设置text-indent/text-align/margin等,或是将文字放在p标签里再设置这些属性都是无效的,暂时不知道应该怎么进行调整,回头来解决这个问题

《锋利的JQuery》中重写超链接与图片提示效果的更多相关文章

  1. PHP判断图片是否存在和jquery中load事件对图片的处理

    在公司的图片服务器中,同一个产品一般会存在对应的大图和缩略图.因此,我们在开发手机端的web网站时,默认使用的是产品图片的缩略图,查询数据库时获取的是缩略图的路径.但是,不知什么原因,时不时的,测试的 ...

  2. 基于 jQuery 实现的精致作品集图片导航效果

    今天,我们要用 jQuery 来创建一个作品集图像的导航模板.我们的想法是,以分组的方式显示一组作品集,并通过二维的方式(水平/垂直)来浏览.任一箭头或当前图像下方的小盒子可以作为导航使用. 在线演示 ...

  3. 使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态

    查看本章节 查看作业目录 需求说明: 使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态.点击列表的项,切 ...

  4. magento中如何实现产品图片放大效果

    Magento列表页用jQuery实现产品图片放大效果今天看到个网站,鼠标移到列表页的产品图片上,旁边会弹出一个大图,感觉不错,就自己在Magento里写了个.先看看效果 这个效果比较好实现,打开li ...

  5. jquery中的uploadfile关于图片上上传的插件的应用

    ajaxFileUpload是一个异步上传文件的jQuery插件. 传一个不知道什么版本的上来,以后不用到处找了. 语法:$.ajaxFileUpload([options]) options参数说明 ...

  6. 锋利的jQuery中的事件与动画

    奋夜的奋斗  ----  事件与动画 ----  来自地狱的战镰 小小的单词难不倒我们哦!!!!!!!    bind:绑定     unbind:接触绑定    toggle:栓牢   fadeou ...

  7. [锋利JQ]-图片提示效果

    新知识点: 在HTML-Dom中 "style" 属性,是所有HTML标签共有的一个对象属性,这个对象属性可以为元素设置内嵌样式. style是元素的属性,但是它自身则是一个对象, ...

  8. jQuery中turn.js(翻页效果)学习笔记

    Turn.js是一个内置的jQuery翻页插件1 html中引入<script type="text/javascript" src="js/turn.js&quo ...

  9. jquery实现多行文字图片滚动效果

    今儿分享一个jquery实现多行滚动效果. 我看一些论坛网站上面,公告处用的较多. 代码如下 复制代码 // 多行滚动(function($){$.fn.extend({Scroll:function ...

随机推荐

  1. C#实现设置系统时间

    using System; using System.Runtime.InteropServices; using System.Windows.Forms; namespace Demo { pub ...

  2. <亲测>阿里云centos7安装redis

    安装redis yum install redis 启动redis systemctl start redis.service 设置redis开机启动 systemctl enable redis.s ...

  3. Unity3D工程版本管理方案【转自 兜里】

    参阅:http://outofmemory.cn/wr/?u=http%3A%2F%2Fblog.dou.li%2Funity3d%25e5%25b7%25a5%25e7%25a8%258b%25e7 ...

  4. js中的内置对象(还没怎么看)

         在js里,一切皆为或者皆可以被用作对象.可通过new一个对象或者直接以字面量形式创建变量(如var i="aaa"),所有变量都有对象的性质.注意:通过字面量创建的对象在 ...

  5. golang中defer的理解

    在golang当中,defer代码块会在函数调用链表中增加一个函数调用.这个函数调用不是普通的函数调用,而是会在函数正常返回,也就是return之后添加一个函数调用.因此,defer通常用来释放函数内 ...

  6. python面向对象 : 抽象类(接口类),多态,封装(私有制封装)

    一. 抽象类(接口类) 与java一样, python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类, 它的特殊之处在于只能被继承, 不能被实例化. 从设计角度去看, 如果类是从现实对 ...

  7. [UE4]网络游戏重点思考

    一.哪些逻辑放服务器,哪些逻辑放客户端? 二.它们之间怎么通信?会不会覆盖? 三.服务器应该做哪些验证?(防止外挂)

  8. tpadmin的坑收集 nginx下配置tp5失败

    如下: 1.ADMIN模块如要关联查询,model的函数名一定不要有“_”下划线,否则找不到 /common/model/**.php 如果把函数名file写成“**_file”,调用时,$vo.** ...

  9. IBM MQ常用命令

    常用命令 创建队列管理器crtmqm –q QMgrName-q是指创建缺省的队列管理器删除队列管理器dltmqm QmgrName启动队列管理器strmqm QmgrName如果是启动默认的队列管理 ...

  10. Abp.Linq.Extensions扩展(1)--static class QueryableExtensions

    // 摘要:        //     Used for paging with an Abp.Application.Services.Dto.IPagedResultRequest object ...