ширина рисунка с дробным значением
Здравствуйте всем!
Только заметил, что IE не присваивает такое вот значение var img = new Image(); img.style.width = '152.5px'; alert(img.style.width); //смотрите только в IE. Результат 152px С чем это связанно, и как можно это решить? |
А как вы себе представляете половину пикселя?
|
если честно ни как, но знаю, что другие браузеры ее могут представить и работают корректно с ней
|
Ну они просто не показывают результаты своих преобразований, а IE показывает.
|
дело в том, что мне пришлось делать что то этого
var step = 1.5; var width = parseFloat(img.style.width) + step; var left = parseFloat(img.style.left) - step / 2; img.style.width = width + 'px'; img.style.left = left + 'px'; таким образом добиваюсь, что рисунок расширяется в на месте. Все браузеры сработали как ожидалось, но ие пополз в одну сторону, а не стал расширяться на месте, вот и начал копать в чем причина и наткнулся на это все! пришлось все превращать в Math.round() |
Не надо хранить данные в стилях. Это когда-нибудь да взорвётся. Вам повезло, у вас взорвалось сразу. Сохраняйте текущее значение в переменной, с ней и оперируйте.
|
спасибо, так и сделаю!
|
Цитата:
<div style="width: 99px; height: 20px; background: #ffff88"> <div style="height: 100%;background: black; transform-origin: 0 0; transform: scale(.5, 1); -o-transform-origin: 0 0; -o-transform: scale(.5, 1); -moz-transform-origin: 0 0; -moz-transform: scale(.5, 1); -webkit-transform-origin: 0 0; -webkit-transform: scale(.5, 1); filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.5, M12=0, M21=0, M22=1); "></div> </div> :) |
Цитата:
//вместо этого var opacity = getOpacity(obj) + 0.02; setOpacity(obj, opacity); //использовать это opacity += 0.02; setOpacity(obj, opacity); |
А в чём может быть минус?
Лично я вообще предпочитаю не рассчитывать на каждом шаге значение параметра, а рассчитывать все промежуточные значения заранее, а потом просто выставлять их через нужные промежутки времени. |
Часовой пояс GMT +3, время: 02:05. |