Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 14.08.2013
Сообщений: 3

Изменение ширины картинки "на лету"

14.08.2013, 14:07. Показов 1347. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, помогите пожалуйста решить следующую проблемку.
Расписал все как можно подробно, чтобы было понятнее о чем речь.

Есть счетчик "жизни", к примеру 126/430. 126 и 430 это php переменные, которые я получаю при каждом обновлении страницы из БД. 430 - всегда постоянная, 126 - восполняемая.

Мой javascript получает переменную 126 и с определенной скоростью "на лету" (без обновления страницы и получения новых данных) начинает отсчитывать цифры пока не достигнет 430.



JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script>
        var start = '.$user->hp.';
 
        var myspeedHP = (540/'.$user->hpAll.')*1000;
 
        document.getElementById("myHP").innerHTML = (~~start);
        setInterval(function(){ 
            start++;
            
            if(start >= '.$user->hpAll.'){
            clearInterval(intervalID);
            }
 
            document.getElementById("myHP").innerHTML = (~~start);
 
        }, myspeedHP)
</script>
myspeedHP - скорость вычисляемая по формуле.
$user->hp - жизни на данный момент. (126)
$user->hpAll - сколько жизней всего. (430)

Передает данные сюда:

HTML5
1
<span id="myHP">log</span>
В итоге в готовом варианте, условно, я получаю:

HTML5
1
<span id="myHP">log</span> / $user->hpAll [126..127..128... / 430]
Пользователь на лету видит как у него восполняется жизнь и для этого лишний раз не дергает страницу, чтобы получить новые данные. Все работает, но..

Мне необходимо ложить эти цифры на две картинки зеленую Название: life_green.gif
Просмотров: 59

Размер: 851 байт и черную Название: life_loose.gif
Просмотров: 59

Размер: 847 байт и так же "на лету" в зависимости от параметра жизни, которая восполняется указанным выше скриптом, менять ширину соответствующих картинок, чтобы получалось вот так: Название: hp.jpg
Просмотров: 60

Размер: 1.2 Кб

HTML код выглядит так:

HTML5
1
2
3
4
5
6
7
8
9
10
11
<table width="116" height="9" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td nowrap="nowrap">
    <div id="timer_hp" style="position:absolute;"><? echo $timerHP.'/ '.$user->hpAll; ?></div>
 
    <img width="92" height="9" src="/i/ico/life_green.gif" title="Уровень жизни"> //МЕНЯТЬ ШИРИНУ зеленой полоски
    <img width="24" height="9" src="/i/ico/life_loose.gif" title="Уровень жизни"> //МЕНЯТЬ ШИРИНУ черной полоски
 
    </td>
  </tr>
</table>
$timerHP - в эту переменную я завожу сам скрипт и спан его выводящий.

Ширина таблицы 116 пикселей, а ширину зеленого и черного поля (выделены красным) мне необходимо изменять "на лету" по мере роста жизни. Иными словами зеленая полоска должна расти, а черная уменьшаться пока при полной жизни не достигнет "0" а зеленая размера в 116.

В идеале, если бы еще в зависимости от количества жизни, менялась первая картинка: 33% - красная, 66%-оранжевая, и если больше 66% тогда зеленая.

Название: life_red.gif
Просмотров: 59

Размер: 847 байт
Название: life_yellow.gif
Просмотров: 59

Размер: 839 байт
Название: life_green.gif
Просмотров: 59

Размер: 851 байт

Как вычислять жизнь и сделать динамическое "тикание" в цифрах у меня получилось, а вот с изменением ширины картинок "на лету" вариантов нет вообще, помогите пожалуйста, если это возможно сделать.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.08.2013, 14:07
Ответы с готовыми решениями:

ListView изменение ширины картинки
Добрый день. Как можно динамически менять размер картинки в TListView, ну скажем в событии OnResize.

Изменение Ширины Вложенной Картинки
Доброе время суток, господа! Простите, что спамлю, но ничего не нарыл в паутине по своей проблеме! На форме есть поле RichText. И в нем...

