请教一下,哪里出问题

ぞ忆为言ボ 2019-04-30 12:37:36
想问一下代码有没有问题,如果没有的话,为什么浏览器打开后,div没有移动
...全文
93 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
潇湘忆梦 2019-04-30
  • 打赏
  • 举报
回复
引用 3 楼 ぞ忆为言ボ 的回复:
[quote=引用 1 楼 潇湘忆梦的回复:]仔细看了下,好几个问题: 1. 这段script在<head>里面,是获取不到<div id="box" ></div>控件的,要在div加载完成后,再去执行script; 2. box.offsetWidth是获取的div的宽度,document.box.offsetWidth是错误的写法,你可以去搜索下offsetWidth的使用方法; 3. box.style.left 获取或设置相对于具有定位属性(position定义为relative)的父对象 的左边距,要设置position的值; 4. setInterval调用函数,使用setInterval(Go, 2000)即可,参考:https://www.runoob.com/jsref/met-win-setinterval.html; 这段代码最好设置下div的宽高,移动幅度再大一点,加1像素,效果太不明显,判断那一块也是可以优化的。 修改后代码如下:

   <div id="box" >
        论坛<br />
        直播
    </div>
    <script type="text/javascript">
        var startmove;
        var box = document.getElementById("box");
        var speed = 20;
        var x = 100;
        var y = 300;
        var statusX = true;
        var statusY = true;

        var winW = document.documentElement.clientWidth - box.offsetWidth;
        var winH = document.activeElement.clientHeight - box.offsetHeight;

        function Go() {
            box.style.left = x + 'px';
            box.style.top = y + 'px';
            box.style.position = 'relative';
            if (x < 0) {
                x = x + 1;
            }
            if (x > winW) {
                x = x - 1;
            }
            if (y < 0) {
                y = y + 1;
            }
            if (y > winH) {
                y = y - 1;
            }
        }
        startmove = setInterval(Go, 2000);
    </script>
我也是有点闲了
好的,谢谢你的指导,因为我是刚学这个,所以一些东西还不是很懂[/quote] 都是这样过来的,你可以找案例学,比较快,下班了下班了,不看了
ぞ忆为言ボ 2019-04-30
  • 打赏
  • 举报
回复
引用 1 楼 潇湘忆梦的回复:
仔细看了下,好几个问题: 1. 这段script在<head>里面,是获取不到<div id="box" ></div>控件的,要在div加载完成后,再去执行script; 2. box.offsetWidth是获取的div的宽度,document.box.offsetWidth是错误的写法,你可以去搜索下offsetWidth的使用方法; 3. box.style.left 获取或设置相对于具有定位属性(position定义为relative)的父对象 的左边距,要设置position的值; 4. setInterval调用函数,使用setInterval(Go, 2000)即可,参考:https://www.runoob.com/jsref/met-win-setinterval.html; 这段代码最好设置下div的宽高,移动幅度再大一点,加1像素,效果太不明显,判断那一块也是可以优化的。 修改后代码如下:

   <div id="box" >
        论坛<br />
        直播
    </div>
    <script type="text/javascript">
        var startmove;
        var box = document.getElementById("box");
        var speed = 20;
        var x = 100;
        var y = 300;
        var statusX = true;
        var statusY = true;

        var winW = document.documentElement.clientWidth - box.offsetWidth;
        var winH = document.activeElement.clientHeight - box.offsetHeight;

        function Go() {
            box.style.left = x + 'px';
            box.style.top = y + 'px';
            box.style.position = 'relative';
            if (x < 0) {
                x = x + 1;
            }
            if (x > winW) {
                x = x - 1;
            }
            if (y < 0) {
                y = y + 1;
            }
            if (y > winH) {
                y = y - 1;
            }
        }
        startmove = setInterval(Go, 2000);
    </script>
我也是有点闲了
好的,谢谢你的指导,因为我是刚学这个,所以一些东西还不是很懂
潇湘忆梦 2019-04-30
  • 打赏
  • 举报
回复
待优化的有点多,把你的代码敲了一遍,后面判断也懒得改了
潇湘忆梦 2019-04-30
  • 打赏
  • 举报
回复
仔细看了下,好几个问题: 1. 这段script在<head>里面,是获取不到<div id="box" ></div>控件的,要在div加载完成后,再去执行script; 2. box.offsetWidth是获取的div的宽度,document.box.offsetWidth是错误的写法,你可以去搜索下offsetWidth的使用方法; 3. box.style.left 获取或设置相对于具有定位属性(position定义为relative)的父对象 的左边距,要设置position的值; 4. setInterval调用函数,使用setInterval(Go, 2000)即可,参考:https://www.runoob.com/jsref/met-win-setinterval.html; 这段代码最好设置下div的宽高,移动幅度再大一点,加1像素,效果太不明显,判断那一块也是可以优化的。 修改后代码如下:

   <div id="box" >
        论坛<br />
        直播
    </div>
    <script type="text/javascript">
        var startmove;
        var box = document.getElementById("box");
        var speed = 20;
        var x = 100;
        var y = 300;
        var statusX = true;
        var statusY = true;

        var winW = document.documentElement.clientWidth - box.offsetWidth;
        var winH = document.activeElement.clientHeight - box.offsetHeight;

        function Go() {
            box.style.left = x + 'px';
            box.style.top = y + 'px';
            box.style.position = 'relative';
            if (x < 0) {
                x = x + 1;
            }
            if (x > winW) {
                x = x - 1;
            }
            if (y < 0) {
                y = y + 1;
            }
            if (y > winH) {
                y = y - 1;
            }
        }
        startmove = setInterval(Go, 2000);
    </script>
我也是有点闲了
内容概要:本文提了一种基于瞬态三角哈里斯鹰算法(TTHHO)的多无人机协同集群在三维空间中的避障路径规划方法,旨在通过优化综合目标函数实现最低路径成本。该方法综合考量路径长度、飞行高度、环境威胁区域及转弯角度等多个因素,构建精细化的代价评估模型,从而提升路径的安全性与经济性。研究采用Matlab平台完成算法设计与仿真实验,验证了TTHHO算法在复杂三维动态环境下的高效寻优能力与强鲁棒性,能够有效支持多无人机系统的自主导航、协同控制与实时避障,具有良好的工程应用前景。; 适合人群:具备一定编程基础和优化算法理论背景,从事无人机路径规划、群体智能优化算法研究及相关领域的科研人员、工程技术人员与研究生。; 使用场景及目标:①解决多无人机在复杂三维空间中的协同避障与路径优化问题;②降低飞行综合能耗与风险,提高任务执行效率与安全性;③为智能优化算法在无人系统、自动驾驶、空中交通管理等实际工程场景中的应用提供可复现的技术范例与仿真支持。; 阅读建议:建议读者结合提供的Matlab代码深入理解算法实现细节,重点关注目标函数的设计逻辑、约束条件的处理方式以及参数调优策略,同时可将该方法迁移拓展至其他群体智能优化或路径规划应用场景中进行对比研究与性能验证。

43,738

社区成员

发帖
与我相关
我的任务
社区描述
HTML5是构建Web内容的一种语言描述方式。HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式.被认为是互联网的核心技术之一。
社区管理员
  • HTML5社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