Как разместить горизонтальную прокрутку в центре, когда активна текущая ссылка - PullRequest
0 голосов
/ 28 октября 2019

Я сталкивался с этим примером , и мне нужно создать такую ​​же функциональность только с vanilla JS.

Кто-нибудь делал что-нибудь подобное?

https://jsfiddle.net/onigetoc/6bfuspkq/

$("#timepicker li").on("click", function() {
  $("#timepicker li").removeClass("active");
  $(this).addClass("active");
  $("#timepicker").scrollCenter(".active", 300);
});


jQuery.fn.scrollCenter = function(elem, speed) {
  var active = jQuery(this).find(elem); // find the active element
  var activeWidth = active.width()/2; // get active width center
  var pos = active.position().left+activeWidth; //get left position of active li + center position
  var currentscroll = jQuery(this).scrollLeft(); // get current scroll position
  var divwidth = jQuery(this).width(); //get div width
  pos = pos + currentscroll - divwidth / 2; // for center position if you want adjust then change this

  jQuery(this).animate({
    scrollLeft: pos
  }, speed == undefined ? 1000 : speed);
  return this;
};

// http://podzic.com/wp-content/plugins/podzic/include/js/podzic.js
jQuery.fn.scrollCenterORI = function(elem, speed) {
    jQuery(this).animate({
        scrollLeft: jQuery(this).scrollLeft() - jQuery(this).offset().left + jQuery(elem).offset().left
    }, speed == undefined ? 1000 : speed);
    return this;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...