单击时按钮不移动

Button is not moving when clicked

提问人:Abishek B 提问时间:11/12/2023 更新时间:11/12/2023 访问量:42

问:

我创建了一个按钮,当它被点击时,它必须移动到一个随机位置。 我创建了一个带有按钮的 html 页面,该按钮具有 功能。 调用该函数,我创建了两个变量 heightwidth 来生成随机高度和宽度。但是 document.style.top 物业没有按预期工作。请帮我一个适当的解决方案。 谢谢

html代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Move Button</title>
</head>
<body>
    
    <script src="Script.js" type="text/Javascript"> </script>
    <button id="my-button" onclick= "MoveText()" >Click me</button>


    <style>
        body {
             background-color: rgb(62, 59, 229);
             color:yellow;
             font-weight: 500;
             letter-spacing: 2;
             font-size: 35px;
             
         }
     </style>
 
    
    
</body>
</html>

Javascript 文件 (Script: .js) :

function MoveText() {    
    const Button_select=document.getElementById('my-button')
    console.log(Button_select)

    var height=String(Math.floor(Math.random()*500))+'px'
    var width=String(Math.floor(Math.random()*900))+'px'

    Button_select.style.top = height;
    Button_select.style.left = width;


    Button_select.style.color = 'Red'
}




我也尝试了内联 Javascript,但没有用。 我还在样式部分添加了位置属性,并尝试将其设置为绝对和相对,但没有用。 我希望按钮在单击时出现在随机位置。

JavaScript HTML 函数 按钮 位置

评论

1赞 Jaromanda X 11/12/2023
如果按钮的CSS是默认的,那么顶部/左侧不做任何事情......您可能想将 更改为可以移动的内容positionposition
0赞 Afzal K. 11/12/2023
将 #my 按钮的位置更改为绝对或相对
0赞 Jaromanda X 11/12/2023
@AfzalK。如果你知道亲戚是如何工作的,亲戚可能会很糟糕:p
0赞 Abishek B 11/12/2023
谢谢你的帮助!!但是你能解释一下我为什么要这样做吗?

答:

0赞 Unmitigated 11/12/2023 #1

将按钮的 CSS 位置设置为静态(默认)以外的值。

Button_select.style.position = 'fixed';

评论

0赞 Unmitigated 11/12/2023
工作实例
0赞 Abishek B 11/12/2023
我尝试了 position 属性的所有可能值。但它仍然不起作用.DId 我离开了 siomething 还是有任何错别字?
0赞 Unmitigated 11/12/2023
@AbishekB 您是否尝试过运行上面提供的工作示例中的代码?它在那里工作正常。
0赞 Abishek B 11/12/2023
它工作正常,谢谢,但我需要按钮来改变它的位置,每当按钮被点击时。此外,它仅移动到特定位置,而不是移动到屏幕中的随机位置。我猜上面的例子只有效一次。另外,您能否解释一下上述工作示例的工作原理..
0赞 Unmitigated 11/12/2023
@AbishekB 这不是真的;在 JSFiddle 中,每次单击时,它都会移动到随机位置。
0赞 Vishal Tiwari 11/12/2023 #2

那是因为您的按钮位置不正确。您需要将其定位为固定或绝对(相对于某些父元素)才能使顶部/底部/左侧/右侧 css 属性正常工作。

将 HTML 按钮代码更改为

<button id="my-button" style="position: fixed;" onclick= "MoveText()" >Click me</button>