jQuery之图片提示效果

目标:

我们的目标是实现鼠标在图片上移动的时候,可以看到大图展示和超链接自带的提示。

实现具体步骤如下:

  1. 当鼠标滑入图片超链接,创建一个<div>元素,内容为插入的图片及其title属性的值;
  2. 将创建的元素追加到文档中;
  3. 为元素设置x、y坐标,使其显示 在鼠标位置的旁边;
  4. 当鼠标滑出图片超链接时,移除<div>元素。

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>超链接提示图片</title>
    <script type="text/javascript" src="jquery-3.3.1.min.js"></script>
    <style>
        #tooltip{
            position:absolute;
            border:1px solid #ccc;
            background:#333;
            padding:2px;
            display:none;
            color:#fff;
        }
    </style>
</head>
<body>
<h3 class="title">超链接提示图片</h3>
<div class="small">
    <a href="../images/炊烟.jpg" class="tooltip" title="炊烟"><img class="current" src="../images/炊烟.jpg" width="128px" alt="水天一线" /></a>
    <a href="../images/水天一线.jpg" class="tooltip" title="水天一线"><img src="../images/水天一线.jpg" width="128px" alt="水天一线" /></a>
    <a href="../images/窗外人生.jpg" class="tooltip" title="窗外人生"><img src="../images/窗外人生.jpg" width="128px" alt="水天一线" /></a>
    <a href="../images/路3.jpg" class="tooltip" title="路3"><img src="../images/路3.jpg" width="128px" alt="水天一线" /></a>
    <a href="../images/水天一线.jpg" class="tooltip" title="水天一线"><img src="../images/水天一线.jpg" width="128px" alt="水天一线" /></a>
</div>

</body>
<script type="text/javascript">

    $(function(){
        var x = 10;
        var y = 20;
        $("a.tooltip").mouseover(function(e){
            this.myTitle = this.title;
            this.title = "";
            var imgTitle = this.myTitle? "<br/>" + this.myTitle : "";
            var tooltip = "<div id='tooltip'><img src='"+ this.href +"' alt=''/>"+imgTitle+"<\/div>"; //创建 div 元素
            $("body").append(tooltip); //把它追加到文档中
            $("#tooltip")
                .css({
                    "top": (e.pageY+y) + "px",
                    "left":  (e.pageX+x)  + "px"
                }).show("fast");     //设置x坐标和y坐标,并且显示
        }).mouseout(function(){
            this.title = this.myTitle;
            $("#tooltip").remove();     //移除
        }).mousemove(function(e){
            $("#tooltip")
                .css({
                    "top": (e.pageY+y) + "px",
                    "left":  (e.pageX+x)  + "px"
                });
        });
    })

</script>
</html>

注意事项:

  1. 为了防止自带提示的干扰,添加新属性的同时清空原属性;
  2. 根据鼠标和提示框的位置,给个合适的初值更利于交互;
  3. 为了提示效果可以随鼠标一起动,添加mousemove事件是非常必要的。

总结:

jQuery确实非常方便好用,简简单单用几个DOM方法就可以实现一个很好的交互效果。毕竟其设计初衷就是write less, do more. 关于其缺点还得在后续的使用中慢慢去对比发现。

posted @ 2018-09-09 15:48  沉浮乡土  阅读(507)  评论(0编辑  收藏  举报