javascript - 如何随机翻转 Div 的后面然后再前面

标签 javascript jquery random flip

引用: How to Flip Div's in Randomly和工作 fiddle :http://jsfiddle.net/7x75466y/5/

我的网站上有上述随机图像翻转脚本。目前,它会翻转一个随机图像并让它保持在该状态,然后移动到另一个随机图像并翻转它并使其保持在该状态,等等。

我需要它在每次翻转后“展开”,然后再转到下一个随机图像。这是我希望它如何工作的示例:https://learnwithhomer.com/buzz/press/

这是有问题的 jQuery:

$(document).ready(function () {
    var $flippers = $(".flip-container"),
    qtFlippers = $flippers.length;

    setInterval(function () {
    $flippers.eq(Math.floor(Math.random()*qtFlippers)).toggleClass('hover'); }, 2000);
});

最佳答案

var $flippers = $(".flip-container"),
    qtFlippers = $flippers.length;
var isFlipped = false;
var randomItem = -1
setInterval(function () {
    
    if (isFlipped && randomItem !== -1) {
    	$flippers.eq(Math.floor(randomItem)).toggleClass('hover');
    	isFlipped = false;
      randomItem = -1;
      return;
    }
    
    if (!isFlipped) {
      randomItem = Math.random()*qtFlippers;
    	$flippers.eq(Math.floor(randomItem)).toggleClass('hover');
    	isFlipped = true;
    }
}, 1000);
section {
    -webkit-perspective: 500px;
    perspective: 500px;
    -webkit-perspective-origin: 50% 50%;
    perspective-origin: 50% 50%;
}

.flip-container {
    position: relative;
    display: inline-block;
    margin-left: 50px;
}

.flip-container > div > div {
    background: red;
    backface-visibility: hidden;
    position: absolute;
    top: 0;
    left: 0;
}

.flip-container .flipper {
    transform-origin: 50px 100%;
    transition: 0.6s;
    transform-style: preserve-3d;
    position: relative;
}
.vertical.flip-container .flipper {
    transform-origin: 100% 50px;
}

.flip-container > div > div + div {
    background: green;
    transform: rotateX(180deg) scaleX(-1) scaleY(-1);
}
.vertical.flip-container > div > div + div {
    transform: rotateX(180deg);
}


/* flip the pane when hovered 
.flip-container:hover .flipper,*/
.flip-container.hover .flipper {
    transform: rotateY(180deg);
}

/*.vertical.flip-container:hover .flipper,*/
.vertical.flip-container.hover .flipper{
    transform: rotateX(180deg);
}

.flip-container,
.flip-container > div > div {
    width: 100px;
    height: 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section>
    <div class="flip-container" ontouchstart="this.classList.toggle('hover');">
		<div class="flipper">
			<div>Rushikesh</div>
			<div>Prudvi</div>
		</div>
	</div>
        
    <div class="flip-container vertical" ontouchstart="this.classList.toggle('hover');">
		<div class="flipper">
			<div>Rushikesh</div>
			<div>Prudvi</div>
		</div>
	</div>
        
    <div class="flip-container vertical" ontouchstart="this.classList.toggle('hover');">
		<div class="flipper">
			<div>Rushikesh</div>
			<div>Prudvi</div>
		</div>
	</div>
  
  <div class="flip-container vertical" ontouchstart="this.classList.toggle('hover');">
		<div class="flipper">
			<div>Rushikesh</div>
			<div>Prudvi</div>
		</div>
	</div>
  
  <div class="flip-container vertical" ontouchstart="this.classList.toggle('hover');">
		<div class="flipper">
			<div>Rushikesh</div>
			<div>Prudvi</div>
		</div>
	</div>
  
  <div class="flip-container vertical" ontouchstart="this.classList.toggle('hover');">
		<div class="flipper">
			<div>Rushikesh</div>
			<div>Prudvi</div>
		</div>
	</div>
  
  <div class="flip-container vertical" ontouchstart="this.classList.toggle('hover');">
		<div class="flipper">
			<div>Rushikesh</div>
			<div>Prudvi</div>
		</div>
	</div>
  
  <div class="flip-container vertical" ontouchstart="this.classList.toggle('hover');">
		<div class="flipper">
			<div>Rushikesh</div>
			<div>Prudvi</div>
		</div>
	</div>
  <div class="flip-container vertical" ontouchstart="this.classList.toggle('hover');">
		<div class="flipper">
			<div>Rushikesh</div>
			<div>Prudvi</div>
		</div>
	</div>
  <div class="flip-container vertical" ontouchstart="this.classList.toggle('hover');">
		<div class="flipper">
			<div>Rushikesh</div>
			<div>Prudvi</div>
		</div>
	</div>
  <div class="flip-container vertical" ontouchstart="this.classList.toggle('hover');">
		<div class="flipper">
			<div>Rushikesh</div>
			<div>Prudvi</div>
		</div>
	</div>
  <div class="flip-container vertical" ontouchstart="this.classList.toggle('hover');">
		<div class="flipper">
			<div>Rushikesh</div>
			<div>Prudvi</div>
		</div>
	</div>
</section>

你的样子是这样的吗?

关于javascript - 如何随机翻转 Div 的后面然后再前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37795820/

相关文章:

使用 rand() 在 2 个或多个变量之间进行选择

javascript - RequireJS - skipDirOptimize : true setting does not optimize my main module

javascript - 字段集的 Angular Group 验证

c# - 每次运行应用程序时生成相同数字的随机数生成器

javascript - React 找不到我包含的第三方脚本

jquery - 如何在 .animate 上添加输入宽度

c++ - GNU C 库中 PRNG 的周期是多少?

javascript - 使用 javascript 将 HTML 转换为 Word

javascript - 获取用户点击对象的 DOM

javascript - 嵌套div问题的jquery mouseout