#javascript #html #css
#javascript #HTML #css
Вопрос:
Вот чего я хотел бы достичь.
У меня есть серия изображений, переходящих от темного к белому (со всевозможными уровнями серого в середине). Я хотел бы иметь циферблат (например, ползунок) под рамкой или над рамкой (это не имеет значения). Когда ползунок перемещен влево, я показываю черное изображение, когда ползунок перемещен вправо, я показываю белое изображение, и в любом положении посередине я выбираю изображение где-то посередине.
У меня ограниченные знания Java Script и HTML5 (отсюда и мой вопрос здесь), но я программист, поэтому я не боюсь кода. Я не прошу полностью разработанного решения (если таковое существует), поскольку я с удовольствием закодирую его сам, но было бы здорово, если бы вы могли дать мне несколько советов, указаний, идей, как заставить это работать.
- Как мне создать ползунок
- конечно, что более важно, я выбираю правильное изображение для отображения.
Я хотел бы что-то сделать, используя JS, если это возможно, и не используя какую-либо внешнюю библиотеку. Будет ли использование 2D canvas решением как для рисования изображения, так и пользовательского интерфейса (слайдера)?
Спасибо.
Ответ №1:
Следующее используется для создания ползунка из 10 фиксированных точек в HTML5.
<input id="barslidesize" type="range" min="1" max="10">
Теперь вы можете получить значение ползунка с помощью следующего кода:
var currentPos = document.getElementById("barslidesize").value;
Затем вы можете соответствующим образом переключить эту переменную:
Нравится,
switch (currentPos)
{
case "1":
//do this
break;
case "2":
//do that;
break;
.....
case "10":
//do neccessary;
break;
}
Надеюсь, это поможет вам начать! Это очень простой код.
Ответ №2:
На самом деле вам нужно очень мало Javascript. Вы могли бы сделать это с помощью canvas, но я не думаю, что это лучшее решение.
Здесь я помещаю белое изображение перед черным. Затем я использую диапазон для изменения непрозрачности белого изображения, которое отображается серым.
CSS :
<style type="text/css">
.greyslidercontainer {
padding: 0px;
background: url(black.png) no-repeat;
}
.greyslidercontainer img {
display: block;
opacity: 1;
}
</style>
HTML :
<div class="greyslidercontainer">
<img src="white.png" />
<input
type="range"
min="0.0"
max="1.0"
step="0.01"
value="1"
onchange="this.previousElementSibling.style.opacity = this.value"
/>
</div>
Комментарии:
1. это очень классное и полезное решение, однако я упомянул серые изображения, чтобы упростить его, но изображения на самом деле «являются» файлами, … так что речь идет не о переходе от белого к черному, а фактически об использовании другого изображения (как в файле) для каждого «уровня» серого (где каждое изображение / файл отличается).