首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jquery实现一点击左侧导航右侧滑到相关的内容区

基础概念

jQuery 是一个快速、小巧且功能丰富的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。通过 jQuery,你可以轻松地实现复杂的页面交互效果。

相关优势

  1. 简化 DOM 操作:jQuery 提供了简洁的语法来选择、操作和修改 DOM 元素。
  2. 事件处理:简化了事件绑定和处理。
  3. 动画效果:内置了丰富的动画效果,可以轻松实现页面元素的动态效果。
  4. Ajax 交互:简化了与服务器的异步通信。

类型

在这个场景中,我们主要使用 jQuery 来处理点击事件和实现页面内容的滑动效果。

应用场景

这种导航和内容切换的效果常见于单页应用(SPA),用户点击左侧导航栏的某个选项时,右侧的内容区域会滑动到相应的内容。

示例代码

假设我们有以下 HTML 结构:

代码语言:txt
复制
<div class="sidebar">
    <ul>
        <li><a href="#" data-target="section1">Section 1</a></li>
        <li><a href="#" data-target="section2">Section 2</a></li>
        <li><a href="#" data-target="section3">Section 3</a></li>
    </ul>
</div>

<div class="content">
    <div id="section1">Content for Section 1</div>
    <div id="section2">Content for Section 2</div>
    <div id="section3">Content for Section 3</div>
</div>

我们可以使用以下 jQuery 代码来实现点击左侧导航右侧滑到相关内容区的效果:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQuery Navigation Example</title>
    <style>
        .content > div {
            display: none;
        }
        .content > div.active {
            display: block;
        }
    </style>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <div class="sidebar">
        <ul>
            <li><a href="#" data-target="section1">Section 1</a></li>
            <li><a href="#" data-target="section2">Section 2</a></li>
            <li><a href="#" data-target="section3">Section 3</a></li>
        </ul>
    </div>

    <div class="content">
        <div id="section1">Content for Section 1</div>
        <div id="section2">Content for Section 2</div>
        <div id="section3">Content for Section 3</div>
    </div>

    <script>
        $(document).ready(function() {
            $('.sidebar a').click(function(e) {
                e.preventDefault();
                var target = $(this).data('target');
                $('.content > div').removeClass('active');
                $('#' + target).addClass('active');
            });
        });
    </script>
</body>
</html>

解释

  1. HTML 结构:左侧导航栏 (sidebar) 包含多个链接,每个链接都有一个 data-target 属性,指向对应的内容区域。右侧内容区域 (content) 包含多个 div,每个 div 对应一个内容部分。
  2. CSS 样式:默认情况下,所有内容区域的 div 都是隐藏的(display: none),只有当某个 div 被激活时(添加 active 类),才会显示。
  3. jQuery 代码
    • 当点击左侧导航栏的链接时,阻止默认行为(e.preventDefault())。
    • 获取点击链接的 data-target 属性值,确定要激活的内容区域。
    • 移除所有内容区域的 active 类,确保只有一个内容区域是激活状态。
    • 给目标内容区域添加 active 类,使其显示。

可能遇到的问题及解决方法

  1. jQuery 未加载:确保 jQuery 库已正确引入,可以通过检查控制台是否有错误信息来确认。
  2. 选择器错误:确保选择器正确匹配 DOM 元素,可以通过调试工具(如 Chrome 的开发者工具)来检查。
  3. 动画效果不明显:如果需要滑动效果,可以使用 jQuery 的 animate 方法来实现更平滑的滑动效果。
代码语言:txt
复制
$('.content > div').animate({ opacity: 0 }, 300, function() {
    $(this).removeClass('active');
});
$('#' + target).css('opacity', 0).addClass('active').animate({ opacity: 1 }, 300);

通过以上步骤,你可以实现一个简单的左侧导航右侧滑动内容的效果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

左侧导航click,右侧内容scroll——一个模拟外卖点单的简易页面

