【jQuery】写一个电梯导航

news2024/11/15 17:20:20

今天大概是跟着pink老师学习JS的第八天,看了有410章了。
视频教程:pink JS

今天早上跟着老师做了一个电梯导航:
在这里插入图片描述
还是那个熟悉的品优购项目。。。
之后我打算自己练习一下,然后就出现bug了。

 <div class="tuijian"></div>
    <div  id="recom"><h3>电梯导航的使用</h3></div>
    
    <div class="w">
        <div class="floor ">
            <div class="w img1"  >
                <img src="img/水蜜桃.jpg" alt="">
            </div>
        </div>
        <div class="floor">
            <div class="w img2">
                <img src="img/水蜜桃2.jpg" alt="">

            </div>
        </div>
        <div class="floor">
            <div class="w img3">
                <img src="img/水蜜桃3.jpg" alt="">

            </div>
        </div>
         <div class="floor">
            <div class="w img4">
                <img src="img/水蜜桃4.jpg" alt="">

            </div>
        </div> 
        <div class="floor">
            <div class="w img5">
                <img src="img/水蜜桃5.jpg" alt="">

            </div> 
        </div>
        <div class="footer">
            <h3>底部</h3>
        </div>
    </div>
    <!-- 电梯导航 -->
<div class="dianti">
    <ul>
       
        <li class="current">图片一</li>
        <li>图片二</li>
        <li>图片三</li>
        <li>图片四</li>
        <li>图片五</li>

       
    </ul>
</div>

主要是这里:

  *{
        list-style: none;
        padding:0;
        margin:0;
    }
.w{
width: 500px;
/* height: 1000px; */
margin:0 auto;
background: #fff;
}
h3{
    font-size: 30px;
    text-align: center;
    line-height: 200px;
}
.floor{
    margin-bottom:100px;
}
.floor img{
    width: 500px;
    height: 700px;
    margin:0 auto;
}
.dianti{
    display: none;
    /* 不能随着页面滚动而上升,采取fixed定位 */
    position: fixed;
    top: 300px;
    left: 100px;
    height: 200px;
    width: 100px;
    background-color: #fff;

}
.dianti ul li:first-child{
border-top:1px solid black ;

}
.dianti ul li{
font-size: 14px;
overflow: hidden;
line-height: 64px;
text-align: center;
color: black;
border-bottom:1px solid black ;

cursor: pointer;
}

/* 再加一个类,提高优先级,不然字体和颜色都不会生效 */
.dianti .current{
    color: #fff;
    background-color: #c81623;
    font-weight: 700;
}
#recom{
   
    margin:0 auto;
width: 500px;
height: 200px;
background-color: #c81623;
}
.footer{
    width: 500px;
    height: 400px;
    background-color: #c81623;
}
.footer h3{
    
    font-size: 30px;
    text-align: center;
    line-height: 400px;
}
.tuijian{
   
    margin:0 auto;
    background-color: aqua;
    width: 500px;
    height: 300px;
}

在定义图片大小时,我因为习惯定义宽度,然后让高度自适应,但是这个导航就是根据每张图片距离页面顶部的高度来进行导航的,不定义高度,获取就出现问题。

.floor img{
    width: 500px;
    height: 700px;
    margin:0 auto;
}

然后,就是这个JS代码:

 $(function() {
    //点击li,此时不需要执行页面滚动事件里面的li的背景选择添加current
    //节流阀 互斥锁
    var flag=true;
    //到达一定位置,自动出现
    var toolTop=$("#recom").offset().top;
    toggleTool();
    function toggleTool(){
        if($(document).scrollTop()>=toolTop){
            $(".dianti").fadeIn();
        }else {
            $(".dianti").fadeOut();
        
        }
    }
   $(window).scroll(function(){
    toggleTool();
    // 页面滚动到响应区域,电梯导航也随之变化
    if(flag===true){
        $(".floor .w").each(function(i,ele) {
            if($(document).scrollTop()>=$(ele).offset().top){
                $(".dianti li").eq(i).addClass("current").siblings().removeClass("current")
            }
    
        })
    }
});
// 点击电梯导航页面可以滚动到对应区域
$(".dianti li").click(function() {
    flag=false;
//     index() 方法返回指定元素相对于其他指定元素的 index 位置。
// 这些元素可通过 jQuery 选择器或 DOM 元素来指定
    console.log($(this).index());
    //每次点击li,就需要计算页面要去往的位置
   var current= $(".floor .w").eq($(this).index()).offset().top;
//页面动画滚动效果
$("body,html").stop().animate({
    scrollTop : current,
},function() {
    flag=true;
});
$(this).addClass("current").siblings().removeClass("current")
})


})

