test123borisaX1-1-f

by Borisko

HTML

<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.3/jquery.mousewheel.min.js"></script>
<div id="arrow"></div>
<div id="container1">


  <div id="target">

    <div class="emptyT "></div>
    <div class="one actual">test1</div>
    <div class="one">test2</div>
    <div class="one">test3</div>
    <div class="one">test4</div>
    <div class="one">test5</div>
    <div class="one">test6</div>
    <div class="one">test7</div>
    <div class="one">test8</div>
    <div class="one">test9</div>
    <div class="emptyB"></div>

  </div>
</div>

Delta Y:
<input type="text" value="delta6" id="delta6">
<br /> POS
<input type="text" value="delta" id="delta1"> FIXPOS:
<input type="text" value="delta" id="delta5"> CHECKCODE:
<input type="text" value="delta" id="delta7">

CSS

#arrow {
  position: absolute;
  top: 112px;
  left: 502px;
  height: 50px;
  width: 10px;
  background-color: red;
}

#container1 {
  margin-top: 50px;
  height: 170px;
  width: 500px;
  border: 1px solid green;
  overflow: hidden;
}

#target {
  width: 100%;
  height: 99%;
  border: 1px solid blue;
  overflow: auto;
  padding-right: 17px;
  background-color: gray;
  position: relative;
}

.emptyT {
  width: 500px;
  height: 60px;
}

.emptyB {
  width: 500px;
  height: 90px;
}

.one {
  width: 500px;
  height: 30px;
  text-align: center;
}

//.actual{width:500px; height:30px;background-color:purple;   }
.actual {
  text-transform: uppercase;
  height: 50px;
  background-color: purple;
  color: white;
  font-size: 32px;
  -webkit-transition: all 500ms ease-out;
  -moz-transition: all 500ms ease-out;
  -o-transition: all 500ms ease-out;
  -ms-transition: all 500ms ease-out;
  transition: all 500ms ease-out;
}

JavaScript

var valuePos = $("#target").scrollTop();


function wheel($div, deltaY) {
  var step = 30; //pixel step

  var pos = valuePos;

if (pos < 0) {pos = 0};
if (pos > 210) {pos = 240};

  if (deltaY <= -1) {
    deltaY = -1;
  }
  if (deltaY >= 1) {
    deltaY = 1;
  }

  var nextPos = pos + (step * (-deltaY));
  var fixpos = Math.floor(nextPos / 30.0) * 30;
  valuePos = fixpos;
  
  if (fixpos < 0) {
    fixpos = -30;

  }

  
  
  if (fixpos > 240) {
    fixpos = 240;
  }
  


  console.log("DelatY: " + deltaY + ", Step: " + step + ", nextPos: " + nextPos + ", FIXED: " + fixpos);

 

  $div.stop().animate({
    scrollTop: (fixpos)
  }, 600);

  $("#delta1").val(pos);
  $("#delta5").val(fixpos);
}

$("#target").bind("mousewheel", function(event, delta, deltaX, deltaY) {

  //tu treba limitovat deltu

  if (deltaY <= -1) {
    deltaY = -1;
  }
  if (deltaY >= 1) {
    deltaY = 1;
  }
  $("#delta6").val(deltaY);
  //    if (delta > -2 && delta < 2) {

  if (deltaY == -1) {
    event.preventDefault();
    $("#delta7").val("tu som 1");
    wheel($(this), deltaY);


    if ($("div.actual:last").next().eq(0).is("div.emptyB")) {
      $("div.emptyB:last").prev().eq(0).addClass("actual");
      $("div.emptyB").removeClass("actual");
    } else {
      $("div.actual:last").next().eq(0).addClass("actual");
      $("div.actual:last").prev().eq(0).removeClass("actual");
      $("#direction").val("down");
    }
  }

  if (deltaY == 1) {
    event.preventDefault();
    $("#delta7").val("tu som hore idem");
    wheel($(this), deltaY);

    if ($("div.actual").prev().eq(0).is("div.emptyT")) {
      $("div.emptyT:last").next().eq(0).addClass("actual");
      $("div.emptyT").removeClass("actual");
    } else {
      $("div.actual").prev().eq(0).addClass("actual");
      $("div.actual:last").eq(0).removeClass("actual");
    }



  }

});