2

スロットマシンのアニメーションで画像を選択

画像をクリックすると、すべての画像がスクロールして選択した画像で停止するスロット マシンのようなもの (画像のようなもの) を作成したいと考えています (画像の例では、画像番号 2 をクリックしました)。いくつかの jQuery サンプルを作成して使用しようとしましたが、それはできません。誰かが私を導くことができますか、それを行う方法はありますか?

4

1 に答える 1

0

以下の解決策を確認してください。Diaco によって GSAP フォーラムで提案されたので、これが役立つかもしれません。

HTML:

<div class="box">END</div>
<div class="box">Slide 4</div>
<div class="box">Slide 3</div>
<div class="box">Slide 2</div>
<div class="box">Slide 1</div>

CSS:

body {
  background-color: #333;
  padding: 0px;
  margin: 0px;
  overflow: hidden;
}

.bullets {
  position: absolute;
  left: 10px;
  top: 10px;
  background-color: rgba(0, 0, 0, 0.3);
}

.bullet {
  width: 10px;
  height: 10px;
  margin: 2px;
  background-color: white;
  display: inline-block;
}

.box {
  width: 100%;
  height: 100%;
  position: absolute;
  text-align: center;
  font-size: 70px;
  color: white;
  font-family:'Oswald', arial; 
  padding-top: 50px;
}

.box:nth-child(1) {
  background-color: #ff002f;
}

.box:nth-child(2) {
  background-color: #00718b;
}

.box:nth-child(3) {
  background-color: #4a5619;
}

.box:nth-child(4) {
  background-color: #444;
}

.box:nth-child(5) {
  background-color: #ff002f;
}

Javascript:

/* a Pen by DIACO : twitter.com/Diaco_ml || codepen.io/MAW
powered by GSAP : http://www.greensock.com/
*/

var box = $(".box") , indx = 0 , Anim ;

box.each(function(){ this.anim = TweenMax.to($(this),1,{yPercent:-100,paused:true,ease:Power4.easeIn}) });

$(window).on("mousewheel DOMMouseScroll", function(event){
  event.stopPropagation();  event.preventDefault(); 

  var Del = event.originalEvent.wheelDelta/120 || -event.originalEvent.detail/3;
  turn(Del);
});

var D = document.createElement('div');

var Dragger = Draggable.create(D,{trigger:".box",type:'y',minimumMovement:30,cursor:'n-resize',
onDrag:function(){ Del=this.getDirection("start")=='up'?-1:1;  turn(Del);}
});

function turn(Del){
  if(Del==1 && indx>0 ){
    if(Anim == undefined){  Anim = box[box.length-indx].anim.reverse(); indx--; }
    else if(!Anim.isActive()){  Anim = box[box.length-indx].anim.reverse(); indx--; }
    }
    else if(Del==-1 && indx<box.length-1){
    if(Anim == undefined){  Anim = box[(box.length-1)-indx].anim.play();    indx++; }
    else if(!Anim.isActive()){  Anim = box[(box.length-1)-indx].anim.play();    indx++; }
  }
};

/* a Pen by DIACO : twitter.com/Diaco_ml || codepen.io/MAW */

上記の JavaScript を実行するには、アニメーションを効率的に処理する方法を提供する Greensock GSAP を含める必要があります。

http://cdnjs.cloudflare.com/ajax/libs/gsap/1.17.0/TweenMax.min.js

ありがとう!

于 2015-07-20T09:17:26.543 に答える