Как все div автопрокрутки обратно при отпускании мыши - PullRequest
1 голос
/ 11 марта 2020

При наведении мыши ширина родительского div увеличивается до 100%, и пользователь может прокручивать дочерний div с 1 по 4. Предположим, пользователь прокручивает до четвертого дочернего div, и в то же время мышь покидает, тогда ширина родительского div уменьшается до 50% по умолчанию, но я ожидаю, что время Первый ребенок появляется, прокручивая все четыре элемента div (текущий) до первого. Я попробовал что-то ниже, но это не свитки. Поэтому, пожалуйста, можете предложить решение для этого, чтобы все div автоматически прокручивались назад при отпускании мыши.

html

    var current = 0;
    var ScrollX_pixelPer = 15.05;
    $('.homePage-scrolling-wrapper').on("mousewheel", function(e) {
    	e.preventDefault();
    	var delta = ScrollX_pixelPer*(parseInt(e.originalEvent.deltaY)/33);
    	current += delta;
    	$(this).scrollLeft(current);
    });
    
    $('.homePage-scrolling-wrapper').hover(function () {
    	$('.homePage-staticSection').animate({'margin-left' : "-45%"});
    	$(this).animate({'width' : "100%"});
    	$(this).find('*').removeClass('to-right');
    }, 
    function () {
    	$('.homePage-staticSection').animate({'margin-left' : "0"});
    	$(this).animate({'width' : "50vw"});
    	$(this).children().first().addClass('to-right');
    });
body {margin: 0; padding: 0;}
*{box-sizing: border-box;}
.homePage-container,
.homePage-scrolling-wrapper {
	display: flex;
	display: -webkit-flex;
}
.homePage-staticSection,
.homePage-scrolling-wrapper {
	width: 50vw;
	height: 100vh;
	border: 1px solid red;
}
.homePage-scrolling-wrapper {
	flex-wrap: nowrap;
	overflow-x: hidden;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: y mandatory;
	scroll-behavior: smooth;
	z-index: 4;
	cursor: ew-resize;
}
.scrolling-item {
	min-width: 100%;
	height: 100%;
	scroll-snap-align: center;
	overflow-x: hidden;
}
.scrolling-item:nth-child(odd) {
	background: #1D5D95;
}
.scrolling-item:nth-child(even) {
	background: #CCCCCC;
}
    		
.to-right {
	position: absolute;
	left: 50%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="homePage-container">
  <div class="homePage-staticSection"><h2>left box<h2></div>
  <div class="homePage-scrolling-wrapper">
  <div class="scrolling-item"><h2>Item-01</h2></div>
  <div class="scrolling-item"><h2>Item-02</h2></div>
  <div class="scrolling-item"><h2>Item-03</h2></div>
  <div class="scrolling-item"><h2>Item-04</h2></div>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...