Изменение ширины картинки runtime
Доброго времени суток, уважаемые форумчане! Помогите пожалуйста новичку с WPF. Хочу подключить стиль Image runtime. Создал...

3
0 / 0 / 0
Регистрация: 14.08.2013
Сообщений: 3
14.08.2013, 16:46  [ТС]
ПРОБЛЕМА РЕШЕНА! СПАСИБО ОГРОМНОЕ )))
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
14.08.2013, 16:49
А поделиться, как решили, не хотите? Ваш ответ может помочь кому-то, столкнувшемуся с подобной проблемой в будущем
0
0 / 0 / 0
Регистрация: 14.08.2013
Сообщений: 3
14.08.2013, 17:09  [ТС]
Решил самостоятельно, покопался в гугле и очень помогла темка.

А вот и мое решение:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
 
    #progressBar{
        width: 0;
        height: 9px;
    }
    #timer_hp {
    margin-top:1px;
    margin-left:3px;
    position:absolute;
    color: #F4F4F4;
    line-height: 7px;
    font-size: 9px;
    font-weight:bold;
    font-family:Verdana, Geneva, sans-serif;
}
    .life_bg {
        background:url(/i/ico/life_loose2.gif) repeat-x;
    }
</style>
<title>Полоса загрузки</title>
</head>
 
<body onload="progress()">
 
 
 
    <script type="text/javascript">
    function progress()
    {
        var i=0;
        var width= document.getElementById('progressBar').parentNode.clientWidth;
        var id=setInterval(grow, 10*4)
        
        function grow()
        {
            
 
            if(i<width)
            {
                i+=1;
                if(!document.getElementById('progressBar').setAttribute("style","width: "+i+"px;"))
                    document.getElementById('progressBar').style.width = i;
                
            }
            else
            {
                //alert('готово')
                clearInterval(id);
            }
            
            if(i<38){
                
                document.getElementById('progressBar').src = '/i/ico/life_red.gif';
                
            }
            else if(i>39 && i<77) {
                
                document.getElementById('progressBar').src = '/i/ico/life_yellow.gif';
                
            }
            else {
 
                document.getElementById('progressBar').src = '/i/ico/life_green2.gif';
            
            }
            
        }
    }
    </script>
 
 
 
 
<table width="116" height="9" border="0" cellspacing="0" cellpadding="0" class="life_bg">
  <tr>
    <td nowrap="nowrap">
    <div id="timer_hp"><span title="Уровень жизни" id="myHP">log</span><span title="Уровень жизни"> / 430</span></div>
<script>
        var start = 0;
        document.getElementById("myHP").innerHTML = (~~start);
        setInterval(function(){ 
            start++;
            
            if(start>=(430)+1){
            clearInterval(intervalID);
            }
 
            document.getElementById("myHP").innerHTML = (~~start);
        }, 10)
</script>
 
<img id="progressBar" src="/i/ico/life_loose2.gif" title="Уровень жизни">
 
 
    </td>
  </tr>
</table>
 
 
</body>
</html>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.08.2013, 17:09
Помогаю со студенческими работами здесь

Изменение ширины картинки без сжатия
допустим есть картинка ширина 100px, если я укажу 50px, её сожмет на половину. Вопрос, как сделать,что бы при изменении ширины наполовину...

Изменение ширины картинки на форме через Scrollbar
Привет))) Помогите с задачей... При помощи Scrollbar'a изменять ширину картинки на форме. При нажатии стрелки влево она...

Изменение размера картинки при уменьшении ширины окна
Вот пример кода. При уменьшении размера окна появляется скролл снизу и если его подвинуть, изображение залезает под фиксированый блок...

Изменение ширины и высоты изображения без растягивания исходной картинки
Добрый день. Подскажите, как программно в Delphi увеличить ширину или высоту изображения без растягивания исходного изображения? ...

Автоматическое изменение ширины столбца в DBGrid при изменении ширины формы
Подскажите как реализовать или дайте условие автоматического изменение ширины столбца в DBGrid при изменении ширины формы.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru