Jump to content

Odrin

User
  • Posts

    84
  • Joined

  • Last visited

  • Days Won

    1

Odrin last won the day on December 25 2011

Odrin had the most liked content!

Odrin's Achievements

Explorer

Explorer (1/14)

8

Reputation

  1. А зачем у top делать position:absolute? Блин, надо делать, работа стоит... А я никак не могу решиться, JS или Ваш способ.
  2. 1. Я не совсем подробно описал. Зеленый блок - не вся страница. Сверху там еще шапка. Но это не важно в общем-то. 2. Нет, вертикальная полоса прокрутки там всегда есть, там очень много элементов. 3. Не понимаю, как, если честно =) Можно подробней? Еще раз в двух словах, что надо - изменяем высоту окна браузера и синие блоки остаются неизменными по высоте и расположению относительно родительского блока, а красный занимает все свободное место между ними.
  3. Добрый день. Вот такой вопрос. Зеленый блок растягивается на высоту страницы. Два голубых блока - фиксированной высоты, между блок, в котором много элементов и вертикальная прокрутка (список). Необходимо, что бы красный блок растягивался и занимал все пространство между синими блоками. Как это сделать? Интересует решение задачи именно на CSS, т.к. делать это через JS - путь к ошибкам и трудностям в будущем. P.S. В идеале, высота голубых блоков неизвестна и может меняться.
  4. Добрый день. Копаюсь в исходниках Leaflet и нашел там немного магии, которую никак не могу понять =) А именно Class.js. В методе extend: var F = function () {}; F.prototype = this.prototype; var proto = new F(); proto.constructor = NewClass; NewClass.prototype = proto; Что здесь происходит и для чего эта магия с прототипами? Для чего тут переменная F? И что такое и какую функцию выполняют InitHooks? (это уже дальше по коду)
  5. Odrin

    Jquery

    Проще написать эту функцию самому или найти в нете решение. Какая именно вас интересует?
  6. Уважаемый, Я далеко не новечек и перед тем как "однозначно заявлять НЕТ", я подробно изучил Ваши ссылки.
  7. Все верно, для общего развития полезно =)
  8. Great Rash, Спасибо, все теперь понятно. freeneutron, Если решать эту задачу таким способом и, допустим, уже по двум осям с произвольным направлением движения, то при каждом столкновении высчитывается вектор скорости тела (значения Vx и Vy), timestamp заново сбрасывается на Date.now() и пускаем тело по формуле равноускоренного движения с новыми начальными значениями до следующего столкновения. Правильно?
  9. Выглядит хорошо, но откуда берутся эти коэффициенты world? Как вот это работает? ball.vy += world.gravity * world.friction; ball.y += ball.vy;
  10. nerv, Совсем не то. freeneutron, Это и так понятно. "Формульно описать" я имел ввиду динамику движения. Со столкновением все просто. У нас есть текущее состояние тела (для простоты будем только по оси Y). Координата - Y, скорость по оси Y - Vy, и дельта T (Date.now() - сохраненное время). Соответственно первое, что приходит в голову: this._recalcPosition = function () { var now = Date.now(); var dt = (Date.now() - this.timestamp) / 1000; this.y = this.y + this.vy * dt + g * dt * dt / 2; this.vy = this.vy + g * dt; this.timestamp = now; } Но мяч почему-то падает очень медленно. Собственно вот как это выглядит. Уж не потому ли это, что 1 м. != 1 px А время я привожу к секундам, да и ускорение свободного падения в м/с?. Так все таки, как это правильно сделать-то?
  11. Добрый день! Похоже школьные годы совсем забылись и мозг отказывается работать =) Простая задача - объект (пусть это будет условно "мяч") падает с высоты h на поверхность, отскакивает, поднимается и снова падает. Силу трения и остальные внешние силы не учитываем, т.е. прыгает бесконечно. С HTML все просто: <body> <div style="margin:0 auto; width: 802px;"> <canvas id="canvas" width="800" height="600" style="border:1px solid;"></canvas> </div> </body> JS. Запускаем анимацию: window.onload = function () { var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); var engine = new Engine(ctx); var raf = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame; var myRedrawFunc = function () { engine.refresh(); raf(myRedrawFunc); } raf(myRedrawFunc); } Код "движка": function Engine(ctx) { this.width = 800; this.height = 600; this.ctx = ctx; this.renderObjects = []; this.refresh = function () { this.ctx.clearRect(0, 0, this.width, this.height); for (var i = 0; i < this.renderObjects.length; i++) { this.renderObjects[i].draw(this.ctx); } } this.addObject = function (obj) { this.renderObjects.push(obj); } } Ну и сам "мяч": function RenderObject(x, y) { this.x = x; this.y = y; this.vx = 0; this.vy = 0; this.width = 64; this.height = 64; this.img = new Image(); this.img.src = "/img/ball.png"; this._recalcPosition = function () { // ??????? } this.draw = function (ctx) { this._recalPosition(); ctx.drawImage(this.img, this.x, this.y, this.width, this.height); } } Тут все понятно. С равноускоренным падение так же все просто, Y = Y0 + V0 * T + (g * T * T) / 2. Т.е. зная начальную высоту и время создания объекта (запоминаем Date.now()) рассчитывается положение тела. Но далее встает вопрос о столкновении с поверхностью. Понятно, что нужно учитывать текущую скорость и изменение координаты и скорости за промежуток времени. А при столкновении умножать скорость на -1. Но вот как это формульно описать?
  12. Я всегда это в одну строчку записываю. document.getElementById("edit") && (document.getElementById("edit").size = '12');
  13. Спасибо, сам разобрался =) Стоило только нарисовать и все встало на свои места... Надо было сразу так сделать Где- то с час в голове все это пытался представить)
  14. Сразу картинка Делаю собственный скролл.Блок1 - то, что отображается, блок2 таскается вверх/вниз. (top меняется) Подскажите, по какой формуле мне посчитать X - положение скролбара относительно блока, в котором он отображается. Я пришел к этому x = top / (блок2 / блок1). (везде имеется ввиду высота этих блоков) Но это не правильно - скроллбар до конца не опускается. Что то мозг мой начинает закипать, спасите! =)
  15. Хостится у меня на Google App Engine небольшой сайтец. И вот последние несколько дней наблюдаю в логах странную картину - каждые 30 минут приходит GET запрос на favicon.ico С одного и того же IP - 82.150.190.194 Посмотрел через whois - вроде как Чехия. Есть какие- нибудь идеи, что это такое? И нафига чехам мой favicon каждые 30 минут?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy