作者:wymanNi | 来源:互联网 | 2022-08-25 12:38
本文实例为大家分享了JS实现长图上下滚动的具体代码,供大家参考,具体内容如下
案例描述
将一张长图放在某一固定长宽的盒子里,当鼠标置于盒子的上半部分时,图片向下滑直到到达图片的底部停止;当鼠标置于盒子的下半部分时,图片向上滑直到到达图片的顶部停止。
案例图示
HTML
CSS
CSS不作过多解释,详解请看注释部分
//通用样式
* {
margin: 0;
padding: 0;
}
#box {
width: 750px;
height: 200px;
border: 1px solid #000;
margin: 200px auto;
overflow: hidden; /*图片溢出部分隐藏*/
position: relative; /*子绝父相*/
}
#pic {
position: absolute;
left: 0;
right: 0;
}
#top {
width: 100%;
height: 50%;
position: absolute; /*子绝父相*/
left: 0;
cursor: pointer; /*鼠标*/
/* 顶部对齐 */
top:0;
}
#bottom {
width: 100%;
height: 50%;
position: absolute; /*子绝父相*/
left: 0;
cursor: pointer;
/* 底部对齐 */
bottom: 0;
}
JS核心代码
JS详解----监听鼠标进入事件(以盒子上半部分为例)
鼠标停留在盒子上半部分时,使用onmouseover事件。首先要清除定时器,否则可能会出现定时器重叠现象;再设置定时器,定时器中的num就是改变图片的top属性以达到图片向上滑动的效果。if语句中的条件是为了达到图片到达底部时停止向上滑的目的。(盒子下半部分类似)
top.Onmouseover= function(){
// 改变pic中的top
// 清除定时器
// alert(0);
clearInterval(intervalId);
// 设置定时器
intervalId = setInterval(function(){
if(num > -600){
num -= 10;
pic.style.top = num + "px";
}
},20);
JS详解----监听鼠标移出事件(以盒子上半部分为例)
鼠标移出时使用onmouseout事件,清除定时器。(盒子下半部分类似)
top.Onmouseout= function() {
clearInterval(intervalId);
}
JS全部代码展示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
在开发过程中,频繁的小改动往往会生成多个提交记录。为了保持代码仓库的整洁,我们可以使用 git rebase -i 命令将多个提交合并成一个。 ...
[详细]
蜡笔小新 2024-11-14 15:11:03
-
本文将详细介绍Manacher算法,该算法用于高效地找到字符串中的最长回文子串。通过在字符间插入特殊符号,Manacher算法能够同时处理奇数和偶数长度的回文子串问题。 ...
[详细]
蜡笔小新 2024-11-14 13:54:45
-
-
malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ...
[详细]
蜡笔小新 2024-11-14 13:38:03
-
本文介绍了多种开源数据库及其核心数据结构和算法,包括MySQL的B+树、MVCC和WAL,MongoDB的tokuDB和cola,boltDB的追加仅树和mmap,levelDB的LSM树,以及内存缓存中的一致性哈希。 ...
[详细]
蜡笔小新 2024-11-14 12:53:50
-
本文介绍了Python中的多线程编程,包括僵尸进程和孤儿进程的概念,并提供了具体的代码示例。同时,详细解释了0号进程和1号进程在系统中的作用。 ...
[详细]
蜡笔小新 2024-11-14 12:47:24
-
本文详细介绍了Linux系统中用于管理IPC(Inter-Process Communication)资源的两个重要命令:ipcs和ipcrm。通过这些命令,用户可以查看和删除系统中的消息队列、共享内存和信号量。 ...
[详细]
蜡笔小新 2024-11-14 11:42:14
-
路径规划算法用于在地图上找到从起点到终点的最佳路径,特别是在存在障碍物的情况下。A*算法是一种高效且广泛使用的路径规划算法,适用于静态和动态环境。 ...
[详细]
蜡笔小新 2024-11-14 10:53:20
-
本文介绍了如何在NX中使用UFUN库进行点收集器的二次开发,包括必要的头文件包含、初始化和选择点集合的具体实现。 ...
[详细]
蜡笔小新 2024-11-14 10:18:35
-
在安装SQL Server数据库后,使用Windows身份验证成功,但使用SQL Server身份验证时遇到问题。本文将介绍如何通过设置sa登录名的密码、启用登录名状态以及开启TCP协议来解决这一问题。 ...
[详细]
蜡笔小新 2024-11-14 10:15:02
-
本文介绍了如何使用 MySQL 命令行工具连接到指定的数据库。 ...
[详细]
蜡笔小新 2024-11-14 10:08:54
-
本文详细介绍了 HTML 中 a 标签的 href 属性的多种用法,包括实现超链接、锚点以及调用 JavaScript 方法。通过具体的示例和解释,帮助开发者更好地理解和应用这些技术。 ...
[详细]
蜡笔小新 2024-11-14 09:07:08
-
Excel 是数据分析中最基本且强大的工具之一,具备多种实用功能和操作方法。本文将简要介绍 Excel 的不同版本及其兼容性问题,并探讨在处理大数据时的替代方案。 ...
[详细]
蜡笔小新 2024-11-14 07:39:50
-
本文介绍了如何在 ASP.NET 中设置 Excel 单元格格式为文本,获取多个单元格区域并作为表头,以及进行单元格合并、赋值、格式设置等操作。 ...
[详细]
蜡笔小新 2024-11-13 19:46:18
-
本文介绍如何通过安装和配置SSSD服务来统一管理用户账户信息,并实现其他系统的登录调用。通过图形化交互界面配置LDAP服务器,确保用户账户信息的集中管理和安全访问。 ...
[详细]
蜡笔小新 2024-11-13 18:19:52
-
本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ...
[详细]
蜡笔小新 2024-11-13 17:03:49
-