Я создаю презентацию. Существует элемент div, который сильно меняет размер шрифта. Есть две кнопки, чтобы увеличить цвет в массиве, а другой - уменьшить его.
HTML:
<input type="button" id="up" value="change color up">
<input type="button" id="down" value="change color down">
<div id="myValue">
VALUE
</div>
Jquery:
fancyColors = {
1: "#9c9e9f",
2: "#848e6f",
3: "#778861",
4: "#7da75d",
5: "#7fa433",
6: "#97bf0d"
};
$(function () {
var i;
var valuE = $('#myValue');
var getSize = $('#myValue').css("font-size");
var getColor = $('#myValue').css("color");
var down = $('#down');
var up = $('#up');
valuE.css("color", fancyColors[1]);
down.on("click",function() {
valuE.css("color", fancyColors[i]); // do i--
});
up.on("click", function() {
valuE.css("color", fancyColors[i]); // do i++
});
});
У меня был цикл for, но это не сработало для меня. Я думаю, это должно быть довольно легко для более опытного человека. Спасибо за ваше время.
Сделайте свой html как
<input type="button" id="up" value="change color up">
<input type="button" id="down" value="change color down">
<div id="myValue">VALUE</div>
И ваши js:
var fancyColors = [
"#9c9e9f",
"#848e6f",
"#778861",
"#7da75d",
"#7fa433",
"#97bf0d"];
$(function () {
var i = 0;
var valuE = $('#myValue');
var getSize = valuE.css("font-size");
var getColor = valuE.css("color");
var down = $('#down');
var up = $('#up');
valuE.css("color", fancyColors[1]);
down.on("click", function () {
valuE.css("color", fancyColors[i]);
i++ // do i--
});
up.on("click", function () {
valuE.css("color", fancyColors[i]);
i++ // do i++
});
});
Демо- версия: http://jsfiddle.net/jY24d/
Попробуйте это
fancyColors = [
"#9c9e9f",
"#848e6f",
"#778861",
"#7da75d",
"#7fa433",
"#97bf0d"
];
var index = 0;
$("#up").click(function () {
index++;
var i = fancyColors.length % index;
$("#myValue").css("background-color", fancyColors[i]);
});
$("#down").click(function () {
index--;
var i = fancyColors.length % index;
$("#myValue").css("background-color", fancyColors[i]);
});
fancyColors = {
1: "#9c9e9f",
2: "#848e6f",
3: "#778861",
4: "#7da75d",
5: "#7fa433",
6: "#97bf0d"
};
$(function () {
window.colorIndex=1;
var valuE = $('#myValue');
var getSize = $('#myValue').css("font-size");
var getColor = $('#myValue').css("color");
var down = $('#down');
var up = $('#up');
valuE.css("color", fancyColors[1]);
down.on("click",function() {
if(colorIndex<1){colorIndex=6;}
valuE.css("color", fancyColors[--colorIndex]); // do i--
});
up.on("click", function() {
if(colorIndex >6){colorIndex=1;}
valuE.css("color", fancyColors[colorIndex++]); // do i++
});
});
Попробуй это :)
Вы студент, да? Хорошо, я не буду делать домашнее задание для вас, но я дам вам следующие советы:
Но я уверен, что в ваших лекционных материалах все равно...
$('#down').click( function(){ i++; });
Вам нужно добавить атрибут id к вашему вводу вниз:
<input type='button' id='down'>
Этот jQuery будет корректно соответствовать #down
fancyColors
не является массивом.$('#up')
не будет работать, потому чтоup
не id. То же самое касается иdown
.