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

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

Буквально вчера, дизайнер компании, в которой я работаю, спросил – «а можно ли управлять прозрачностью с помощью ползунка»? Разумеется, сказал я, считая что готовых решений в Сети просто пруд пруди. Ан нет. Сам я небольшой спец по части 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 мая 2008 в 15:39

Павел

Любопытно.

# 24 июня 2008 в 18:30

IceBars

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

# 24 июня 2008 в 18:41

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

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

# 8 августа 2008 в 20:19

Виталий

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

# 8 августа 2008 в 21:24

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

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

# 8 августа 2008 в 22:30

Виталий

спасибо!

# 8 августа 2008 в 22:34

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

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

# 15 апреля 2009 в 11:28

Алексей

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

# 15 апреля 2009 в 16:27

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

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

# 25 июля 2009 в 22:40

Илья

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



* Должны быть заполнены. Кстати, nofollow в комментариях отключен.
Из-за дикого спама, и нежелания ставить капчу включена функция «Автор должен иметь ранее одобренные комментарии».




Да, меня тоже утомили спамеры, и так как мне лень решать этот вопрос на стороне сервера, то этот вопрос решите мне вы. Извините.

Сделаете то, что вас просят на картинке, хорошо? Это, типа, вместо кнопки «Отправить»

counter