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

js css感应鼠标动作控制图片纵向滚动

基础概念

在前端开发中,通过JavaScript和CSS实现鼠标动作控制图片纵向滚动是一种常见的交互效果。这种效果通常用于创建动态的用户界面,增强用户体验。

相关优势

  1. 增强用户交互:通过鼠标动作控制图片滚动,可以让用户更加主动地参与到页面内容中,提高用户参与度。
  2. 视觉效果:动态的图片滚动可以带来更加丰富的视觉效果,吸引用户的注意力。
  3. 节省空间:在有限的空间内,通过滚动展示更多内容,可以有效利用屏幕空间。

类型

  1. 鼠标悬停滚动:当鼠标悬停在某个区域时,图片开始滚动。
  2. 鼠标移动滚动:根据鼠标的移动方向和速度控制图片的滚动。
  3. 鼠标点击滚动:通过点击按钮或特定区域来控制图片的滚动。

应用场景

  1. 产品展示:在电商网站中,通过鼠标动作控制产品图片的滚动,展示更多产品细节。
  2. 广告轮播:在广告位上使用鼠标动作控制广告图片的滚动,增加广告的吸引力。
  3. 信息展示:在新闻网站或博客中,通过鼠标动作控制图片的滚动,展示更多相关信息。

示例代码

