让自动上下移动的按钮在鼠标覆盖时停止移动

用vue怎么让自动上下移动的按钮在鼠标覆盖在上面的时后停止移动,鼠标移开之后继续移动

img

img

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7473279
  • 这篇博客你也可以参考下:在做VUE项目时遇到的问题及解决办法:使用路由跳转页面时传参的两种方法,以及这两种方法的综合使用
  • 除此之外, 这篇博客: 什么是跨域?如何解决?跨域的产生原因、解决方法以及vue解决跨域问题中的 添加响应头解决跨域 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    浏览器先询问b,b允许a访问
    access-control-allow-origin
    access-control-max-age
    PHP端修改header:

    header('Access-Control-Allow-Origin:*');//允许所有来源访问
    header('Access-Control-Allow-Method:POST,GET');//允许访问的方式
    
  • 您还可以看一下 刘建萍老师的Web前端开发经典案例之vue框架开发电商项目百草味案例(一)课程中的 在商品列表部分点击商品添加购物车按钮触发的事件小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    对于这个问题,我们可以通过以下步骤来实现在鼠标覆盖时停止自动上下移动的按钮,并在鼠标移开后继续移动:

    1.首先在按钮的样式中添加两个关键帧,一个为按钮普通状态,一个为按钮鼠标悬停状态,悬停状态时停止按钮的移动。

    2.在Vue中给按钮添加鼠标事件,鼠标移入时获取按钮的所有样式属性,将动画属性清空并修改为悬停状态的关键帧属性,鼠标移出时将按钮的样式属性还原为移动状态的关键帧属性,重新添加动画属性。

    代码如下:

    HTML:

    <!--按钮-->
    <div id="btn" @mouseover="pauseAnim" @mouseout="resumeAnim">
      <span>按钮</span>
    </div>
    

    CSS:

    /* 按钮 */
    #btn {
      display: inline-block;
      padding: 10px;
      background-color: #007aff;
      color: #fff;
      position: relative;
      animation: btnMove 2s infinite linear;
    }
    
    /* 动画 */
    @keyframes btnMove {
      0% { top: 0; }
      50% { top: 100px; }
      100% { top: 0; }
    }
    
    /* 悬停状态 */
    #btn:hover {
      animation-play-state: paused;
    }
    

    JS:

    // Vue 实例
    new Vue({
      el: '#app',
      methods: {
        // 暂停按钮动画
        pauseAnim: function () {
          var btn = document.getElementById('btn');
          var btnStyle = window.getComputedStyle(btn); // 获取样式属性
    
          // 将动画属性清空
          btn.style.animation = '';
          btn.style['-webkit-animation'] = '';
          btn.style['-moz-animation'] = '';
          btn.style['-o-animation'] = '';
          btn.style['-ms-animation'] = '';
    
          // 修改为悬停状态的关键帧属性
          btn.style.top = btnStyle.top;
        },
        // 恢复按钮动画
        resumeAnim: function () {
          var btn = document.getElementById('btn');
          var btnStyle = window.getComputedStyle(btn); // 获取样式属性
    
          // 还原移动状态的关键帧属性
          btn.style.top = '0';
    
          // 重新添加动画属性
          btn.style.animation = 'btnMove 2s infinite linear';
          btn.style['-webkit-animation'] = 'btnMove 2s infinite linear';
          btn.style['-moz-animation'] = 'btnMove 2s infinite linear';
          btn.style['-o-animation'] = 'btnMove 2s infinite linear';
          btn.style['-ms-animation'] = 'btnMove 2s infinite linear';
        }
    })
    

    在这个解决方案中,我们使用了CSS的动画属性和关键帧来控制按钮的移动。当鼠标移入按钮时,我们使用JavaScript获取按钮的所有样式属性,将动画属性清空并修改为悬停状态的关键帧属性,鼠标移出时将按钮的样式属性还原为移动状态的关键帧属性,并重新添加动画属性。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

你的按钮运动应该是通过事件或者css控制的。
@mouseover与@mouseout这两个事件对应的是鼠标移入和移入,加在你的按钮上就行了,触发移入就停止你的运动,触发移出再恢复的你的移动。看不到你的代码,思路反正是这样的

监听下按钮hover事件