Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрипт не вычитает ширину блока 
:(
    Опции темы
DeMONiZ
Дата 30.10.2012, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 2.1.2009
Где: Первоуральск

Репутация: нет
Всего: нет



Здравствуйте, форумчане. 

Всегда интересовал один код, который вместо того чтоб вычитать щирину блока наоборот ее увеличивал. Как в данном случае правильно вычитать единицу чтоб блок уменьшал свою ширину?

Код

<style>
#img{
    width:400px;
    height:100px;
    border:1px solid red;
}
</style>
<script>
function lm(){
    movs();
    function movs(){
        widths = parseInt(document.getElementById('img').offsetWidth); 
        widths=widths-1;
            setTimeout(function(){ document.getElementById('img').style.width = widths+"px"; movs();},10);
    }
}
</script>
<div id="img"></div> 
<a href="#" onclick="lm()">--------</a>


Пробовал так:
widths=Number(widths)-Number(1);
и так:
widths=parseInt(widths)-parseInt(1);

Результат все равно неудовлетворительный.

А вот если не единицу вычитать, а к примеру цифру три то все работает как надо. 
На сколько я думаю какое то несоответствие типов... Но как это исправить? Как сделать правильно чтоб код заработал?
PM MAIL WWW   Вверх
CruorVult
Дата 30.10.2012, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 3
Всего: 28



offsetWidth = width + border

По-этому ширина будет увеличиваться, т.к. разница в 1 пиксель компенсируется 2 пикселями(бордером)
Код

widths = parseInt(document.getElementById('img').offsetWidth); // 402
widths=widths-1;//401
document.getElementById('img').style.width = widths+"px"//401
document.getElementById('img').offsetWidth//403

PM MAIL Skype   Вверх
Aliance
Дата 30.10.2012, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Нужно использовать clientWidthПример.
PM MAIL WWW ICQ Skype   Вверх
DeMONiZ
Дата 30.10.2012, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 2.1.2009
Где: Первоуральск

Репутация: нет
Всего: нет



Спасибо большое, буду пробовать!
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0669 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.