2013-05-08 58 views
0

为什么我无法读取object.style.left & object.style.top值?Javascript:为什么我无法读取'object.style.left'和'object.style.top'值?

我想动态地移动一个按钮。

我可以使用JavaScript通过这样的style.left & style.top值重置:

document.getElementById(theButton_ID).style.left = "128px"; 
document.getElementById(theButton_ID).style.top = "64px"; 

但我的问题是,我需要动态重置“style.left” &“style.top的价值观,使用需要在网页加载时动态确定的缩放因子。

要我想这个新手的方式意味着,我需要:

•获取style.left & style.top

•比例因子乘以他们

•分配这些修改后的值,以style.left & style.top值。

问题是我无法获得第一个值的style.left & style.top所以我不能修改它们,更不用说写回它们。

很明显,我都做错了&我不理解我应该理解的东西。

那么我做错了什么?

我错过了什么?

,最重要的是,我怎么得到style.left & style.top这样的价值,我可以用它们来动态地修改按钮的位置?

感谢大家对我们的所有帮助&的建议。

下面是实际的HTML/CSS/Javascript代码...

<html> 
     <head> 

     <title>Button Dynamic Move Test</title> 

     <style type="text/css"> 

     #MoveButton 
     { 
      position : absolute; 
      left  : 8px; 
      top  : 16px; 
     } 

    </style> 

    <script> 

//  var X_Index_Move_Factor = 1.25; 
//  var Y_Index_Move_Factor = 1.50; 

function Move_A_Button (theButton_ID) 
{ 
alert ( "We're in 'Move_A_Button'" 
     + "\n" 
     + " The Button Id = " 
     + theButton_ID 
     );    

var the_Old_Button_X_Offset = document.getElementById(theButtonId).style.left; 

var the_Old_Button_Y_Offset = document.getElementById(theButtonId).style.top; 

    alert ( "the_Old_Button_X_Offset = " 
     + "\n" 
     + the_Old_Button_X_Offset 
     + "the_Old_Button_Y_Offset = " 
     + "\n" 
     + the_Old_Button_Y_Offset 
     );    
} 

</script> 
</head> 

<body> 

    <button type = "button" 
     id  = "MoveButton" 
     onclick = "Move_A_Button ('MoveButton')"> 
    About Us 
    </button> 

</body> 
</html> 
+0

怪异的HTML代码格式化。 ! – Raptor 2013-05-08 02:44:26

+3

theButtonId = theButton_ID – Lennart 2013-05-08 02:45:16

+0

和''错过''和'元charset';缺少'DOCTYPE'以及 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/188331/">Raptor</a></span> <span>2013-05-08 02:46:31</span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="answer-title"> <span class="text-logo margin-top-sm">A</span> <h2 class="title h4">回答</h2> </div> <div class="item-description text-md markdown-body margin-bottom-40 voidso"> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">1<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p><code class="prettyprint-override">theButton_ID</code>是一个参数的名称</p> <pre><code class="prettyprint-override">function Move_A_Button (theButton_ID) { </code></pre> <p>当你试图获取其风格你写</p> <pre><code class="prettyprint-override">document.getElementById(theButtonId).style.left; </code></pre> <p>你忘了下划线</p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/16431865">来源</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2013-05-08 02:47:04</span> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/1092625/">Lennart</a></span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> <!-- comments --> <div class="comments"> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+1</span></div> <div class="col-lg-11"> <p class="commenttext">虽然...仍然无法正常工作,但额外的答案可以解决它...无论如何,谢谢! – <span class="text-secondary"> <small> <span>2013-05-08 21:39:28</span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="1038284119" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">1<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>即使纠正了拼写错误,元素最初也没有<code class="prettyprint-override">top</code>或<code class="prettyprint-override">left</code>样式,因为元素本身没有设置样式。</p> <p><code class="prettyprint-override">element.offsetLeft</code>和<code class="prettyprint-override">element.offsetTop</code>是你最好的选择。</p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/16431919">来源</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2013-05-08 02:52:45</span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> </div> </article> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">1<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>其实,如果你不需要(从或Firefox〜17版前)支持IE6还是IE7,那么最好的方式去获得的内部数据是这样的:</p> <pre><code class="prettyprint-override">// inside of your function: var el = document.getElementById(button_id), dimensions = el.getBoundingClientRect(); console.log("old x: " + dimensions.left, "old y: " + dimensions.top); console.log("new x: " + dimensions.left * scale_X, "new y: " + dimensions.top * scale_Y); </code></pre> <p>请记住,当你设置它们,之后,你必须添加的测量,以及:</p> <pre><code class="prettyprint-override">el.style.top = (dimensions.top * scale_Y) + "px"; el.style.left = (dimensions.left * scale_X) + "px"; </code></pre> <p>而且,使用<code class="prettyprint-override">getBoundingClient</code>功能将给你测量的数字,但<code class="prettyprint-override">.style.top</code>/<code class="prettyprint-override">.style.left</code>将给你测量值作为字符串(” 112px“),你再要拉号码取出来,然后修改,然后当你添加它们,您添加测量类型回......万岁</p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/16432003">来源</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2013-05-08 03:03:17</span> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/1001831/">Norguard</a></span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> </div> </article> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">相关问题</div> <ul class="relative_list"> <li> 1. <a href="http://www.uwenku.com/question/p-cjqzakfl-te.html" target="_blank" title="为什么我无法读取文件?"> 为什么我无法读取文件? </a> </li> <li> 2. <a href="http://www.uwenku.com/question/p-kjyjbqsq-ue.html" target="_blank" title="为什么我无法读取我的cookie值?"> 为什么我无法读取我的cookie值? </a> </li> <li> 3. <a href="http://www.uwenku.com/question/p-yttvmojv-cw.html" target="_blank" title="Java:为什么我无法读取和比较文本文件?"> Java:为什么我无法读取和比较文本文件? </a> </li> <li> 4. <a href="http://www.uwenku.com/question/p-cloqghad-ws.html" target="_blank" title="为什么我不能读取xml值?"> 为什么我不能读取xml值? </a> </li> <li> 5. <a href="http://www.uwenku.com/question/p-vmylrsir-rk.html" target="_blank" title="为什么它无法读取ListView?"> 为什么它无法读取ListView? </a> </li> <li> 6. <a href="http://www.uwenku.com/question/p-mmbsxqcc-bct.html" target="_blank" title="Python - tempfile.TemporaryFile无法读取;为什么?"> Python - tempfile.TemporaryFile无法读取;为什么? </a> </li> <li> 7. <a href="http://www.uwenku.com/question/p-oylvmvny-bhu.html" target="_blank" title="为什么无法读取PropType.func?"> 为什么无法读取PropType.func? </a> </li> <li> 8. <a href="http://www.uwenku.com/question/p-snnvpvxj-bko.html" target="_blank" title="无法读取app.config,为什么?"> 无法读取app.config,为什么? </a> </li> <li> 9. <a href="http://www.uwenku.com/question/p-gdikbibq-bbw.html" target="_blank" title="为什么我无法阅读BoxSync.Core.Doc.chm?"> 为什么我无法阅读BoxSync.Core.Doc.chm? </a> </li> <li> 10. <a href="http://www.uwenku.com/question/p-rfcjkvcb-cr.html" target="_blank" title="我无法读取负值"> 我无法读取负值 </a> </li> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4606349252"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <li> 11. <a href="http://www.uwenku.com/question/p-vbnmwhnk-bcb.html" target="_blank" title="为什么我无法通过JavaScript在JavaScript中获取ClientContext?"> 为什么我无法通过JavaScript在JavaScript中获取ClientContext? </a> </li> <li> 12. <a href="http://www.uwenku.com/question/p-yiyzuuhp-bcz.html" target="_blank" title="为什么javascript无法读取asp.net中的cookie?"> 为什么javascript无法读取asp.net中的cookie? </a> </li> <li> 13. <a href="http://www.uwenku.com/question/p-pkwyyvlv-bhz.html" target="_blank" title="Javascript:改变x的值,而x是object.style.left;"> Javascript:改变x的值,而x是object.style.left; </a> </li> <li> 14. <a href="http://www.uwenku.com/question/p-nvrosbfj-td.html" target="_blank" title="为什么我无法从JavaScript"> 为什么我无法从JavaScript </a> </li> <li> 15. <a href="http://www.uwenku.com/question/p-aytibqqf-td.html" target="_blank" title="为什么log4j.xml无法读取自己属性标记的值"> 为什么log4j.xml无法读取自己属性标记的值 </a> </li> <li> 16. <a href="http://www.uwenku.com/question/p-tqrpmego-bmh.html" target="_blank" title="Javascript - 为什么我有时无法使用GDownloadUrl读取文件内容?"> Javascript - 为什么我有时无法使用GDownloadUrl读取文件内容? </a> </li> <li> 17. <a href="http://www.uwenku.com/question/p-azchrvdg-bnq.html" target="_blank" title="为什么$ cookieStore.get()无法获取值?"> 为什么$ cookieStore.get()无法获取值? </a> </li> <li> 18. <a href="http://www.uwenku.com/question/p-nnybinfa-cg.html" target="_blank" title="为什么我无法读取Http请求输入流两次?"> 为什么我无法读取Http请求输入流两次? </a> </li> <li> 19. <a href="http://www.uwenku.com/question/p-oqjimmmx-ok.html" target="_blank" title="为什么我得到“无法读取html undefined的属性”?"> 为什么我得到“无法读取html undefined的属性”? </a> </li> <li> 20. <a href="http://www.uwenku.com/question/p-gjhaeuqm-vv.html" target="_blank" title="为什么我无法从plist读取数据?"> 为什么我无法从plist读取数据? </a> </li> <li> 21. <a href="http://www.uwenku.com/question/p-skszbjel-op.html" target="_blank" title="找不到原因为什么我无法从editText读取"> 找不到原因为什么我无法从editText读取 </a> </li> <li> 22. <a href="http://www.uwenku.com/question/p-sbreveja-pz.html" target="_blank" title="为什么我无法从/ dev/snd/midi *读取数据?"> 为什么我无法从/ dev/snd/midi *读取数据? </a> </li> <li> 23. <a href="http://www.uwenku.com/question/p-tizopxpi-ev.html" target="_blank" title="为什么我无法从这个URL读取JSON?"> 为什么我无法从这个URL读取JSON? </a> </li> <li> 24. <a href="http://www.uwenku.com/question/p-dyavpabl-mc.html" target="_blank" title="为什么我无法从文件中读取?"> 为什么我无法从文件中读取? </a> </li> <li> 25. <a href="http://www.uwenku.com/question/p-cmqyzyor-vy.html" target="_blank" title="为什么我无法读取iOS WiFi地址?"> 为什么我无法读取iOS WiFi地址? </a> </li> <li> 26. <a href="http://www.uwenku.com/question/p-ntmlwhij-xo.html" target="_blank" title="为什么我无法按顺序读取.properties文件?"> 为什么我无法按顺序读取.properties文件? </a> </li> <li> 27. <a href="http://www.uwenku.com/question/p-upkxwdzc-xp.html" target="_blank" title="为什么scanf无法读取我的输入?"> 为什么scanf无法读取我的输入? </a> </li> <li> 28. <a href="http://www.uwenku.com/question/p-yqsvarsv-eo.html" target="_blank" title="无法读取'长度'的属性,我不知道为什么"> 无法读取'长度'的属性,我不知道为什么 </a> </li> <li> 29. <a href="http://www.uwenku.com/question/p-femjiblp-cd.html" target="_blank" title="为什么我无法从WinRT的AppData中读取XML?"> 为什么我无法从WinRT的AppData中读取XML? </a> </li> <li> 30. <a href="http://www.uwenku.com/question/p-ajzfihgb-on.html" target="_blank" title="为什么tomcat7无法读取我的context.xml?"> 为什么tomcat7无法读取我的context.xml? </a> </li> </ul> </div> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="1575177025"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img.uwenku.com/uwenku/script/side.js?t=1644592048176"></script> <script type="text/javascript" src="http://img.uwenku.com/uwenku/plugin/highlight/highlight.pack.js"></script> <link href="http://img.uwenku.com/uwenku/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> 每日一句 </div> <div class="panel-body m-b-sm m-t-sm clearfix"> 每一个你不满意的现在,都有一个你没有努力的曾经。 </div> </div> <div class="row"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="5415218910" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> 最新问题 </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://www.uwenku.com/question/p-dfmtksul-vx.html" target="_blank" title="jQuery的动态CSS属性(在滚动)"> jQuery的动态CSS属性(在滚动) </a> </li> <li class="side_article_list_item"> 2. <a href="http://www.uwenku.com/question/p-vuvasezd-wd.html" target="_blank" title="Eclipse手动/脱机JBoss Tools Luna安装:缺少需求abc需要'bundle xyz',但找不到"> Eclipse手动/脱机JBoss Tools Luna安装:缺少需求abc需要'bundle xyz',但找不到 </a> </li> <li class="side_article_list_item"> 3. <a href="http://www.uwenku.com/question/p-cgymfszy-uo.html" target="_blank" title="Laravel登记错误,数据库连接,但收到奇怪的错误"> Laravel登记错误,数据库连接,但收到奇怪的错误 </a> </li> <li class="side_article_list_item"> 4. <a href="http://www.uwenku.com/question/p-qybltylb-vh.html" target="_blank" title="highmaps在迁移到.NET Core后停止更新"> highmaps在迁移到.NET Core后停止更新 </a> </li> <li class="side_article_list_item"> 5. <a href="http://www.uwenku.com/question/p-bkksxbpc-vq.html" target="_blank" title="拦截winsock的recvfrom函数提供了无效地址错误"> 拦截winsock的recvfrom函数提供了无效地址错误 </a> </li> <li class="side_article_list_item"> 6. <a href="http://www.uwenku.com/question/p-ayftxvnb-va.html" target="_blank" title="Python对象混入注射"> Python对象混入注射 </a> </li> <li class="side_article_list_item"> 7. <a href="http://www.uwenku.com/question/p-xwmcdgyo-sg.html" target="_blank" title="批处理文件无法正常工作,除非我正在观看"> 批处理文件无法正常工作,除非我正在观看 </a> </li> <li class="side_article_list_item"> 8. <a href="http://www.uwenku.com/question/p-xggrozic-tb.html" target="_blank" title="司 - SQL"> 司 - SQL </a> </li> <li class="side_article_list_item"> 9. <a href="http://www.uwenku.com/question/p-zurkldvr-tn.html" target="_blank" title="在C++ Builder中的服务应用程序6"> 在C++ Builder中的服务应用程序6 </a> </li> <li class="side_article_list_item"> 10. <a href="http://www.uwenku.com/question/p-xvogfpaq-py.html" target="_blank" title="Spring REST:适用于嵌套XML请求正文的构造函数吗?"> Spring REST:适用于嵌套XML请求正文的构造函数吗? </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> 相关问题</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://www.uwenku.com/question/p-cjqzakfl-te.html" target="_blank" title="为什么我无法读取文件?"> 为什么我无法读取文件? </a> </li> <li class="side_article_list_item"> 2. <a href="http://www.uwenku.com/question/p-kjyjbqsq-ue.html" target="_blank" title="为什么我无法读取我的cookie值?"> 为什么我无法读取我的cookie值? </a> </li> <li class="side_article_list_item"> 3. <a href="http://www.uwenku.com/question/p-yttvmojv-cw.html" target="_blank" title="Java:为什么我无法读取和比较文本文件?"> Java:为什么我无法读取和比较文本文件? </a> </li> <li class="side_article_list_item"> 4. <a href="http://www.uwenku.com/question/p-cloqghad-ws.html" target="_blank" title="为什么我不能读取xml值?"> 为什么我不能读取xml值? </a> </li> <li class="side_article_list_item"> 5. <a href="http://www.uwenku.com/question/p-vmylrsir-rk.html" target="_blank" title="为什么它无法读取ListView?"> 为什么它无法读取ListView? </a> </li> <li class="side_article_list_item"> 6. <a href="http://www.uwenku.com/question/p-mmbsxqcc-bct.html" target="_blank" title="Python - tempfile.TemporaryFile无法读取;为什么?"> Python - tempfile.TemporaryFile无法读取;为什么? </a> </li> <li class="side_article_list_item"> 7. <a href="http://www.uwenku.com/question/p-oylvmvny-bhu.html" target="_blank" title="为什么无法读取PropType.func?"> 为什么无法读取PropType.func? </a> </li> <li class="side_article_list_item"> 8. <a href="http://www.uwenku.com/question/p-snnvpvxj-bko.html" target="_blank" title="无法读取app.config,为什么?"> 无法读取app.config,为什么? </a> </li> <li class="side_article_list_item"> 9. <a href="http://www.uwenku.com/question/p-gdikbibq-bbw.html" target="_blank" title="为什么我无法阅读BoxSync.Core.Doc.chm?"> 为什么我无法阅读BoxSync.Core.Doc.chm? </a> </li> <li class="side_article_list_item"> 10. <a href="http://www.uwenku.com/question/p-rfcjkvcb-cr.html" target="_blank" title="我无法读取负值"> 我无法读取负值 </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://www.uwenku.com/contact">联系我们</a></li> <li>© 2020 UWENKU.COM</li> <li><a target="_blank" href="https://beian.miit.gov.cn/">沪ICP备13005482号-4</a></li> <li><script type="text/javascript" src="https://v1.cnzz.com/z_stat.php?id=1280101193&web_id=1280101193"></script></li> <li><a href="http://www.uwenku.com/" target="_blank" title="优文库">简体中文</a></li> <li><a href="http://hk.uwenku.com/" target="_blank" title="優文庫">繁體中文</a></li> <li><a href="http://ru.uwenku.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.uwenku.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.uwenku.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.uwenku.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.uwenku.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.uwenku.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.uwenku.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.uwenku.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.uwenku.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.uwenku.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.uwenku.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f78a970f17b19a79fc477a3378096f29"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>