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

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 在rhel8中安装qemu-kvm时遇到“cannot initialize crypto:unable to initialize gcrypt“报错”
  • ¥15 arbotix没有/cmd_vel话题
  • ¥15 paddle库安装时报错提示需要安装common、dual等库,安装了上面的库以后还是显示报错未安装,要怎么办呀?
  • ¥20 找能定制Python脚本的
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
  • ¥15 用C语言怎么判断字符串的输入是否符合设定?
  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀
  • ¥50 我在一个购物网站的排队系统排队,这个排队到号后重新定向到目标网站进行购物,但是有技术牛通过技术方法直接跳过排队系统进入目标网址购物,有没有什么软件或者脚本可以用
  • ¥15 ios可以实现ymodem-1k协议 1024字节传输吗?
  • ¥300 寻抓云闪付tn组成网页付款链接