JQ实现鼠标移入img预览图片练习

耀世
2022-11-16 / 0 评论 / 29 阅读 / 正在检测是否收录...

效果演示图

laizwfan.png

需求分析

  • 需求

    • 写一组有效果和没效果的对比分析
    • 当鼠标移进图片时变大进入预览图片
    • 当鼠标持续移动的时候预览图也要跟进
  • 注意

    • 复制的代码图片路径肯定不对
    • 路径务必更换成你自己的路径
    • JS代码比较复杂 都有注释慢慢看
    • 没有JQ代码块 可以使用外链的方式引入

      <script src="https://code.jquery.com/jquery-3.6.1.js"></script>

书写代码

  • HTML代码块

    <!DOCTYPE html>
    <html>
      <head>
          <meta charset="utf-8">
          <title>图片显示</title>
          <script src="js/jQuery3.6.1.js"></script>
          <script src="js/index.js"></script>
          <style type="text/css">
              body{
                  margin: 0;
                  padding: 40px;
                  background: #fff;
                  font: 80% Arial,Helvetica,sans-serif;
                  color: #555;
                  line-height: 180%;
              }
              img{
                  border: none;
              }
              ul,li{
                  margin: 0;
                  padding: 0;
              }
              li{
                  width: 140px;
                  height: 140px;
                  list-style: none;
                  float: left;
                  display: inline;
                  margin-right: 10px;
                  margin-top: 10px;
                  border: 1px solid #AAAAAA;
              }
              #tooltip{
                  position: absolute;
                  border: 1px solid #ccc;
                  background-color: #333;
                  padding: 2px;
                  display: none;
                  color: #fff;
              }
              .toolbox{
                  width: 100%;
                  height: 300px;
              }
              .toolbox img{
                  width: 140px;
                  height: 140px;
              }
              .nobox img{
                  width: 140px;
                  height: 140px;
              }
              .nobox{
                  width: 100%;
                  height: 300px;
              }
          </style>
      </head>
      <body>
          <div class="toolbox">
              <h3>有效果</h3>
              <ul>
                  <li>
                      <a href="img/lufei.jpg" class="tooltip" title="路飞">                        
                          <img src="img/lufei.jpg" alt="路飞">
                      </a>
                  </li>
                  <li>
                      <a href="img/suolong.jpg" class="tooltip" title="索隆">
                          <img src="img/suolong.jpg" alt="索隆">
                      </a>
                  </li>
                  <li>
                      <a href="img/shanzhi.jpg" class="tooltip" title="山治">
                          <img src="img/shanzhi.jpg" alt="山治">
                      </a>
                  </li>
                  <li>
                      <a href="img/namei.jpg" class="tooltip" title="娜美">
                          <img src="img/namei.jpg" alt="娜美">
                      </a>
                  </li>
                  <li>
                      <a href="img/luobin.jpg" class="tooltip" title="罗宾">
                          <img src="img/luobin.jpg" alt="罗宾">
                      </a>
                  </li>
                  <li>
                      <a href="img/qiaoba.jpg" class="tooltip" title="乔巴">
                          <img src="img/qiaoba.jpg" alt="乔巴">
                      </a>
                  </li>
                  <li>
                      <a href="img/buluke.jpg" class="tooltip" title="布鲁克">
                          <img src="img/buluke.jpg" alt="布鲁克">
                      </a>
                  </li>
                  <li>
                      <a href="img/shenping.jpg" class="tooltip" title="甚平">
                          <img src="img/shenping.jpg" alt="甚平">
                      </a>
                  </li>
                  <li>
                      <a href="img/fulanqi.jpg" class="tooltip" title="弗兰奇">
                          <img src="img/fulanqi.jpg" alt="弗兰奇">
                      </a>
                  </li>
                  <li>
                      <a href="img/wusuopu.jpg" class="tooltip" title="乌索普">
                          <img src="img/wusuopu.jpg" alt="乌索普">
                      </a>
                  </li>
              </ul>
          </div>
          <div class="nobox">
              <h3>无效果</h3>
              <ul>
                  <li>
                      <a href="img/lufei.jpg" title="路飞">
                          <img src="img/lufei.jpg" alt="路飞">
                      </a>
                  </li>
                  <li>
                      <a href="img/suolong.jpg" title="索隆">
                          <img src="img/suolong.jpg" alt="索隆">
                      </a>
                  </li>
                  <li>
                      <a href="img/shanzhi.jpg" title="山治">
                          <img src="img/shanzhi.jpg" alt="山治">
                      </a>
                  </li>
                  <li>
                      <a href="img/namei.jpg" title="娜美">
                          <img src="img/namei.jpg" alt="娜美">
                      </a>
                  </li>
                  <li>
                      <a href="img/luobin.jpg" title="罗宾">
                          <img src="img/luobin.jpg" alt="罗宾">
                      </a>
                  </li>
                  <li>
                      <a href="img/qiaoba.jpg" title="乔巴">
                          <img src="img/qiaoba.jpg" alt="乔巴">
                      </a>
                  </li>
                  <li>
                      <a href="img/buluke.jpg" title="布鲁克">
                          <img src="img/buluke.jpg" alt="布鲁克">
                      </a>
                  </li>
                  <li>
                      <a href="img/shenping.jpg" title="甚平">
                          <img src="img/shenping.jpg" alt="甚平">
                      </a>
                  </li>
                  <li>
                      <a href="img/fulanqi.jpg" title="弗兰奇">
                          <img src="img/fulanqi.jpg" alt="弗兰奇">
                      </a>
                  </li>
                  <li>
                      <a href="img/wusuopu.jpg" title="乌索普">
                          <img src="img/wusuopu.jpg" alt="乌索普">
                      </a>
                  </li>
              </ul>
          </div>
      </body>
    </html>
  • JavaScript代码块

    $(function(){
      var x = 10;
      var y = 20;
      
      //鼠标移入图片的事件绑定
      $("a.tooltip").mouseover(function(e){    //鼠标进入元素
          //获取标签的title属性
          this.myTitle = this.title;
          //设为空
          this.title = "";
          //拼接图片标题,一会放于底部
          var imgTitle = this.myTitle ? "<br/>" + this.myTitle : "";
          //创建div元素 包含img标签
          var tooltip = `<div id = 'tooltip'>
                              <img src='`+this.href+`' alt='产品预览图'/>`+imgTitle+`<\/div>`;
          //把拼接好的字符串追加到文档中
          $("body").append(tooltip);
          //设置x坐标和y坐标并且显示
          $("#tooltip").css({
              "top":(e.pageY + y) + "px",
              "left":(e.pageX + x) + "px"
          }).show("fast");                                        
      }).mouseout(function(){        //鼠标离开元素
          //鼠标离开的时候把a标签的title属性设置回来
          this.title = this.myTitle;
          //移除样式
          $("#tooltip").remove();
      }).mousemove(function(e){    //鼠标在元素上持续移动的事件 持续触发
          //持续修改,设置div坐标
          $("#tooltip").css({
              "top":(e.pageY + y) + "px",
              "left":(e.pageX + x) + "px"
          });
      });
    });

    寄语

    小孩子一出生就会哭,
    可见忧伤是人类的本能,笑只是一种能力!
     祝您在代码的路上坚持下去!

0

评论 (0)

取消