jQuery实现百度图片移入移出内容提示框上下左右移动的效果

yizhihongxing

要实现“jQuery实现百度图片移入移出内容提示框上下左右移动的效果”的功能,我们需要使用jQuery的动画效果,包括fadeIn/fadeOut和animate两种方法。

下面是具体的实现步骤:

  1. 建立HTML骨架结构:包含图片列表和内容提示框两个部分。
<div class="img-list">
  <img src="" alt="">
  <img src="" alt="">
  <img src="" alt="">
  ...
</div>

<div class="tip-box">
  <p class="title">图片标题</p>
  <p class="desc">图片描述</p>
</div>
  1. 使用CSS设置样式,为内容提示框添加背景色、阴影和固定定位,为标题和描述添加样式。
.tip-box {
  width: 200px;
  padding: 10px;
  background-color: #fff;
  box-shadow: 1px 1px 5px rgba(0, 0, 0, .3);
  position: fixed;
  z-index: 999;
}

.title {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 5px;
}

.desc {
  font-size: 14px;
  color: #666;
}
  1. 编写jQuery代码,实现提示框的显隐和位置移动效果。以下是完整代码:
$(function() {
  var $tipBox = $('.tip-box'); // 获取提示框元素
  $('.img-list img').on('mouseover', function(e) {
    var $this = $(this); // 获取当前鼠标滑过的图片元素
    var left = e.pageX + 20; // 计算提示框左侧位置
    var top = e.pageY - $tipBox.outerHeight() - 20; // 计算提示框顶部位置
    var title = $this.attr('alt'); // 获取图片标题
    var desc = $this.data('desc'); // 获取图片描述
    $tipBox.find('.title').text(title); // 添加标题内容
    $tipBox.find('.desc').text(desc); // 添加描述内容
    $tipBox.hide().stop().fadeIn(); // 显示提示框
    $tipBox.css({ left: left, top: top }); // 移动提示框到计算位置
  }).on('mouseout', function() {
    $tipBox.stop().fadeOut(); // 隐藏提示框
  });
});
  1. 对代码进行解释:

  2. 首先,通过jQuery选择器获取提示框元素和鼠标滑过的图片元素。

  3. 然后,在图片元素上绑定mouseover和mouseout事件,用于显示和隐藏提示框。
  4. 在mouseover事件中,计算提示框左侧和顶部的位置,获取图片的标题和描述内容,分别添加到提示框中,并使用fadeIn方法显示提示框,使用css方法移动提示框到计算位置。
  5. 在mouseout事件中,使用fadeOut方法隐藏提示框。

  6. 示例说明:

  7. 代码中使用了外部样式表,因此需要引入jQuery和样式表文件。示例代码中采用CDN引入jQuery。

<head>
  <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
  <link rel="stylesheet" href="style.css">
</head>
  • 在HTML中的img标签需要设置alt和data-desc属性,分别表示图片的标题和描述,例如:
<img src="img/1.jpg" alt="图片标题" data-desc="图片描述">
  • 示例效果展示:

当鼠标从图片上滑过时,会在图片上方出现一个提示框,显示图片的标题和描述,提示框可以随着鼠标的移动而移动。当鼠标移出图片时,提示框会自动隐藏。

除了以上示例,还可以使用jQuery的animate方法实现提示框的左右移动效果,具体实现方式可以参考下面的代码。

var left = e.pageX + 20; // 计算提示框左侧位置
var top = e.pageY - $tipBox.outerHeight() - 20; // 计算提示框顶部位置
var title = $this.attr('alt'); // 获取图片标题
var desc = $this.data('desc'); // 获取图片描述
$tipBox.find('.title').text(title); // 添加标题内容
$tipBox.find('.desc').text(desc); // 添加描述内容
$tipBox.hide().stop().fadeIn(); // 显示提示框
$tipBox.css({ left: left, top: top }); // 移动提示框到计算位置
// 左右移动动画效果
if (left + $tipBox.outerWidth() > $(window).width()) {
  $tipBox.stop().animate({ left: e.pageX - $tipBox.outerWidth() - 20 }, 200);
} else {
  $tipBox.stop().animate({ left: e.pageX + 20 }, 200);
}

