Я разрабатываю веб-сайт, чтобы узнать немного больше о javascript, css и html.Черновик этого сайта здесь: http://test13111983.free.fr/
У меня возникли проблемы с прокруткой: прокрутка вверх и вниз вызывает горизонтальную прокрутку.
Когда я прокручиваю вниз и вверхс трекпадом на моем ноутбуке анимация довольно плавная в Chrome, но ужасная в Firefox.
Кроме того, в Chrome левая часть страницы мгновенно исчезает при прокрутке вверх.
Вот код js, который я использую для прокрутки:
var scroll = 0;
var target_page = "";
var round = 0;
var speed=50;
var timeout = null;
var diff = 0;
$('.accueil').on('mousewheel DOMMouseScroll', function(e){
if(typeof e.originalEvent.detail == 'number' && e.originalEvent.detail !== 0) {
if(e.originalEvent.detail > 0) {
scroll++;
} else if(e.originalEvent.detail < 0){
scroll--;
}
} else if (typeof e.originalEvent.wheelDelta == 'number') {
if(e.originalEvent.wheelDelta < 0) {
scroll++;
} else if(e.originalEvent.wheelDelta > 0) {
scroll--;
}
}
if(scroll>0){
round = Math.trunc(scroll/speed);
target_page = '.page:eq('+(numItems-round-2)+')';
$('.accueil').css("width", (0.32+0.2*(numItems))*$(window).innerWidth()+0.3*$(window).innerWidth()*scroll/speed);
$('.accueil').css("left", -0.5*$(window).innerWidth()*scroll/speed);
$(target_page).css("width", 0.2*$(window).innerWidth()*(1+1.5*(scroll/speed-round)));
$(target_page+' .photo').css("height", -0.01*$(window).innerHeight()+0.2*$(window).innerHeight()*(1+1.5*(scroll/speed-round)));
$(target_page+' .photo').css("width", -0.01*$(window).innerWidth()+0.2*$(window).innerWidth()*(1+1.5*(scroll/speed-round)));
if(scroll/speed- round > 0.5){$(target_page+' .numero').css("color", "#000");}else{$(target_page+' .numero').css("color", "#eaeaea");}
$(target_page+' .titre, '+target_page+' .date, '+target_page+' .categorie, '+target_page+' .sous_titre, '+target_page+' .numero').css("margin-left", 0.2*$(window).innerWidth()*(0.05+1.5*(scroll/speed-round)));
clearTimeout(timeout);
timeout = setTimeout(function() {
if(scroll/speed- round <= 0.5){scroll=round*speed;$(target_page+' .numero').css("color", "#eaeaea");}
else{scroll=(round+1)*speed;$(target_page+' .numero').css("color", "#000");};
$('.accueil').css("width", (0.32+0.2*(numItems))*$(window).innerWidth()+0.3*$(window).innerWidth()*scroll/speed);
$('.accueil').css("left", -0.5*$(window).innerWidth()*scroll/speed);
$(target_page).css("width", 0.2*$(window).innerWidth()*(1+1.5*(scroll/speed-round)));
$(target_page+' .photo').css("height", -0.01*$(window).innerHeight()+0.2*$(window).innerHeight()*(1+1.5*(scroll/speed-round)));
$(target_page+' .photo').css("width", -0.01*$(window).innerWidth()+0.2*$(window).innerWidth()*(1+1.5*(scroll/speed-round)));
$(target_page+' .titre, '+target_page+' .date, '+target_page+' .categorie, '+target_page+' .sous_titre, '+target_page+' .numero').css("margin-left", 0.2*$(window).innerWidth()*(0.025+1.5*(scroll/speed-round)));
}, 1000);
}
else{scroll=0;}
});
Что код делает при прокрутке: 1) освобождает div 2) и страницу 3) и перемещает его горизонтально
Я бы хотел кросс-браузерный плавный и эффективный переход.Любой совет?
Заранее благодарю.