jQuery鼠标滑过横向时间轴样式(代码详解)

下面我将为你详细讲解“jQuery鼠标滑过横向时间轴样式(代码详解)”的完整攻略。

1. 项目简介

本项目实现了一个鼠标滑过横向时间轴的效果。鼠标滑过某个时间节点时,该节点会高亮显示,并显示该时间点对应的详细信息。

2. 实现细节

2.1 HTML结构

为了实现鼠标滑过横向时间轴的效果,我们需要使用HTML和CSS先创建出时间轴的基本样式。HTML结构如下:

<div class="timeline-wrap">
  <div class="timeline-items-wrap">
    <div class="timeline-item" data-time="2015"><span>2015</span></div>
    <div class="timeline-item" data-time="2016"><span>2016</span></div>
    <div class="timeline-item" data-time="2017"><span>2017</span></div>
    <div class="timeline-item" data-time="2018"><span>2018</span></div>
    <div class="timeline-item" data-time="2019"><span>2019</span></div>
    <div class="timeline-item" data-time="2020"><span>2020</span></div>
  </div>
  <div class="timeline-indicator-wrap">
    <div class="timeline-indicator"></div>
  </div>
</div>

<div class="timeline-info-wrap">
  <div class="timeline-info">
    <h3 class="timeline-info-title">2015</h3>
    <div class="timeline-info-content">
      <p>这是2015年的详细信息</p>
    </div>
  </div>
  <div class="timeline-info">
    <h3 class="timeline-info-title">2016</h3>
    <div class="timeline-info-content">
      <p>这是2016年的详细信息</p>
    </div>
  </div>
  <div class="timeline-info">
    <h3 class="timeline-info-title">2017</h3>
    <div class="timeline-info-content">
      <p>这是2017年的详细信息</p>
    </div>
  </div>
  <div class="timeline-info">
    <h3 class="timeline-info-title">2018</h3>
    <div class="timeline-info-content">
      <p>这是2018年的详细信息</p>
    </div>
  </div>
  <div class="timeline-info">
    <h3 class="timeline-info-title">2019</h3>
    <div class="timeline-info-content">
      <p>这是2019年的详细信息</p>
    </div>
  </div>
  <div class="timeline-info">
    <h3 class="timeline-info-title">2020</h3>
    <div class="timeline-info-content">
      <p>这是2020年的详细信息</p>
    </div>
  </div>
</div>

其中,.timeline-wrap用来包裹整个时间轴,.timeline-items-wrap用来包裹所有的时间节点,.timeline-item用来表示一个时间节点,每个时间节点都有data-time属性来表示它所对应的年份。.timeline-indicator-wrap.timeline-indicator用来表示时间轴上的指示器,.timeline-info-wrap.timeline-info用来表示每个时间节点对应的详细信息。

2.2 CSS样式

接下来,我们来写CSS样式。具体的样式详见代码。

2.3 jQuery代码

最后,我们需要使用jQuery来实现鼠标滑过横向时间轴的效果。具体的代码如下:

$(function () {
  var $timeline = $('.timeline-wrap');
  var $items = $('.timeline-item', $timeline);
  var $indicator = $('.timeline-indicator', $timeline);
  var $infoWrap = $('.timeline-info-wrap');
  var $info = $('.timeline-info', $infoWrap);

  var itemWidth = $items.width();
  var itemNum = $items.length;
  var wrapWidth = itemNum * itemWidth;

  $('.timeline-items-wrap', $timeline).css({ width: wrapWidth });

  $items.on('mouseenter', function () {
    var $this = $(this);
    var time = $this.data('time');
    var left = $this.index() * itemWidth;

    $indicator.css({ left: left });
    $info.hide();
    $('.timeline-info-title', $this.next()).text(time);
    $this.next().fadeIn(200);
  });

  $timeline.on('mouseleave', function () {
    $indicator.css({ left: '-99999px' });
    $info.hide();
  });
});

这段代码的功能主要是绑定时间轴上每个时间节点的mouseenter事件,当鼠标滑过某个时间节点时,它会高亮显示,并显示该时间点对应的详细信息;同时,指示器的位置会随着鼠标移动而滑动,直到鼠标离开时间轴区域时,指示器才会隐藏。

3. 示范说明

示范一

如果你想要在时间轴上添加新的时间节点,只需要在HTML中添加如下结构:

<div class="timeline-item" data-time="2021"><span>2021</span></div>

然后,调用以下代码使其生效:

