头秃秃头 2022-05-15 00:17 采纳率: 100%
浏览 131
已结题

html+css如何设计图片在页面上自由浮动,遇边缘反弹

如何只使用HTML+CSS实现图片在页面上自由浮动,碰到页面边界后反弹,遇鼠标悬浮时停止浮动,点击“关闭”后隐藏

  • 写回答

2条回答 默认 最新

  • Heerey525 前端领域新星创作者 2022-05-15 09:20
    关注
    
    <!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" />
        <!-- <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> -->
        <title>document</title>
        <style type="text/css">
          #div1 {
            width: 300px;
            height: 300px;
            padding: 0;
            margin: 0;
            position: fixed;
            left: 0;
            top: 0;
          }
          #div1 img {
            width: 300px;
            height: 300px;
          }
        </style>
      </head>
      <body>
        <div id="div1">
          <img id="ad" src="1.png" alt="" />
          <button onclick="closeAd()">关闭</button>
        </div>
        <script type="text/javascript">
          // 参考来源: https://blog.csdn.net/zxh996/article/details/118655180
          window.onload = function () {
            //获取元素
            var div1 = document.getElementById("div1");
            var w = document.documentElement.clientWidth;
            var h = document.documentElement.clientHeight;
            var gox = 1;
            var goy = 1;
            //广告漂浮
            function move() {
              var x = div1.offsetLeft;
              var y = div1.offsetTop;
              if (x > w - 300 || x < 0) gox = -gox;
              div1.style.left = x + 10 * gox + "px";
              if (y > h - 300 || y < 0) goy = -goy;
              div1.style.top = y + 10 * goy + "px";
            }
            //漂浮定时器
            var timer = setInterval(move, 30);
            //移入移出时广告的浮动
            div1.onmouseover = function () {
              clearInterval(timer);
            };
            div1.onmouseout = function () {
              timer = setInterval(move, 30);
            };
            //点击一次跳转到另一个页面,点击两次广告消失
            ad.onclick = function () {
              var neww = window.open("_blank");
              neww.location = "http://www.baidu.com";
            };
          };
          function closeAd() {
            var div1 = document.getElementById("div1");
            div1.style.display = "none";
          }
        </script>
      </body>
    </html>
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月23日
  • 已采纳回答 5月15日
  • 创建了问题 5月15日

悬赏问题

  • ¥15 如何用QDomDocument读取内容为空格的xml数据
  • ¥15 请阅读下面代码,帮我修改下代码
  • ¥15 关于#microsoft#的问题:电脑启动后不显示桌面图标和窗口,除任务栏外无法操作任何东西
  • ¥15 如何输入百度,显示本地下载的html文件页面,地址栏还显示百度的地址
  • ¥15 通过kinect制作换装程序但是服装不贴合(标签-ar)
  • ¥20 matlab如何绘制三维瀑布图
  • ¥15 关于用abap来解决动态规划的问题,但是要求输出索引值,这个是难点
  • ¥15 在ISIS中什么是IP从地址
  • ¥15 压测时,并发量过高时,响应时间出现尖刺
  • ¥15 关于vmprotect3.8.4虚拟文件一项