以下是一个简单的示例,展示如何通过鼠标悬停控制图片纵向滚动:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Mouse Hover Scroll</title>
    <style>
        .container {
            width: 300px;
            height: 200px;
            overflow: hidden;
            position: relative;
        }
        .image-container {
            position: absolute;
            top: 0;
            left: 0;
            transition: top 0.5s ease-in-out;
        }
        img {
            width: 100%;
            height: auto;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="image-container" id="imageContainer">
            <img src="image1.jpg" alt="Image 1">
            <img src="image2.jpg" alt="Image 2">
            <img src="image3.jpg" alt="Image 3">
        </div>
    </div>

    <script>
        const container = document.querySelector('.container');
        const imageContainer = document.getElementById('imageContainer');
        const images = imageContainer.querySelectorAll('img');
        let currentIndex = 0;

        container.addEventListener('mouseenter', () => {
            setInterval(() => {
                currentIndex++;
                if (currentIndex >= images.length) {
                    currentIndex = 0;
                    imageContainer.style.top = '0';
                }
                imageContainer.style.top = `-${currentIndex * 200}px`;
            }, 2000);
        });

        container.addEventListener('mouseleave', () => {
            clearInterval();
            imageContainer.style.top = '0';
        });
    </script>
</body>
</html>

参考链接

常见问题及解决方法

  1. 图片滚动不流畅
    • 原因:可能是由于CSS过渡效果设置不当或JavaScript定时器间隔时间过短。
    • 解决方法:调整CSS过渡效果的持续时间和JavaScript定时器的间隔时间,确保它们匹配页面的性能。
  • 图片滚动超出容器范围
    • 原因:可能是由于图片容器的高度设置不当或图片数量过多。
    • 解决方法:确保图片容器的高度足够容纳所有图片,并在必要时调整图片数量或容器高度。
  • 鼠标离开后图片停止滚动
    • 原因:可能是由于JavaScript事件监听器未正确移除。
    • 解决方法:确保在鼠标离开容器时正确移除定时器,避免内存泄漏和不必要的计算。

通过以上方法,可以有效地实现和控制鼠标动作控制图片纵向滚动的效果。

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

相关·内容

  • JS经典案例-无缝滚动轮播图(纯JS)

    设计者通过精心编排的自动播放、鼠标感应暂停、以及精确的导航控制,构建了一个既自主又响应的观赏环境,让用户在无感中享受信息的流动与美的巡礼。...本文将以最基础的 HTML+css+JavaScript 来实现一个无缝滚动的轮播图案例。...效果图 需求 制作一款无缝滚动轮播图,具备以下特性: 自动无缝滚动切换图片 ️ 鼠标悬停暂停轮播,离开恢复轮播 向左/向右按钮切换图片 底部小圆点指示当前图片并可点击切换 思路 图片容器无缝衔接...事件监听与控制: 添加鼠标事件监听,实现播放与暂停逻辑。 平滑过渡: 利用CSS过渡效果实现动画平滑性。 灵活的点选控制: 小圆点与图片索引同步,提升用户体验。...代码 难点: 如何使图片在第一张时点击上一张,向左滚动切换到最后一张。

    1K10

    前端成神之路-CSS高级技巧

    CSS高级技巧 目标 理解 能说出元素显示隐藏最常见的写法 能说出精灵图产生的目的 能说出去除图片底侧空白缝隙的方法 应用 能写出最常见的鼠标样式 能使用精灵图技术 能用滑动门做导航栏案例...1.4 显示与隐藏总结 属性 区别 用途 display 隐藏对象,不保留位置 配合后面js做特效,比如下拉菜单,原先没有,鼠标经过,显示下拉菜单, 应用极为广泛 visibility 隐藏对象,保留位置...CSS用户界面样式 所谓的界面样式, 就是更改一些用户操作样式,以便提高更好的用户体验。 更改用户的鼠标样式 (滚动条因为兼容性非常差,我们不研究) 表单轮廓等。...3.1 图片、表单和文字对齐 所以我们知道,我们可以通过vertical-align 控制图片和文字的垂直关系了。 默认的图片会和文字基线对齐。 ? 3.2 去除图片底侧空白缝隙 ?...我们精灵图上放的都是小的装饰性质的背景图片。 插入图片不能往上放。 我们可以横向摆放也可以纵向摆放,但是每个图片之间留有适当的空隙 在我们精灵图的最低端,留一片空隙,方便我们以后添加其他精灵图。

    6.8K30

    学会一行CSS即可提升页面滚动性能

    一般情况下 CSS 并不会影响 JS 事件,但有一个 CSS 属性则比较特殊,那就是 pointer-events,它可以用来规避鼠标事件,其中大部分属性值只适用于 SVG(可缩放矢量图形)操作,而我们只需要关注其...重点来了,既然该属性可以阻止元素成为鼠标事件,那么修改页面该属性值为 none,就能避免在滚动时鼠标频繁触发包括hover在内的任何鼠标事件,从而提升了页面滚动时的性能。...body { pointer-events: none;}使用滚动监听事件可实现灵活控制:let timer = nullwindow.addEventListener("scroll", function...顾名思义,该属性是用于设置触摸屏如何操纵元素区域动作,同样的,touch-action 可以禁用浏览器在移动端处理手势的事件,进而提高页面滚动性能,同时它还能解决移动端 点击延迟问题(很多人可能只知道viewport...事件时JS设置 touch-action 为 none,不需要再还原即可。

    3.2K30

    精读《不再需要 JS 做的 5 件事》

    概述 使用 css 控制 svg 动画 原文绘制了一个放烟花的 例子,本质上是用 css 控制 svg 产生动画效果,核心代码: .trail { stroke-width: 2; stroke-dasharray...使用 JS 判断还是挺复杂的,你得设法监听父元素滚动,并且在定位切换时可能产生一些抖动,因为 JS 的执行与 CSS 之间是异步关系。...该场景除了用浏览器实现幻灯片外,在许多网站首页也被频繁使用,比如将首页切割为 5 个纵向滚动的区块,每个区块展示一个产品特性,此时滚动不再是连续的,而是从一个区块到另一个区块的完整切换。...,在滚轮触发、鼠标点击滚动条松手或者键盘上下按键时,scroll-snap-type: y mandatory 可以精准捕捉这一垂直滚动行为,并将子元素完全滚动到可视区域。...CSS 因为是描述性语言,它可以精确控制样式,但却难以精确控制交互过程,对于标准交互行为比如幻灯片滑动、动画可以使用 CSS,对于非标准交互行为,比如自定义位置弹出 Modal、用 svg 绘制完全自定义路径动画尽量还是用

    2.3K20

    jQuery 自定义网页滚动条样式插件 mCustomScrollbar 的介绍和使用方法

    jquery.mousewheel.min.js:这是 Brandon Aaron 编写的一个伟大的只有2kb的插件,它面向所有的操作系统和浏览器,为我们提供了鼠标滚动事件的支持。...mCSB_buttons.png: 这个 png 图片文件,包含了向上向下向左向右滚动的按钮。可以使用 CSS sprites 技术,来使用这个图片中的相应按钮。...:String:滚动动作类型 查看 jquery UI easing 可以看到所有的类型 mouseWheel:String/Boolean:鼠标滚动的支持 值为:true.false,像素 默认的情况下...然后再使用 CSS 定义滚动条的样式,使用 Javascript 相应鼠标的滚动事件,产生滚动下滑的效果。 明白了这点,下面我们就可以看一下滚动条的结构,然后使用 CSS 对其进行定义了。...,官方给出了一张非常形象的图片 根据这张图片,就可以很容易的定义滚动条的样式了。

    14.2K30

    butterfly文章页面上下篇按钮UI调整

    addEventListener 监听dom元素是否在屏幕内的示例 JS判断指定dom元素是否在屏幕内的方法实例 思路分析 我试图通过将文章底部的按钮改至左右两侧,类似翻页键,同时添加悬停动作,通过...css对兄弟相邻元素的hover监测来控制显隐,悬停按钮时在页面正中显示对应文章卡片。...所以尝试通过设置滚动事件监听,在页面滚动至原本上下页翻页的位置,也就是正文刚好读完的时候,才显示按钮。...布局上是打算电脑端做成横向排列,手机端做成纵向排列的。...STYLUS 新建 [Blogroot]\themes\butterfly\source\js\fixed-pagination.js, 这个 js 的作用就是提供滚动监测了,这里因为翻页按钮是常态隐藏的

    1.7K20

    vue+element锚点跳转+自动感应导航栏

    思路 使用循环的key与点击后传过去的key做对比,如果一样的话就给他添加相应的css。...2、关于翻页自动感应 思路 前面说了,我们是使用index来控导航栏中哪个模块高亮的 当鼠标往下滚动时让整个页面往下滚动整个页面的高度且index加一反之减一 具体实现 <div @mousewheel...} if (e.wheelDelta 0) { // 当鼠标向下滚动时触发 } } } 在最外层容器中加入这个鼠标触发事件 然后就可以监听鼠标滚轮向上还是向下了...呃…想详细了解的朋友自行百度哈,这里不过多赘述 当鼠标向下滚动时我们使用 window.scrollTo(x,y); 来让页面进行滚动且让index加一反则减一 这样一来就能实现导航栏的自动感应了 但是要注重几个细节问题...第一、当你到达了顶部或者底部时需要重置你的index 第二、你加的高度变量要重置 第三、滚到底部或者顶部时需要取消终止滚动函数 以上就是自动感应导航栏的实现了,如果有不明白的朋友可以评论或者私信讨论

    2K50

    css控制滚动条透明,CSS控制滚动条样式的解析

    我们在之前的两篇文章中,我们给大家介绍了关于CSS设置div滚动条样式、以及CSS3自定义滚动条样式的实例, 都知道当内容超出容器时,容器会出现滚动条,那我们如何使用CSS控制滚动条样式的呢?...下面我给大家分享一下如何通过CSS来控制滚动条的样式,代码如下:*/ /*定义滚动条轨道*/ #style-2::-webkit-scrollbar-track { background-color...*隐藏滚动条: 1、去掉水平方向的滚动条: 2、去掉垂直方向的滚动条: 3、隐藏横向、显示纵向滚动条: 4、隐藏全部滚动条: 或者 更好的方法就是把滚动条的颜色设置为完全透明,这样既可以实现内容的滚动...overflow:auto;在需要时剪切内容并添加滚动条。 overflow:hidden;不显示超过对象高度的内容。 overflow:scroll;总是显示纵向滚动条。...scroll 无论内容是否超越范围,都将显示滚动条。 相信通过本文的学习,小伙伴们对css控制滚动条样式,有了进一步的了解和认识,希望对你的工作有所帮助!

    6K20

    前端机试面试题

    2、使用CSS+DIV实现页面布局,页面居中,文字颜色效果要求一致。40分 3、鼠标悬停时的动画效果。10分 4、“进入查看”标签与样式。...10分 5、定义一个javascript数组,数组中存放6个对象,每个对象描述服装的名称,价格,图片信息。10分 6、使用angular将数组中的数据动态展示在页面中。...要求: 使用HTML5+CSS3+JavaScript完成页面布局与特效,页面风格必须与原站点一样 将静态页面动态化,后台技术可以是Java,.NET,node.js或其它任意,推荐后台发布Rest服务...,前端AJAX调用 “潮牌大赏”子栏目要求实现延迟加载,滚动纵向滚动条时加载,参考瀑布流布局,我的博客中有  要求兼容IE8+、Chrome、Firefox主流浏览器 素材请自行抓取,前端内容不得与原站雷同...、至少显示10以上的产品,数据库中至少存放水果的:名称,原价,现价,图片名称等信息 6.10、没有明显异常与Bug 素材下载地址

    4.9K40

    jQuery仿极客公园火箭发射“返回顶部”效果(初始篇)

    然后发现,其js代码是加密的,Jeff不懂js啊,胡乱想可以js解密,但解密后还是不行。于是,我又借助强大的搜索引擎Google,找到了一系列资料。...嗯,就是这张图片了,看到这张图片。我想到,火箭升空的效果可以有两种方法实现,其中一种使用了css3 的keyframe关键帧技术 ,还有一种就是用js来控制background-position。...在这里我是用第二种js控制background-position来实现。至于第一种不知道的童鞋自己去搜搜吧。 首先我们先写好html代码,没什么好说的直接上代码了: 鼠标移动滚动到页面中下部时的显示效果 2.鼠标移动到移动到div上的变色效果(这里其实不是变色二十移动了background-position) 3.火箭喷射气体的动画 4.火箭升空的效果...5.页面滚动到顶部的效果 我们一个一个来写。

    1.5K80

    移动端滚动研究

    关于模拟滚动 概念 正常的滚动:我们平时使用的scroll,包括上面讲的滚动都属于正常滚动,利用浏览器自身提供的滚动条来实现滚动,底层是由浏览器内核控制。...方案比较 第一种方案由于惯性滚动的时机时由js自己控制所以可以拿到滚动触发阶段的scrolltop值,并且滚动的回调函数onscroll在滚动的阶段都会触发。...在使用模拟滚动时,浏览器在js层面会消耗更多的性能去改变dom元素的位置,在dom复杂层级深的页面更为高,所以在长列表滚动时还要使用正常滚动更好。...节流(Throttling) 防抖函数确实不错,但是也存在问题,譬如图片的懒加载,我希望在下滑过程中图片不断的被加载出来,而不是只有当我停止下滑时候,图片才被加载出来。...滑动过程中尝试使用 pointer-events: none 禁止鼠标事件 pointer-events 是一个 CSS 属性,可以有多个不同的值,大概的意思就是禁止鼠标行为,应用了该属性后,譬如鼠标点击

    3.2K20

    Day4:html和css

    背景固定还是滚动 背景的合写(复合属性) 无 background:背景颜色 背景图片地址 背景平铺 背景滚动 背景位置 无 backgroound-position 语法: background-position...(默认的) no-repeat :  背景图像不平铺 repeat-x :  背景图像在横向上平铺 repeat-y :  背景图像在纵向平铺 设置背景图片时,默认把图片在水平和垂直方向平铺以铺满整个元素...`fixed` :  背景图像固定 背景透明(CSS3) background: rgba(0,0,0,0.3); background: 背景颜色 背景图片地址 背景平铺 背景滚动 背景位置...(3)高度,行高、外边距以及内边距都可以控制。...fixed :  背景图像固定 背景简写 background:背景颜色 背景图片地址 背景平铺 背景滚动 背景位置 案例: // css 层叠样式表 <!

    4K20
    领券