本人很少做移动端的东西,这是一个小伙伴发过来的案例。功能很明确,就是点击左侧菜单,右侧内容对应滚动指定;右侧内容滚动,左侧菜单对应高亮。 ?...点单的简易页面,emmmm..简洁得特别简陋 一、 问题描述 这个demo有两处问题: 1. 点击切换左侧菜单时,由于右侧内容滚动也触发了scroll事件,导致互相影响; ?...造成的菜单栏闪烁问题 2. 由于滚动高度的限制,点击左侧6/7/8菜单时,右侧对应的内容不会置顶 (当然,这个特征在目前各大外卖平台的产品设计就是不让置顶,但此处设计就是想点谁谁up)。 ?...滚动高度限制 二、问题分析与解决 1.事件冲突问题 这个问题我们可以考虑,在左侧菜单点击触发动画前,禁用右侧滚动事件,等动画结束后再启动右侧滚动事件。具体实现,可以通过一个标志来设定。...具体计算公式是: 合适的滚动高度 = 原本的滚动高度 + 页面高度 - 最后一个分类的高度 // 设置右侧分类合适的滚动高度 $("#listUl").

2.1K10

商品添加到购物车动画getBoundingClientRect获取元素位置

联动菜单 1.1 用户点击左侧导航栏会跳转到相应的内容 这个很简单,给导航栏的每一个元素加一个点击事件,其实也可以通过a标签的锚点来实现 右侧的内容左侧的导航栏会响应式改变 右侧内容监听一个scroll事件,当触发滑动事件的时候获取粘性定位在顶部的标题,根据标题使导航栏定位到相应的li var obj = element.getBoundingClientRect...listScroll() { // 为了达到联动效果,右侧滑动则改变左侧导航栏样式 var titles = document.getElementsByClassName('goodTitle...这也实现了内容区标题栏始终在顶部的效果。关于粘性定位更多的可以看这里 2. 按钮缓慢弹出 当我们点击添加按钮的时候其他的内容会缓慢弹出,这个是靠css的动画实现的。...动画实现思路:用户点击添加时将一个小球的位置设置为被点击元素的位置,且获取目的地位置(购物车位置),当小球抛出时使其运动方式按照贝塞尔曲线过渡。

1.7K20
  • 「大众点评点餐」小程序开发经验 03:事件联动

    点击下方左侧导航菜单栏,高亮显示被点击的菜单分类,下方右侧对应分类详情模块顶部与右侧滚动区的顶部重合(类似于 HTML 里的锚点功能)。...若左侧高亮的导航菜单不在可视区域: 当高亮的导航菜单顶部在左侧 scroll-view 滚动区上方(被遮住了),则将该高亮导航菜单滚动至将高亮导航栏的顶部与左侧可滚动区域顶部重合(高亮菜单为滚动区的第一个分类...左侧栏与右侧栏的联动 首先我们要做到:点击左侧导航菜单栏,右侧定位到对应的分类菜品详情。...由于小程序无法获取元素的宽高,位置信息,滚动右侧实现左侧联动效果的实现难度非常高。 如何准确的获取右侧滚动到的具体分类,并让左侧导航菜单栏相应分类高亮,且在可视的范围内?...左侧导航菜单栏高亮分类切换的边界条件为:右侧分类菜单详情的分类小灰条顶部,与右侧滚动区顶部重合。

    2.6K40

    jQuery 尺寸、位置操作

    jQuery 尺寸、位置操作 ​ jQuery中分别为我们提供了两套快速获取和设置元素尺寸和位置的API,方便易用,内容如下。 1.1. ...jQuery 尺寸操作 ​ jQuery 尺寸操作包括元素宽高的获取和设置,且不一样的API对应不一样的盒子模型。 语法   1.以上参数为空,则是获取相应值,返回的是数字型。...案例: 品优购电梯导航(上) 1.当我们滚动到 今日推荐 模块,就让电梯导航显示出来2.点击电梯导航页面可以滚动到相应内容区域3.核心算法:因为电梯导航模块和内容区模块一一对应的4.当我们点击电梯导航某个小模块...,就可以拿到当前小模块的索引号5.就可以把animate要移动的距离求出来:当前索引号内容区模块它的offset().top6.然后执行动画即可 1.5....).index()); // 当我们每次点击小li 就需要计算出页面要去往的位置 // 选出对应索引号的内容区的盒子 计算它的.offset().top var current

    1.1K20

    vue系列教程之微商城项目|分类

    描述 本文需要实现的页面如下,点击左侧导航栏按钮,右侧自动滑动到对应位置。当滑动右侧内容,左侧导航栏也要做出相应变动。 ?...右侧商品分类列表 借助在主页中使用过的vant-ui的宫格布局快速实现相应布局和样式. ? ? ? ? ? ? 这样就完成了相应的静态布局,但无法实现内容滚动效果。...如果将overflow:hidden;属性取消,多出的内容就会溢出屏幕. 内容滚动 需要内容滚动的区域有左侧导航栏和右侧商品分类列表,需要分开处理。...联动思路 通过监听'scrollEnd'事件,获取当前显示的子元素的索引,奖其赋值给this.activeKey,因为this.activeKey与左侧导航栏动态绑定,这样就完成了滚动右侧内容,左侧导航栏随之变化的效果...赋值给wheel中的selectedIndex属性,就完成了点击左侧导航按钮,右侧自动滚动到对应内容.完整代码如下 fenlei.vue ?

    6.4K10

    前端-10款web动画插件

    今天分享的这款就是基于jQuery的瀑布流图片筛选插件,我们可以点击图片分类名称,即可将对应分类下的图片以瀑布流的方式展示出来,这款插件在筛选图片上使用还是比较方便的。 ?...2.基于Layui的可自定义添加删除数据的表格处理插件 如何在网页上编辑表格数据,这通过自己编写JS和CSS实现都是比较麻烦的,jQuery有很多插件可以完成这种功能,比如这款jQuery简易版的Excel...5.jQuery左侧边栏多级菜单 适合后台管理页面使用 这是一款基于jQuery的侧边栏多级下拉菜单插件,这个菜单的特点是可以固定在左侧边栏,当页面滚动时整个菜单可以保持一直可见,方便操作。...6.CSS3弧形曲线循环菜单导航 菜单项图标高亮 今天给大家带来一个非常富有创意的CSS3菜单导航插件,它与我们平常看到的横向菜单或者纵向菜单都不同,它的菜单项是沿着一段弧形曲线分布的,同时有两个上下切换的按钮...我想知道有多少人,是直接滑到下面来看获取方式的! 哈哈~快给我点小心心

    5.9K50

    Android 可拖动悬浮窗实现

    在实现逻辑之前,因为整体都在悬浮窗上实现,需要定义悬浮窗内容的一些必要属性,因为 indicatorView 和 rootView 的属性差不多,所以只列出 indicatorView 的属性列表,具体的可以看...,滑到左侧展开悬浮窗内容的动画 rightInSmoothToLeft(); } else {...@Override public void onScrollLeft(float scrollX) { // 从右侧滑到左侧,根据手势滑动的距离,...在屏幕的右侧,那么 contentView 也必须在屏幕的右侧,当拖动 indicatorView 的时候再慢慢的显示 contentView 就实现了拖动效果,所以 contentView 一开始...和 rightInSmoothToRight动画的实现,不多解释,直接上代码和注释 /** * 右侧滑进,滑到页面左侧,进入动画 */ private void rightInSmoothToLeft

    2.1K21

    移动Web 开发中的 Off Canvas 导航

    Off Canvas 简介 Off Canvas 导航相比也不陌生,在一些安卓应用(如谷歌的一些官方应用、易信、WordPress 安卓版)上常常能到——看到当你点击应用中的一个按钮时,会从左边或者右边侧拉出一个菜单...移动设备中空间极为有限,要显示最重要的内容,一些次要的或者不常用的内容最好做暂时隐藏处理,而专为移动端而生的Off-Canvas 就是这么一种“潜力无穷”的布局模式。...左侧或右侧),然后通过绑定某个鼠标或touch 事件调出导航菜单。...但细细考虑,该如何实现这个“调出导航菜单”的过程?用CSS的margin? 还是CSS的display?或者说 jQuery 的animate ?CSS3 的 transition?...的开源代码,以下列举一些: 一个jquery 插件:http://mobify.github.io/pikabu/ 又一个jquery 插件:http://christopheryee.ca/pushy

    1.8K50

    设计师应该了解的iOS应用开发基础知识

    文件加载成功之后,点击左侧导航栏(Navigator)中的项目(Portfolio,1 target,iOS SDK),这时我们就可以在编辑区中看到这个项目的概况信息了,如下图所示。...关于这些概况信息的用处,我们稍后解释。图片点击左侧导航栏当中项目名称旁边的箭头,我们可以看到一个资源列表,里面包含了当前项目所涉及到的所有资源文件,例如代码和图片等。...在Xcode左侧的导航栏中点击MainWindow.xib,进入Interface Builder编辑模式。...在Xcode左侧的导航栏中选择HomeViewController.xib,然后从右侧的对象库中拖拽一个Label控件到编辑区当中的空白View上面。双击该控件,将文案更改为“Home”。...回到Xcode中,点击导航栏中的Portfolio项目图标,此时内容区会呈现出应用的信息概况。

    85230

    教你实现最简单的QQ消息item侧滑菜单

    这次跟大家介绍怎么简单的实现类似QQ消息Item的左右滑动菜单的实现。首先见效果图先: ? show.gif 这就实现了ListView或RecyclerView加载的item的View实现侧滑菜单。...至于这么实现,很简单就是通过继承HorizontalScrollView,再判断滑动的距离以滑到对应的View或菜单。具体如下: 首先,在item的界面布局方面如下: 内容,右菜单所对用的view,即left,centre,right这三个View,然后获取屏幕的宽度,动态设定菜单的宽度为屏幕宽度的四分之一,而内容的宽度就是整个屏幕的宽度,即...(注:是屏幕最右边到整个View最右边的距离).当operateLeft==true的时候,滑动在操作在左侧,当getScrollX()的二分之一宽度时...,所以只能滑到内容区域,即this.scrollTo(MenuWidth, 0);,这两种情况除外都会滑到最后边的菜单,所以this.scrollTo(MenuWidth * 2, 0); 同样的道理,

    95420

    超好看的30款网站侧边栏设计

    第一部分:为什么需要网站侧边栏? 侧边栏其实就是一种比较经典的网站导航设计,它的形式通常为竖向的一列,展示在网站的右侧或者左侧,具体的位置当然是取决于整体的设计。...但一般来讲,由于视觉习惯和用户行为,侧边栏位于左侧更容易第一时间吸引用户注意力,因而也能很高效地给用户提供导航;而右侧的侧边栏则常被看做是二级导航,因而可以丰富网站的结构层次。...Grace chuang Grace chuang是一个作品集单页网站,该网站布局分为三大部分,左侧为带有logo和社交按钮的侧边栏,中心是网站所有者的照片展示,右侧是自我介绍。 ? 4....Nice cream Nicecream 是一家手工冰淇淋生产网站,图文的布局和搭配很好的凸显了网站主题,侧边栏导航位于左侧,引导用户轻松访问感兴趣的内容。 ? 6....这里推荐一个YouTube的视频,详细地讲解了如何使用html、css和jQuery创建侧边栏侧边菜单。 https://www.youtube.com/watch?

    12.7K10

    【CSS】课程网站横版导航栏 ( 横版导航栏测量及样式 | 代码示例 )

    文章目录 一、盒子测量及样式 1、总体盒子测量及样式 2、左侧盒子测量及样式 3、中间盒子测量及样式 4、右侧盒子测量及样式 二、横版导航栏代码示例 1、HTML 标签结构 2、CSS 样式 3、显示效果..., color 等样式可以被子元素继承 ; 该盒子有 2 像素的阴影 ; 最终的盒子样式如下 : /* 横向导航栏模块 总体盒子模型 样式 */ .goods { /* 内容高度 60 像素..., 竖线中间的文字都是链接标签 , 每个链接标签左右两侧各有 30 像素的间隔 , 这里使用外边距实现 ; 文本的高度和行高继承父元素的样式 , 都为 60 , 会自动垂直居中 , 文本大小为...导航栏盒子 - 使用无序列表实现 --> 首页 ...-- 左侧 侧导航栏 --> <!

    5.2K30

    scrollIntoView()方法导致整个页面产生偏移

    问题描述 今天在做页面UI改版的时候发现,我之前使用的是dom.scrollIntoView(); 使得点击右侧题目编号的时候,让左侧题目滚动到页面可视区域。...,当点击题目编号的时候,除了题目会滚动到可视区域,整个页面也会稍稍往上滚动,导致页面错位。...如下图所示,当我点击第9题的时候,左侧第9题移动到视口中,但是整个页面包括导航栏都往上移动了,且无法在移回来,整个页面是没有滚动条的。 ?...- target.parentNode.offsetTop; 参考 offset 相关属性:Web/06-一文搞懂DOM相关距离问题 解决方法 代码如下,加上动画: var target = document.getElementById...下面是一个参考例子:javascript - scrollTop animation without jquery 相关问题 类似的问题和解决方法如下链接: scrollintoview-moves-the-whole-page-layout-up

    4.3K40

    LayUI之旅-入门

    ,不仅仅要PC端使用,还有移动端也是要使用的,所以需要实现左边栏的显示和隐藏),因为设计是右侧(页面内容区域)异步加载(这是最终确定的方案),所以页面上的所有事件的绑定都需要用事件委托来处理(刚开始我也没注意到这个问题...注意:上面的代码用到了device模块,在使用之前必须先加载(use),详细的可以参照官方的加载所需模块 2、实现右侧内容部分的异步加载(局部刷新) 刚开始想到的是直接用html的iframe来实现,很快就实现了...,就需要有新的方案来实现,有两种方案可行; 第一种,每一页都独立加载,使用框架的模板继承来实现头部和左边导航栏的重载(原样输出),这样有一个问题,就是用户不知道自己刚刚点击的是导航栏的哪一项,以及重复验证用户是否登录...第二种,头部和左边栏固定,右侧内容区域使用异步加载,ajax去向后台取内容,并进行局部刷新,这个方案很符合要求,所以这次的项目也是采用这个方案来实现的。...上面说到了,要使异步加载的页面内容的事件生效,需要进行事件委托,但我在委托完毕之后发现事件会被重复执行,表现的现象是:第一次点击,执行一次;第二次点击,执行两次;第N次点击,执行N次,这个问题很严重,

    2.8K20

    HTML5 简介(三):利用 History API 无刷新更改地址栏

    HTML5 新增的历史记录 API 可以实现无刷新更改地址栏链接,配合 AJAX 可以做到无刷新跳转。...栈是一种后进先出的结构,可以把它想象成一摞盘子,用户每点开一个新网页,都会在上面加一个新盘子,叫「入栈」。用户每次点击「后退」按钮都会取走最上面的那个盘子,叫做「出栈」。...假设一个页面左侧是若干导航链接,右侧是内容,同时导航时只有右侧的内容需要更新,那么刷新整个页面无疑是浪费的。这时我们可以使用 AJAX 来拉取右面的数据。...当用户点击一个链接时,通过preventDefault函数防止默认的行为(页面跳转),同时读取链接的地址(如果有 jQuery,可以写成$(this).attr('href')),把这个地址通过pushState...塞入浏览器历史记录中,再利用 AJAX 技术拉取(如果有 jQuery,可以使用$.get方法)这个地址中真正的内容,同时替换当前网页的内容。

    2.3K10

    【新手指南】App原型设计:如何快速实现这6种交互效果?

    如何简单快速地实现这些效果呢?以下小编根据经验为大家提供了一些简单的设计方法,以供参考。 1.页面跳转 作为一款App原型设计,页面跳转必不可少。如何快速实现页面间快速跳转的效果?...设计师在进行APP原型设计时,如何实现页面的滚动效果?其实,在一个滚动区里放几个组件就解决了?不信?不妨让我们一起看看如何操作吧! 设计步骤 Step 1:从左侧组件库中拖出滚动区组件放置工作区。...Step 2:双击滚动区进入滚动区编辑状态,点击滚动条右侧的+号可拉长滚动区,放置更多的内容。 Step 3:点击空白区域推出编辑状态。 Step 4:点击演示即可预览页面滚动效果。...Step 3:编辑时若滚动区放不下所展示内容或编辑区过大时,可点击下方滚动条”+”“-”进行调整。 Step 4:编辑完成后点击滚动区外部退出,根据演示区域调整滚动区所占区域大小。...Step 5:点击演示即可预览图片轮播效果。 5.下拉菜单 下拉菜单通常适用于在原型设计中陈列一些需要展示的子页面,相当于一个子导航菜单。这种交互效果一般适用于博客内容分类、电商网站商品陈列等情况。

    3.2K40

    微搭低代码从入门到精通04-创建自定义应用

    登录微搭的控制台,在左侧的菜单里点击应用,点击新建应用,选择新建自定义应用图片输入应用的名称图片这里的支持平台一共有三个选项,如果你只开发小程序,就选择第一个选项。...图片点击右上角的编辑按钮可以修改我们的模型字段图片具体设计哪些模型,模型里设计哪些字段是和我们的需求相关。微搭中的数据源支持一对一、一对多的关系,体现在字段类型可以选择为关联关系。...图片在实际开发中可以结合自己的需求来选择是否打开登录配置02 顶部导航条顶部导航条的第一个内容是变量,变量和数据绑定相对应。...,左侧的手机是编辑区,我们可以将组件放入,进行组合搭建出我们想要的效果。...右侧是预览区,是组件编译后真实的一个效果。

    63430
    领券