Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
balandarik

скрипт ползунка на яс

21.05.2013, 21:55. Показов 1270. Ответов 0
Метки нет (Все метки)

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


css стили:
CSS
1
2
3
4
5
6
7
8
.slider {
    background-image: url(hbg.gif);
    background-repeat: repeat-x;    
}
.knob {
    position: relative;
    background-image: url(knob.gif);
}
JavaScript
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
107
108
109
110
111
112
113
114
function slider(elemId, sliderWidth, range1, range2, step) {
    var knobWidth = 17;             // ширина и высота бегунка
    var knobHeight = 21;            // изменяются в зависимости от используемых изображений
    var sliderHeight = 21;          // высота slider'а
    
    var offsX,tmp;                  // вспомагательные переменные
    var d = document;
    var isIE = d.all || window.opera;   // определяем модель DOM
    var point = (sliderWidth-knobWidth-3)/(range2-range1);
    // point - количество пикселей на единицу значения
    
    var slider = d.createElement('DIV'); // создаем slider
    slider.id = elemId + '_slider';
    slider.className = 'slider';
    d.getElementById(elemId).appendChild(slider);   
    
    var knob = d.createElement('DIV');  // создаем ползунок
    knob.id = elemId + '_knob';
    knob.className = 'knob';
    slider.appendChild(knob); // добавляем его в документ
    
    knob.style.left = 0;            // бегунок в нулевое значение
    knob.style.width = knobWidth+'px';  
    knob.style.height = knobHeight+'px';
    slider.style.width = sliderWidth+'px';
    slider.style.height = sliderHeight+'px';
    
    var sliderOffset = slider.offsetLeft;           // sliderOffset - абсолютное смещение slider'а
    tmp = slider.offsetParent;      // от левого края в пикселях (в IE не работает)
    while(tmp.tagName != 'BODY') {
        sliderOffset += tmp.offsetLeft;     // тут его и находим
        tmp = tmp.offsetParent;
    }
    
    if(isIE)                        // в зависимости от модели DOM
    {                               // назначаем слушателей событий
        knob.onmousedown = startCoord;      
        slider.onclick = sliderClick;       
        knob.onmouseup = endCoord;      
        slider.onmouseup = endCoord;            
    }
    else {
        knob.addEventListener("mousedown", startCoord, true);       
        slider.addEventListener("click", sliderClick, true);        
        knob.addEventListener("mouseup", endCoord, true);   
        slider.addEventListener("mouseup", endCoord, true); 
    }
 
 
// далее подробно не описываю, кто захочет - разберется
//////////////////// функции установки/получения значения //////////////////////////
 
    function setValue(x)    // установка по пикселям
    {
        if(x < 0) knob.style.left = 0; 
        else if(x > sliderWidth-knobWidth-3) knob.style.left = (sliderWidth-3-knobWidth)+'px';
        else {
            if(step == 0) knob.style.left = x+'px';         
            else knob.style.left = Math.round(x/(step*point))*step*point+'px';
        }
        d.getElementById('info').value = getValue();    // это вывод значения для примера
    }
    function setValue2(x)   // установка по значению
    {
        if(x < range1 || x > range2) alert('Value is not included into a slider range!');
        else setValue((x-range1)*point);
        
        d.getElementById('info').value = getValue();
    }
 
    function getValue() 
    {return Math.round(parseInt(knob.style.left)/point)+range1;}
 
//////////////////////////////// слушатели событий ////////////////////////////////////
 
    function sliderClick(e) {   
        var x;
        if(isIE) {
            if(event.srcElement != slider) return; //IE onclick bug
            x = event.offsetX - Math.round(knobWidth/2);
        }   
        else x = e.pageX-sliderOffset-knobWidth/2;
        setValue(x);
    }
 
    function startCoord(e) {                
        if(isIE) {  
            offsX = event.clientX - parseInt(knob.style.left);
            slider.onmousemove = mov;
        }
        else {              
            slider.addEventListener("mousemove", mov, true);
        }
    }
    
    function mov(e) {
        var x;  
        if(isIE) x = event.clientX-offsX;
        else x = e.pageX-sliderOffset-knobWidth/2;
        setValue(x);
    }
 
    function endCoord() {
        if(isIE) slider.onmousemove = null; 
        else slider.removeEventListener("mousemove", mov, true);
    }
 
    // объявляем функции setValue2 и getValue как методы класса
    this.setValue = setValue2;
    this.getValue = getValue;
} // конец класса
 
var mysl1 = new slider('sl', 300, 0, 200, 20); 
var mysl2 = new slider('sl2', 400, 100, 200, 0);
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2013, 21:55
Ответы с готовыми решениями:

Использование ползунка
мне надо использовать TTrackBar......я сделал что бы при перетаскивании вправо оно увеличивало число.......но как сделать что бы при...

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

Параметры ползунка
Подскажите, как можно изменить форму, цвет и т.п. ползунка через css? З.Ы. для тех, кто не понял о чём я, то я про это &lt;input...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.05.2013, 21:55
Помогаю со студенческими работами здесь

Передвижение ползунка
Скажите как можно сделать вот такую весчь: http://www.clodo.ru/virtual-server/ Т.е. ползунок передвигается? И скажите каких нибудь...

События ползунка
Здравствуйте. Начал изучать JQuery. Обрабатываю события ползунка range. Хочу, чтобы во время его перемещения менялось значение в текстовом...

Перемещение ползунка TrackBar
подскажите вот пример кода реализации flash на форме... using System; using System.Collections.Generic; using System.ComponentModel; ...

Цвет ползунка ScrollBar
Приветствую. Возможно ли каким-нибудь образом изменить цвет ползунка в стандартном scrollbar-e ?

Кастомизация ползунка на HTML5
Добры день. Поделитесь ссылкой пожаулйста, у кого есть, как кастомизировать полузнки на HTML5 Нужно сам ползунок сделать круглым...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru