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 (1/14)
8
Reputation
-
А зачем у top делать position:absolute? Блин, надо делать, работа стоит... А я никак не могу решиться, JS или Ваш способ.
-
1. Я не совсем подробно описал. Зеленый блок - не вся страница. Сверху там еще шапка. Но это не важно в общем-то. 2. Нет, вертикальная полоса прокрутки там всегда есть, там очень много элементов. 3. Не понимаю, как, если честно =) Можно подробней? Еще раз в двух словах, что надо - изменяем высоту окна браузера и синие блоки остаются неизменными по высоте и расположению относительно родительского блока, а красный занимает все свободное место между ними.
-
Добрый день. Вот такой вопрос. Зеленый блок растягивается на высоту страницы. Два голубых блока - фиксированной высоты, между блок, в котором много элементов и вертикальная прокрутка (список). Необходимо, что бы красный блок растягивался и занимал все пространство между синими блоками. Как это сделать? Интересует решение задачи именно на CSS, т.к. делать это через JS - путь к ошибкам и трудностям в будущем. P.S. В идеале, высота голубых блоков неизвестна и может меняться.
-
Добрый день. Копаюсь в исходниках Leaflet и нашел там немного магии, которую никак не могу понять =) А именно Class.js. В методе extend: var F = function () {}; F.prototype = this.prototype; var proto = new F(); proto.constructor = NewClass; NewClass.prototype = proto; Что здесь происходит и для чего эта магия с прототипами? Для чего тут переменная F? И что такое и какую функцию выполняют InitHooks? (это уже дальше по коду)
-
Проще написать эту функцию самому или найти в нете решение. Какая именно вас интересует?
-
Уважаемый, Я далеко не новечек и перед тем как "однозначно заявлять НЕТ", я подробно изучил Ваши ссылки.
-
Все верно, для общего развития полезно =)
-
Great Rash, Спасибо, все теперь понятно. freeneutron, Если решать эту задачу таким способом и, допустим, уже по двум осям с произвольным направлением движения, то при каждом столкновении высчитывается вектор скорости тела (значения Vx и Vy), timestamp заново сбрасывается на Date.now() и пускаем тело по формуле равноускоренного движения с новыми начальными значениями до следующего столкновения. Правильно?
-
Выглядит хорошо, но откуда берутся эти коэффициенты world? Как вот это работает? ball.vy += world.gravity * world.friction; ball.y += ball.vy;
-
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 А время я привожу к секундам, да и ускорение свободного падения в м/с?. Так все таки, как это правильно сделать-то?
-
Добрый день! Похоже школьные годы совсем забылись и мозг отказывается работать =) Простая задача - объект (пусть это будет условно "мяч") падает с высоты 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. Но вот как это формульно описать?
-
Я всегда это в одну строчку записываю. document.getElementById("edit") && (document.getElementById("edit").size = '12');
-
Спасибо, сам разобрался =) Стоило только нарисовать и все встало на свои места... Надо было сразу так сделать Где- то с час в голове все это пытался представить)
-
Сразу картинка Делаю собственный скролл.Блок1 - то, что отображается, блок2 таскается вверх/вниз. (top меняется) Подскажите, по какой формуле мне посчитать X - положение скролбара относительно блока, в котором он отображается. Я пришел к этому x = top / (блок2 / блок1). (везде имеется ввиду высота этих блоков) Но это не правильно - скроллбар до конца не опускается. Что то мозг мой начинает закипать, спасите! =)
-
Хостится у меня на Google App Engine небольшой сайтец. И вот последние несколько дней наблюдаю в логах странную картину - каждые 30 минут приходит GET запрос на favicon.ico С одного и того же IP - 82.150.190.194 Посмотрел через whois - вроде как Чехия. Есть какие- нибудь идеи, что это такое? И нафига чехам мой favicon каждые 30 минут?