JQuery - плавное изменение CSS-пути клипа - PullRequest
0 голосов
/ 28 января 2019

У меня есть элемент с css clip-path. В зависимости от положения курсора (Xcord) jquery изменить clip-path точек.

Мой код работает отлично, но я хочу замедлить (медленно и плавно)эта «анимация», даже если курсор движется быстро.

как мне этого добиться?спасибо за помощь

$(document).mousemove(function(getCurrentPos){
  var clip = $(".element");
  //x coordinates
  var xCord = getCurrentPos.pageX;
  //calculate %
  xPercent = xCord / $(document).width() * 100;
  var left = 90 + 10 * (xPercent / 100);
  var right = 100 - 10 * (xPercent / 100);
					
  $(".element").css('clip-path', 'polygon(0% 0%, 100% 0%, 100% ' + left + '%, 0% ' + right + '%)');
});
.element {
background:red;
width:500px;
height:150px;
clip-path:polygon(0% 0%, 100% 0%, 100% 100%, 0% 90%);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="element"></div>

1 Ответ

0 голосов
/ 28 января 2019

Просто добавьте переход на код CSS

$(document).mousemove(function(getCurrentPos) {
  var clip = $(".element");
  //x coordinates
  var xCord = getCurrentPos.pageX;
  //calculate %
  xPercent = xCord / $(document).width() * 100;
  var left = 90 + 10 * (xPercent / 100);
  var right = 100 - 10 * (xPercent / 100);

  $(".element").css('clip-path', 'polygon(0% 0%, 100% 0%, 100% ' + left + '%, 0% ' + right + '%)');
});
.element {
  background: red;
  width: 500px;
  height: 150px;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 90%);
  transition:0.5s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="element"></div>
...