这里计算提示框左侧位置和显示方式与之前相同,但是在后面添加了一个判断,如果提示框右侧超出了浏览器窗口的宽度,就使用animate方法将提示框向左移动到图片的左侧,否则向右移动到图片的右侧。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery实现百度图片移入移出内容提示框上下左右移动的效果 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 8款非常棒的响应式jQuery 幻灯片插件推荐

    8款非常棒的响应式jQuery 幻灯片插件推荐 1. 插件概述 在现代 Web 设计中,响应式设计和幻灯片展示已成为必不可少的元素。为了满足这方面的需求,开发人员们开发了一系列优秀的响应式 jQuery 幻灯片插件,这些插件提供了各种不同的功能和效果。 本文将介绍 8 款非常棒的响应式 jQuery 幻灯片插件,你可以根据你的项目需求来选择合适的。 2. 插…

    css 2023年6月11日
    00
  • css3实现3d旋转动画特效

    下面是实现 CSS3 3D 旋转动画特效的完整攻略: 1. 利用 transform 属性实现旋转 在 CSS3 中,一个重要的属性 transform 用于对元素进行转换操作,包括旋转、平移、缩放、倾斜等,其中利用 rotateX()、rotateY() 和 rotateZ() 可以对元素进行 3D 旋转,分别代表绕 X 轴、Y 轴和 Z 轴旋转。 下面以…

    css 2023年6月10日
    00
  • html5 CSS过度-webkit-transition使用介绍

    HTML5 CSS过度-webkit-transition使用介绍 -webkit-transition 是 CSS3 中的一个属性,用于实现元素的过渡效果。本文将详细讲解 -webkit-transition 的使用方法和示例说明。 1. -webkit-transition 的语法 -webkit-transition 属性的语法如下: -webkit-…

    css 2023年5月18日
    00
  • Webpack 中 css import 使用 alias 相对路径的方法

    在使用 Webpack 打包项目时,为了更方便地引用 CSS 样式,我们通常会使用 alias 别名来定义 CSS 文件存放的路径。但是,在使用 alias 别名时,如何在 CSS 中正确引用文件呢?下面来详细介绍一下这个过程。 1. 配置 Webpack 首先,在 Webpack 配置文件中,需要定义别名 alias,以便正确引用 CSS 文件。可以在 w…

    css 2023年6月9日
    00
  • CSS计数器counter()的用法简介

    CSS计数器counter()的用法简介 CSS计数器是CSS3中的一个非常实用的功能,它可以帮助我们对一些元素进行动态计数,生成序号等操作。在一些需要序号展示的场景中,CSS计数器可以帮助我们节省很多代码量,提高开发效率。 使用counter()函数 counter()函数接收两个参数,第一个参数用于设置计数器的名称,第二个参数是用于设置计数器的开始值。使…

    css 2023年6月13日
    00
  • 浅析几个CSS3常用功能的写法

    浅析几个CSS3常用功能的写法 一、圆角边框(border-radius) border-radius属性用来设置元素的圆角。可以针对一个元素的四个角分别设置圆角半径,也可以设置整个元素的圆角半径。其语法如下: selector { border-radius: 参数1 参数2 参数3 参数4; } 其中,参数1-参数4表示四角的半径,如果只有一个参数,其值…

    css 2023年6月9日
    00
  • 从三方面加速CSS样式作用网页速度

    从三方面加速CSS样式作用对网页速度的影响可以从以下三个方面入手进行优化: 1. 压缩CSS文件 为了减小CSS文件的体积,可以对CSS文件进行压缩。压缩CSS文件可以有效地减少文件大小,缩短文件下载时间。在压缩CSS文件时,需要去掉文件中多余的空格、注释以及无用的代码,可以使用在线工具或者npm包进行压缩。以下是一个使用npm包对CSS文件进行压缩的示例:…

    css 2023年6月10日
    00
  • 简单介绍CSS3中Media Query的使用

    下面是“简单介绍CSS3中Media Query的使用”的完整攻略。 什么是Media Query? Media Query是用于响应式设计的CSS3语法,它可以根据设备或用户使用的浏览器的尺寸、方向、解析度等特性,提供不同的样式,从而让网页在不同设备和屏幕尺寸下拥有更好的布局和体验。 Media Query的语法 Media Query语法由@media规…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部