做成大概是这个样:

jQuery 电梯导航

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CO13 订单取消确认报错:“在为订单XXXX 确定实际成本中出错”处理分析

用户再操作CO13时报了一个错误&#xff1a;在为订单XXXX 确定实际成本中出错。 看到这个错误以为是财务同时没有发布成本导致的。然后我也操作了一下发现了一些过账中的错误。 原来是冲销这个工单的账期是在前几个月&#xff0c;而那个月已经关账期了&#xff0c;所以报错。 …

ORB-SLAM3代码和算法学习—浅谈代码中的纯定位模式

0总述 在Tracking线程中&#xff0c;当系统初始化完成后就会正式进入跟踪环节。在ORB-SLAM3算法代码中提供了两种模式&#xff0c;一种是纯定位模式&#xff0c;一种是定位建图的SLAM模式。 对于纯定位模式&#xff0c;在源码中由成员变量mbOnlyTracking控制&#xff0c;这个…

django 利用Form上传文件到 media 文件夹

背景&#xff1a;利用 Form 收集用户提交的信息&#xff0c;包括字符串和文件对象&#xff0c;文件保存在项目的 media 文件夹&#xff0c;因为 static 文件一般是用来存静态文件 css 或者项目所需要的图片&#xff0c;用户上传的文件应该保存在其他文件夹; 1、 启用 media&am…

实战演练 | 使用 SQL 别名简化查询并自定义结果

别名能够在不影响基础表或视图的情况下临时重命名表或列。作为大多数甚至所有关系数据库管理系统都支持的 SQL 功能&#xff0c;别名是简化查询和/或自定义结果集中列标题的好方法。在这篇文章中&#xff0c;我们将使用 Navicat Premium 16 来完成这两项工作。重命名列许多数据…

十级NLPer才能笑出声的算法梗!

文&#xff5c;付奶茶近期小编整理出了一些非常好笑的梗图&#xff0c;与各位NLPer共赏&#xff0c;希望与大家一起评选出本期最好笑的梗图选手&#xff01;【1号选手&#xff1a;非常擅长讲笑话的NLM】前排评论区&#xff1a;&#xff08;1&#xff09;I enjoyed your joke ab…

Android 深入系统完全讲解(一)

因为很多朋友还是会咨询 Android 相关的内容&#xff0c;于是便花费了一些时间&#xff0c;把我总结的方法&#xff0c;一些系统代码的跟踪流程&#xff0c;做一个完整的梳理&#xff0c; 算是给自己职业生涯画个完美的句号。 虽然说后续写代码会相对少一些&#xff0c;但是还…

P1044 [NOIP2003 普及组] 栈

P1044 [NOIP2003 普及组] 栈 方法一&#xff1a;递推dp 思路&#xff1a; 求n的总数&#xff0c;我们可以分解成n在第i&#xff08;1<i<n)位置输出讨论。 我们用a[i][j]表示数i在第j位置输出的情况总数&#xff0c;ans[i][j]表示数i在第1--j位置输出总数和 1&#x…

ROS地图栅格信息

一.地图栅格消息nav_msgs/OccupancyGrid // 栅格地图消息 std_msgs/Header header nav_msgs/MapMetaData info time map_load_time float32 resolution // 分辨率 geometry_msgs/Pose origin // 原点坐标 geometry_msgs/Quaternion orientati…

元数据管理Datahub基于Docker进行部署

