Блог Дмитрия Волотко - Это нормально © Подпишись на обновления!

Управление прозрачностью с помощью ползунка

Буквально вчера, дизайнер компании, в которой я работаю, спросил – “а можно ли управлять прозрачностью с помощью ползунка”? Разумеется, сказал я, считая что готовых решений в Сети просто пруд пруди. Ан нет. Сам я небольшой спец по части JavaScript, но задача была довольно простая. Ниже выложил решение – надеюсь вам пригодиться. Работает под FF 2.x, Opera 9.x, Safari 3.x, Internet Explorer 6+. Если вам будет нужно, вы без проблем прикрутите поддержку IE 5.5. Посмотреть демо можно тут.

Управление прозрачностью с помощью ползунка

Изобретать колесо я не стал, и взял готовый ползунок, который меня полностью устраивает – это Slider. От него я решил взять верхний ползунок. Меня в принципе устраивает. Единственно, что я не сделал – это не почистил JS файлы от неиспользуемых функций, но думаю вам это будет по силам. Я же просто не определился, что мне из них нужно, а что нет. Потому я прилинковал скрипты с самого примера, не заливая их себе:

<script type=”text/javascript” src=”http://webfx.eae.net/dhtml/slider/js/range.js”></script>
<script type=”text/javascript” src=”http://webfx.eae.net/dhtml/slider/js/timer.js”></script>
<script type=”text/javascript” src=”http://webfx.eae.net/dhtml/slider/js/slider.js”></script>

Стили я тоже не правил, опять же, вы сами с этим справитесь, я их тоже прилинковал с демо:

<link type=”text/css” rel=”StyleSheet” href=”http://webfx.eae.net/dhtml/slider/css/bluecurve/bluecurve.css” />

К слову, вы спокойно можете оформить ползунок по своему разумению.

Из многообразия ползунков я оставил только один, самый верхний:

<div class=”slider” id=”slider-1″ tabIndex=”1″>
<input class=”slider-input” id=”slider-input-1″/>
</div>

Что бы проверить эксперимент, взял картинку, которую я вставлял в пост о социальной сети для блоггеров от СеоКритика:

Ну и собственно реализовал саму смену прозрачности:

<script type=”text/javascript”>
var s = new Slider(document.getElementById(“slider-1″), document.getElementById(“slider-input-1″));
s.onchange = function () {
s.getValueNew = s.getValue()/100;
document.getElementById(“test”).style.filter=”alpha(opacity:”+s.getValue()+”)”; document.getElementById(“test”).style.opacity = s.getValue()/100;
};
s.setValue(50);
window.onresize = function () {
s.recalculate();
};
</script>

Всё работает довольно симпатично. Если приложить руку и немного фантазии, можно сделать очень много интересных эффектов. К примеру этот эффект нужен был для модального окна. Надеюсь вам понравиться, покажу обязательно :)

Ссылки:
Скрипт ползунка – http://webfx.eae.net/dhtml/slider/implementation.html
Демо ползунка – http://webfx.eae.net/dhtml/slider/demo.html
Демо прозрачности с управлением ползунком – http://absolvo.ru/tmp/3/

Так же можно почитать:

# 7 May 2008 в 15:39

Павел

Любопытно.

# 24 June 2008 в 18:30

IceBars

Управлять прозрачностью с помощью ползунка мне не надо, зато знаю теперь как она реализуется.

# 24 June 2008 в 18:41

Волотко Дмитрий

@IceBars, может когда пригодится ,)

# 8 Augu 2008 в 20:19

Виталий

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

# 8 Augu 2008 в 21:24

Волотко Дмитрий

@Виталий, вот тут есть и вертикальный ползунок.
http://webfx.eae.net/dhtml/slider/demo.html
Принцип работы точно такой же.

# 8 Augu 2008 в 22:30

Виталий

спасибо!

# 8 Augu 2008 в 22:34

Волотко Дмитрий

@Виталий, милости просим.

# 15 April 2009 в 11:28

Алексей

О! ползунок.. как раз то что искал!!!)) спасибо! =)
сейчас примонстрячу в свой проект ))

# 15 April 2009 в 16:27

Волотко Дмитрий

@Алексей, всегда пожалуйста :)

# 25 July 2009 в 22:40

Илья

Дмитрий, а подскажите пожалуйста:
я использую этот слайдер в гаджете для Висты Online-radio в качестве регулятора громкости, звук я сделал, но почему-то исчезли остальные компоненты (кнопки), сам гаджет – это HTML-страница, и такое ощущение, что не все элементы этой страницы загружаются.
можете что-то посоветовать, уже несколько дней пытаюсь с этим разобраться?



* Должны быть заполнены.
Из-за дикого спама, и нежелания ставить капчу оставлять ссылку у комментария вообще нельзя. Точно так же нельзя оставлять ссылки в теле комментария.