В основном ваша проблема в том, что вы просто устанавливаете margin-left
или margin-right
при использовании стрелок, что неправильно, потому что:
начинаются с верхних 100 и оставляются 100.
если вы двигаетесь слева направо, вы устанавливаете только margin-left
, допустим, вы переместились на 100 единиц, ваш новый левый - 200. style { margin-left: 200px }
margin-top
, скажем, 50 единиц, ваш новый верх будет 150. style { margin-top: 150px }
(используя в качестве значения по умолчанию ваше начальное значение left=100
но вы не принимаете во внимание, что вам нужно установить их оба, чтобы элемент всегда имел дорожку сверху и снизу.
также обратите внимание, что вы устанавливаете стиль внутри каждого, если вы выполните вычисления, а затем установите значения в конце.
еще одна нота, начните использовать let
и const
, ваш код превратится в беспорядок, если вы продолжите в том же духе.
[ 1111]
var spacePos = 5;
var spaceNeg = -5;
var output;
var marginLeft = 100;
var marginTop = 100;
function init() {
output = document.getElementById('output');
document.onkeydown = updateKeys;
}
updateKeys = function(e) {
currentKey = e.keyCode;
output.innerHTML = "current key: " + currentKey;
if (currentKey == '39') {
marginLeft = marginLeft + spacePos;
} else if (currentKey == '37') {
marginLeft = marginLeft + spaceNeg;
} else if (currentKey == '38') {
marginTop = marginTop + spaceNeg;
} else if (currentKey == '40') {
marginTop = marginTop + spacePos;
}
document.getElementById('blockB').style = 'margin:' + marginTop + 'px ' + marginLeft +
'px';
}
K_LEFT = 37;
K_RIGHT = 39;
K_UP = 38;
K_DOWN = 40;
<script>
</script>
<body onload='init()'>
<div id='output'> </div>
<div id='blockB'> </div>
</body>
<style>
#blockB {
width: 10px;
height: 10px;
margin-top: 100px;
margin-left: 100px;
position: absolute;
background-color: blue;
}
</style>
Можно использовать веб-Проект Развертывания Visual Studio, Включают от Microsoft.
Я использую это с MSBuild как часть CruiseControl, его очень хорошего, и с некоторыми Общественными Задачами для Сборки MS можно сделать *.config (или любой XML-файл) замены как часть процесса сборки.
Править: Я также вижу, что Задачи Сообщества MSBuild включают действие FtpUpload. Это должно быть точно, в чем Вы нуждаетесь.
Ну, это оказывается самым простым способом сделать, это должно использовать "Опубликовать" функциональность, встроенную в VS.NET.
Щелкните правой кнопкой по проекту и нажмите Publish. Это создаст и развернет проект для Вас. Это, очевидно, не столь настраиваемо как использование MSBuild или Nant, но это действительно имеет некоторые опции:
Я использовал эту функцию прежде, но я так или иначе думал, что это было только доступно для проектов "веб-сайта".
Nant не имеют никакой задачи ftp. Здесь я нахожу, самый удобный, очень легкий, решение красоты. Странный, почему никакие порты его к nant.
Этот вопрос довольно старый, но я бы посоветовал использовать для этого MSDeploy . При желании вы также можете использовать WDP для компиляции и слияния ASP.NET. Самое замечательное в MSDeploy то, что вы можете установить MSDeploy Remote Agent Service на целевую машину. Затем, когда вы выполните синхронизацию, она определит, какие файлы устарели, и отправит только эти файлы. Таким образом, вы сэкономите время и пропускную способность. Также вы можете выполнять трансформации по мере установки сайта. Его также легко разворачивать на множество различных серверов. У меня есть видео онлайн о MSDeploy, подробнее об этом по адресу http://sedodream.com/2009/10/27/MSDeployPresentationMaterials.aspx.
.отказ от ответственности: я написал это
я использую кое-что, что я написал, dashy: http://www.mirios.com. au/dashy
Но не используйте это легкомысленно, потому что вам нужно иметь:
Не стесняйтесь, но в настоящее время я не рекомендую его ни для чего критичного.