目录1. 服务器要求2. 安装Docker3. 安装jq4. 安装python35. 安装docker-compose v1(deprecated&#xff0c;为了兼容性)5.1 安装virtualenv5.2 安装docker-compose6. 安装datahub(在docker-compose-v1-py虚拟环境下)7. 访问Web页面&#xff0c;然后导入测试元数据8. 删除datahu…

数字孪生的概念是什么【深度】

数字孪生技术最早提出是用于航空航天领域&#xff0c;美国 NASA 指出“一个数字孪生&#xff0c;是一种集成化了的多种物理量、多种空间尺度的运载工具或系统的仿真&#xff0c;该仿真使用了当前最为有效的物理模型、传感器数据的更新、飞行的历史等等&#xff0c;来镜像出其对…

C语言C++中与接收、输出字符相关的问题

C语言中&#xff0c;在使用scanf("%c",&data);读取一个字符时&#xff0c;有时会遇到scanf吞回车符的情况。 这里搜到几种常用的解决方法&#xff1a; 1.在scanf()中使用’\n’屏蔽回车符号。 scanf("\n%c",&c);2.在scanf()格式串最前面添加空格&…

【Linux】缓冲区的理解

文章目录什么是缓冲区&#xff1f;为什么要有缓冲区&#xff1f;缓冲区刷新策略请看下面代码&#xff1a;接着上篇【Linux】文件操作|文件描述符|重定向 什么是缓冲区&#xff1f; 我们口中说的缓冲区&#xff0c;一般指的是用户级语言层面给我们提供的缓冲区。本质就是一段…

nRF24L01芯片(模块)介绍

nRF24L01芯片&#xff08;模块&#xff09;简介nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括&#xff1a;频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。输出功率频道选择和协议的设…

使用 K8S 部署 RSS 全套自托管解决方案- RssHub + Tiny Tiny Rss

前言 什么是 RSS? RSS 是一种描述和同步网站内容的格式&#xff0c;是使用最广泛的 XML 应用。RSS 搭建了信息迅速传播的一个技术平台&#xff0c;使得每个人都成为潜在的信息提供者。发布一个 RSS 文件后&#xff0c;这个 RSS Feed 中包含的信息就能直接被其他站点调用&…

【MySQL】SQL查询语句在MySQL中的执行过程

文章目录1.MYSQL基础架构2.连接器3.查询缓存4.解析SQL5.执行SQL5.1 预处理器5.2 优化器5.3 执行器6.总结1.MYSQL基础架构 连接器&#xff1a;建立连接、管理链接、校验用户身份查询缓存&#xff1a; 查询语句如果命中查询缓存则直接返回&#xff0c;否则继续往下执行。&#xf…

基于Java+SpringBoot+vue+element疫情物资捐赠分配系统设计和实现

基于JavaSpringBootvueelement疫情物资捐赠分配系统设计和实现 &#x1f345; 作者主页 超级帅帅吴 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; 文章目录基于JavaSpringBootvueelement疫情物资捐赠分配…

不能你说对不起,别人就一定要说没关系——与九迁沟通他的冲动和错误

今天的事情是最近三天九迁与他奶奶之间发生的事情。先说前面在谈事件&#xff0c;这个事情的发生&#xff0c;首先说明我母亲的身体还可以&#xff0c;没有被感染&#xff0c;因为还能和孩子生气&#xff0c;说明熊胆粉确实是在起作用&#xff0c;关于熊胆粉的文章请看&#xf…

FGH40N60SMD 600V 80A 349W 逆变器高频IGBT单管

FGH40N60SMD 600V 80A 349W 逆变器高频IGBT单管 &#xff0c;为光伏逆变器、UPS、焊机、通讯、ESS 和 PFC 等低导通和开关损耗至关重要的应用提供最佳性能。IGBT单管系列&#xff1a;FGH40N60SMDFGH60N60SMDFGH75T65SHD-F155 NGTB40N120FL2WG特性&#xff1a;1.最大结温 T[siz…

C++:二叉树题进阶(三种非递归遍历、二叉搜索树OJ题)

lc 606 根据二叉树创建字符串 给你二叉树的根节点 root &#xff0c;请你采用前序遍历的方式&#xff0c;将二叉树转化为一个由括号和整数组成的字符串&#xff0c;返回构造出的字符串。 空节点使用一对空括号对 “()” 表示&#xff0c;转化后需要省略所有不影响字符串与原始…

C++4:C++中的动态内存管理

目录 C内存管理方式 new/delete操作内置类型&#xff1a; new/delete操作自定义类型&#xff1a; new和delete的底层实现&#xff1a; operator new与operator delete函数 定位new 内存泄漏 动态内存管理&#xff0c;早些我们接触C语言的时候就已经在很熟练的游玩在堆上开…