var $timeline = $('.timeline-wrap');
var $items = $('.timeline-item', $timeline);
var itemWidth = $items.width();
var itemNum = $items.length;
var wrapWidth = itemNum * itemWidth;
$('.timeline-items-wrap', $timeline).css({ width: wrapWidth });

示范二

如果你想要修改时间节点的样式,只需要修改CSS中.timeline-item的样式即可。比如,你可以修改时间节点的背景色、字体大小等样式。

.timeline-item {
  display: inline-block;
  width: 100px;
  height: 50px;
  text-align: center;
  line-height: 50px;
  background-color: #f5f5f5; /* 修改背景色为灰色 */
  font-size: 16px; /* 修改字体大小为16px */
  font-weight: bold;
  cursor: pointer;
  margin-right: 10px;
  position: relative;
  z-index: 1;
}

以上是本项目的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery鼠标滑过横向时间轴样式(代码详解) - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • JS实现TITLE悬停长久显示效果完整示例

    下面给出JS实现TITLE悬停长久显示效果的完整攻略。 什么是TITLE悬停长久显示效果 当鼠标悬停在一个链接或者图片上时,浏览器会默认显示一个标题属性 TITLE,该属性通常只会在鼠标指针悬停在元素上时短暂地出现,鼠标指针移开后就会消失。但是,在一些情况下,我们希望该TITLE信息可以长久地显示在页面上,比如提示用户更多信息时常用。那么,下面就来介绍如何通…

    jquery 2023年5月27日
    00
  • 详解jQuery中的isPlainObject()使用方法

    详解jQuery中的isPlainObject()使用方法 在jQuery中,isPlainObject()是一个非常常用的方法,用于判断传入参数是否是普通对象。本文将详细讲解isPlainObject()的使用方法。 isPlainObject()方法的语法 jQuery.isPlainObject( obj ) 参数: obj:需要被判断的对象 返回值:…

    jquery 2023年5月28日
    00
  • jQuery事件绑定与解除绑定实现方法

    下面我来详细讲解一下“jQuery事件绑定与解除绑定实现方法”的完整攻略。 一、概述 在 jQuery 中,事件绑定是 Web 开发中常见的一种操作。jQuery 提供了一系列的事件方法,比如 click()、hover()、keydown() 等,用于绑定事件。同时,也提供了解除绑定事件的方法,比如 unbind()、off()、undelegate() …

    jquery 2023年5月28日
    00
  • jQuery :only-child选择器

    以下是关于jQuery :only-child选择器的完整攻略: 什么是:only-child选择器? :only-child选择器是jQuery中一种伪类选择器,用于选择同一父元素下仅有一个子元素的元素。 如何使用:only-child选择器? 可以使用以下代码来选择同一父元素下仅有一个子元素的元素: $("element:only-child&…

    jquery 2023年5月12日
    00
  • 如何使用jQuery获取输入文本框中的值

    使用 jQuery 获取输入文本框(input)中的值有两种方法,一种是使用 val() 方法,一种是使用 prop() 方法。 使用 val() 方法 val() 方法是 jQuery 中获取或设置表单元素值的方法,包括 input、textarea、select 等输入元素。它有三种用法: 获取值:$(“selector”).val() 设置值:$(“s…

    jquery 2023年5月12日
    00
  • 学习从实践开始之jQuery插件开发 菜单插件开发

    学习从实践开始之jQuery插件开发是一条非常好的学习路线,通过实践开发jQuery插件可以提高自己的编程基础和应对实际问题的能力。接下来,我将提供一份完整的攻略来指导你如何进行jQuery插件开发,包括开发准备、插件结构、流程以及实操例子。 一、准备工作 学习文档 学习之前我们需要了解一些相关知识点,如jQuery,插件的理解,开发流程等等。可以阅读相关文…

    jquery 2023年5月27日
    00
  • jQWidgets jqxGrid rowunselect事件

    jQWidgets jqxGrid rowunselect事件详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxGrid是其中之一,本文将详细介绍jqxGrid的rowunselect事件,包定义、语法和示例。 rowunselect事件的定义 jqxGrid的rowunselect事件在取消选择行时触发。通过使用r…

    jquery 2023年5月10日
    00
  • 原生Js与jquery的多组处理, 仅展开一个区块的折叠效果

    当需要在网站开发中实现多组区块的展开与折叠效果时,可以使用原生Js或者jQuery来实现。下面分别介绍这两种方法的具体实现步骤。 原生Js的实现方法 HTML结构示例 <div class="accordion"> <div class="accordion-panel"> <div cl…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部