头秃秃头 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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