各位同事们,请帮我看看,这个动态效果为什么不好用啊,我想让鼠标悬停时diu上浮,为什么不能用啊

我在一个div里放了一张图片

img


然后在css中设置了div的样式

img


然后我想用js实现动画效果,虽然效果不是特别好看,但是我不明白我错在哪了

img

css上写个position:relative, 然后在js代码上只用写daShen.style.top = 5 + 'px'控制距离即可,
如果要有过渡效果,需要在css上加个 transition: all 1.5s linear ; 这句话表示所有属性过渡时间为1.5s,全程匀速

img

  • 'px'
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7673582
  • 你也可以参考下这篇文章:实现div跟随鼠标移动、点击、拖动而产生的变化
  • 除此之外, 这篇博客: 运用HTML,CSS,JS 实现的几个网页特效中的 2. 实现两个(或者更多)块级标签(如div标签)占一行 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 我们应该知道块级标签是单独占一行,如我们熟悉的div标签,那么怎样才能使多个div标签在一行中显示呢?

  • 以下回答由chatgpt基于相关博客总结生成:

    可能出现的问题是没有给图片设置相应的CSS属性,也没有写对应的JavaScript代码来实现动态效果。

    解决方法一:

    1.在CSS中为图片设定初始状态(例如opacity为0或者display为none)。

    2.用JavaScript选择对应的div和图片元素,添加鼠标悬浮事件监听器。

    3.在监听器函数中,用元素.style修改图片的CSS属性,使其达到动态效果。

    示例代码如下:

    <div id="myDiv">
      <img id="myImg" src="example.jpg">
    </div>
    
    <style>
      #myImg {
        opacity: 0;
        transition: opacity 0.5s ease;
      }
      #myDiv:hover #myImg {
        opacity: 1;
      }
    </style>
    
    <script>
      const myDiv = document.getElementById('myDiv');
      const myImg = document.getElementById('myImg');
    
      myDiv.addEventListener('mouseenter', () => {
        myImg.style.opacity = '1';
      });
    
      myDiv.addEventListener('mouseleave', () => {
        myImg.style.opacity = '0';
      });
    </script>
    

    解决方法二:

    1.在CSS中为图片设定初始状态(例如opacity为0或者display为none)。

    2.用JavaScript选择对应的div和图片元素,添加鼠标悬浮事件监听器。

    3.在监听器函数中,用元素.classList来切换一个包含动态效果的CSS类。

    示例代码如下:

    <div id="myDiv">
      <img id="myImg" src="example.jpg">
    </div>
    
    <style>
      #myImg {
        opacity: 0;
        transition: opacity 0.5s ease;
      }
      .show {
        opacity: 1;
      }
    </style>
    
    <script>
      const myDiv = document.getElementById('myDiv');
      const myImg = document.getElementById('myImg');
    
      myDiv.addEventListener('mouseenter', () => {
        myImg.classList.add('show');
      });
    
      myDiv.addEventListener('mouseleave', () => {
        myImg.classList.remove('show');
      });
    </script>
    

    上述代码中的事件监听器函数使用了箭头函数,如需兼容低版本浏览器,可改为function关键字定义函数。