前端一张连续的静态长图鼠标移入移除显示动态效果。

前言:看了腾讯云有静态的一张长图,动画的那种移入移出的效果。我们的项目也想做这种效果。主管叫我看了下怎么实现的,叫我模仿一下实现。我也试了一下。先看效果图吧

在这里插入图片描述

然后我写的原生代码是这样的

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    *{margin: 0;padding: 0;}
    html ,body{
        width: 100%;
        height: 100%;
     }
     .content{
      width: 500px;
      height: 500px;
      margin: 0 auto;
      overflow: hidden;
     }
     .box{
         width: 60px;
         height: 60px;
         background: url(./1.png);
         overflow: hidden;
         margin-top: 40px;
         background-repeat: no-repeat;
         background-size: 100% auto;
     }
     .box{
        animation-duration: 1s;
        animation-timing-function: steps(24);
        animation-delay: 0s;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-play-state: running;
        /* animation-name: move ; */
     }
     @keyframes  entery {
         0%{
            background-position: 0 0;
         }
        to {
            background-position: 0 -1440px;
        }
     }
     @keyframes  leave {
         0%{
            background-position: 0 -1440px;
         }
        to {
            background-position: 0 0;
        }
     }
    </style>
</head>
<body>
    <div class="content">
        <div class="box" id='boxi'>
        </div>
    </div>
</body>
<script>
    window.onload=function(){
        var id=document.getElementById('boxi');
        id.onmouseenter=function(){
            id.style.animationName='entery'
        }
        id.onmouseleave=function(){
            id.style.animationName='leave'
        }
    }
</script>
</html>
附上图片

在这里插入图片描述

emm,你的图片肯定跟我的图片是不一样的,要想达到这种效果,那就要做调整了,主要改哪里呢,首先:你要知道你的图片长度,跟你有多少张图片,
step()//图片的个数一般 -1

在这里插入图片描述

下面这段代码可以简写
        animation-duration: 1s;
        animation-timing-function: steps(24);
        animation-delay: 0s;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-play-state: running;
        /* animation-name: move ; */
      简写   animation: move 0.5s steps(24) forwards;
如果你的效果你发现它是往上拉图的感觉,那就是你参数没调好。刚开始我也是郁闷,所以啊,用别人的代码的同时,也要记得改好参数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现鼠标显示预览的效果,可以使用以下步骤: 1. 在 HTML 中添加需要预览的元素,比如片或链接。 2. 在 CSS 中设置这些元素的样式,包括宽度、高度和位置。 3. 在 JavaScript 中获取这些元素,并添加鼠标事件。 4. 在鼠标事件中,创建一个新的元素作为预览框,并设置其样式和内容。 5. 在鼠标动事件中,根据鼠标的位置更新预览框的位置。 6. 在鼠标出事件中,除预览框。 以下是一个简单的示例代码: ``` HTML: <img src="image.jpg" class="previewable"> CSS: .previewable { width: 200px; height: 200px; position: relative; } .preview-box { position: absolute; top: 0; left: 100%; width: 200px; height: 200px; border: 1px solid #ccc; background-color: #fff; z-index: 999; } JavaScript: const previewables = document.querySelectorAll('.previewable'); previewables.forEach(previewable => { previewable.addEventListener('mouseenter', event => { const previewBox = document.createElement('div'); previewBox.classList.add('preview-box'); previewBox.innerHTML = '<img src="' + previewable.getAttribute('src') + '">'; // 显示片 document.body.appendChild(previewBox); }); previewable.addEventListener('mousemove', event => { const previewBox = document.querySelector('.preview-box'); previewBox.style.top = (event.pageY - 100) + 'px'; // 使预览框的中心点和鼠标位置对齐 previewBox.style.left = (event.pageX + 20) + 'px'; }); previewable.addEventListener('mouseleave', event => { const previewBox = document.querySelector('.preview-box'); document.body.removeChild(previewBox); }); }); ``` 这个示例代码中,我们选择所有类名为“previewable”的片元素,并为它们添加了鼠标动和出事件。在鼠标事件中,我们创建了一个新的元素作为预览框,并将其插到文档中。在鼠标动事件中,我们根据鼠标的位置更新预览框的位置。在鼠标出事件中,我们除了预览框。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值