如何循环通过背景颜色悬停与jQuery
How to Cycle Through Background Colors on Hover with jQuery
我正在尝试创建一个div,当鼠标悬停在背景颜色上时循环。我已经弄清楚了如何使背景颜色切换到mouseenter
上的一组值的颜色值,但不知道如何使它继续前进。
如何使背景颜色不断变化,而鼠标悬停在元素上(并停止一旦我把鼠标移出)?
这是目前为止我所拥有的一个完整的小提琴:
我的HTML:
<body>
<div id="coloredDiv" data-index="-1"></div>
</body>
我的CSS:
#coloredDiv {
width:200px;
height:200px;
border:1px solid #888;
}
#coloredDiv:hover {
cursor:pointer;
}
我jQuery: var colors = ['#eeeeee', "#00ff00", "#ff0000", "#000000"];
$(document).ready(function () {
$colorDiv = $('#coloredDiv');
ln = colors.length;
$('#coloredDiv').mouseenter( function () {
var i = $colorDiv.data("index");
++i;
if (i >= ln) i = 0;
$colorDiv.css({
'background-color': colors[i]
});
$colorDiv.data("index", i);
});
});
使用Array.shift
和Array.push
使循环发生
小提琴
var counter = 0;
var colors = [
"#eeeeee",
"#00ff00",
"#ff0000",
"#000000"];
var $div = $('#coloredDiv');
$('#coloredDiv').mouseenter(function () {
var color = colors.shift(); //Get the top color
colors.push(color); //push it to the end for the cycle to repeat.
$div.css({
"background-color": color
})
});
让循环在悬停时重复:-
var counter = 0;
var colors = [
"#eeeeee",
"#00ff00",
"#ff0000",
"#000000"];
var $div = $('#coloredDiv');
var interval;
$('#coloredDiv').mouseenter(function () {
interval = window.setInterval(changeColor, 1000); //set the interval of 1 sec for image to change while hovered.
}).mouseleave(function () {
window.clearInterval(interval); //clear the interval on mouseOut.
});
function changeColor() {
var color = colors.shift();
colors.push(color);
$div.css({
"background-color": color
});
}
小提琴
(function() {
var element = $('#id');
var colors = ['#eeeeee', "#00ff00", "#ff0000", "#000000"];
var idx = 0;
var timer;
function changeColor() {
element.css('background-color', colors[idx++ % colors.length]);
}
element.hover(
// start hover
function() {
idx = 0;
changeColor();
timer = setInterval(changeColor, 250);
},
// end hover
function() {
clearInterval(timer);
element.css('background-color', '');
}
);
}());
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用jquery更改html中的背景颜色
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- JS幻灯片与CSS背景颜色变化
- DT数据表背景颜色为黑色,但仍有悬停和选择颜色
- Javascript通过列表项的函数和css来更改背景颜色
- Javascript没有从数组中选择背景颜色
- 使用圆中的数组更改背景颜色项目
- 如何用jquery动画改变背景颜色,就像一个过渡
- 使用jquery交换并保存背景颜色
- j查询如何设置/取消设置下拉菜单的背景颜色
- 使用angularjs根据时间更改背景颜色
- 设置Dojo量表的背景颜色
- 如何使用颜色选择器来更改背景中的文本
- charts js更改折线图轴的字体大小/颜色和背景线
- javascript样式的背景颜色在设置时闪烁.ASP.NET
- 在背景颜色背景图像之间分层文本
- sliicknav菜单,每个li都有特定的颜色背景
- 尝试根据当前背景更改背景颜色:背景颜色没有值
- jQuery中的颜色/背景颜色改变动画