是否可以在页面加载时使用 Jquery 每 3 秒切换两个 类?
Is it possible to toggle two classes in every 3 second using Jquery on page load?
$(document).ready(function(){
$('#green').toggleClass(green red).setTimeOut(3000);
$('#red').toggleClass(red green).setTimeOut(3000);
});
.wdr{
width:300px
height:50px;
}
.red{
background-color: red;
}
.wdg{
width:150px
height:100px;
}
.green{
background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id ="red" class="wdr red"></div>
<div id ="green" class="wdg green"></div>
我对 jQuery
不是很熟悉。在这段代码中,我尝试在每 3 个 sec.but 上切换两个 divs
的颜色,这不起作用,因为 expected.Can 有人帮我解决这个问题吗?
您可以使用 setInterval 执行此操作。它会 运行 每 x 毫秒给你想要的结果。
$(function() {
setInterval(function() {
$('#green').toggleClass('green red');
}, 3000);
setInterval(function() {
$('#red').toggleClass('red green');
}, 3000);
});
.wdr{
width:300px
height:50px;
}
.red{
background-color: red;
}
.wdg{
width:150px
height:100px;
}
.green{
background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="red" class="wdr red">
test
</div>
<div id="green" class="wdg green">
test
</div>
您也可以放弃 jQuery 并使用 classList,它是类似这样的切换方法。
const green = document.querySelector('#green');
const red = document.querySelector('#red');
setInterval(() => {
red.classList.toggle('red');
red.classList.toggle('green');
}, 3000);
setInterval(() => {
green.classList.toggle('green');
green.classList.toggle('red');
}, 3000);
这是一个解决方案。希望对您有所帮助!
$(function () {
var flag = false;
setInterval(function() {
flag = !flag;
$("#red").css("background", flag ? "green" : "red");
$("#green").css("background", flag ? "red" : "green");
}, 2000);
});
.wdr{
width:300px
height:50px;
}
.red{
background-color: red;
}
.wdg{
width:150px
height:100px;
}
.green{
background-color: green;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id ="red" class="wdr red">
This is text-1
</div>
<div id ="green" class="wdg green">
This is text-2
</div>
在您的情况下,只有 DOM 选择器需要 jQuery。您也可以递归调用该方法。
var toggleColors = function() {
$("#red").toggleClass("red green");
$("#green").toggleClass("green red");
}
var maxRunTimes = 10;
var runTimes = 0;
function repeat() {
if (runTimes < maxRunTimes) {
toggleColors();
runTimes++;
setTimeout(repeat, 3000);
}
}
repeat();
ps - 我在递归调用中添加了一个停止点。
看到这个JSFiddle
$(document).ready(function(){
$('#green').toggleClass(green red).setTimeOut(3000);
$('#red').toggleClass(red green).setTimeOut(3000);
});
.wdr{
width:300px
height:50px;
}
.red{
background-color: red;
}
.wdg{
width:150px
height:100px;
}
.green{
background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id ="red" class="wdr red"></div>
<div id ="green" class="wdg green"></div>
我对 jQuery
不是很熟悉。在这段代码中,我尝试在每 3 个 sec.but 上切换两个 divs
的颜色,这不起作用,因为 expected.Can 有人帮我解决这个问题吗?
您可以使用 setInterval 执行此操作。它会 运行 每 x 毫秒给你想要的结果。
$(function() {
setInterval(function() {
$('#green').toggleClass('green red');
}, 3000);
setInterval(function() {
$('#red').toggleClass('red green');
}, 3000);
});
.wdr{
width:300px
height:50px;
}
.red{
background-color: red;
}
.wdg{
width:150px
height:100px;
}
.green{
background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="red" class="wdr red">
test
</div>
<div id="green" class="wdg green">
test
</div>
您也可以放弃 jQuery 并使用 classList,它是类似这样的切换方法。
const green = document.querySelector('#green');
const red = document.querySelector('#red');
setInterval(() => {
red.classList.toggle('red');
red.classList.toggle('green');
}, 3000);
setInterval(() => {
green.classList.toggle('green');
green.classList.toggle('red');
}, 3000);
这是一个解决方案。希望对您有所帮助!
$(function () {
var flag = false;
setInterval(function() {
flag = !flag;
$("#red").css("background", flag ? "green" : "red");
$("#green").css("background", flag ? "red" : "green");
}, 2000);
});
.wdr{
width:300px
height:50px;
}
.red{
background-color: red;
}
.wdg{
width:150px
height:100px;
}
.green{
background-color: green;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id ="red" class="wdr red">
This is text-1
</div>
<div id ="green" class="wdg green">
This is text-2
</div>
在您的情况下,只有 DOM 选择器需要 jQuery。您也可以递归调用该方法。
var toggleColors = function() {
$("#red").toggleClass("red green");
$("#green").toggleClass("green red");
}
var maxRunTimes = 10;
var runTimes = 0;
function repeat() {
if (runTimes < maxRunTimes) {
toggleColors();
runTimes++;
setTimeout(repeat, 3000);
}
}
repeat();
ps - 我在递归调用中添加了一个停止点。
看到这个JSFiddle