• Как сделать плавный скролл по window.scroll() без jquery?

    deimon260993
    @deimon260993
    Web-программист
    Отлавливай событие скролла мышью, проверяй, в какую сторону мышкой крутит пользователь и вызывай функцию, в которой у тебя есть несколько переменных, допустим:
    let scrollValue = 100,; //Величина прокрутки за 1 раз в пикселях
         scrolltime = 60,; //Время прокрутки в секундах
         scrollSpeed = parseFloat(scrollValue/scrollSpeed); //Скорость скролла


    А дальше в функции устанавливаешь какой-нибудь setInterval() который будет у тебя раз в секунду , допустим, прокручивать страничку на ScrollValue. Что-нибудь в таком духе. На 100% правильность не претендую, но, думаю, мысль понятна)

    Вот есть старенький код, которым я когда-то давно пользовался:

    //скролл
    function SoftScroll () {
    	var _this = this;
    	window.onmousewheel = function () { return _this.catchScroll(window.event) };
    	this.speed = 0;
    	this.current = 0;
    	this.time = 100;
    	this.direction;
    	this.timer = false;
    }
    SoftScroll.prototype = {
    	catchScroll: function (e) {
    		this.speed += 100;
    		if(e.wheelDelta > 0) this.direction = 'up';
    		else this.direction = 'down';
    		this.timerScroll();
    		return false;
    	},
    	timerScroll: function () {
    		_this = this;
    		if(_this.timer == true) return;
    		_this.timer = true;
    		_this.timerId = setInterval(function () {
    			var increment = Math.sqrt(_this.speed) / 2.5;
    			_this.current += increment;
    			if(_this.current > _this.speed) _this.current = _this.speed;
    			var y = -Math.pow(_this.current - _this.speed / 2, 2) / Math.pow(_this.speed / 2, 2) * increment + increment;
    			if(_this.direction == 'up') y = -y;
    			_this.doScroll(Math.floor(y));
    			if(y == 0) {
    				_this.timer = false;
    				_this.speed = 0;
    				_this.current = 0;
    				clearInterval(_this.timerId);
    			}
    		}, 10);
    	},
    	doScroll: function (scroll) {
    		document.body.scrollTop = document.body.scrollTop + scroll;
    		document.documentElement.scrollTop = document.documentElement.scrollTop + scroll;
    	}
    }
    Ответ написан
  • Как дать закончить анимацию и только потом пролистать слайд в slick js?

    deimon260993
    @deimon260993
    Web-программист
    Всё зависит от того, каким способом анимируется слайд, вот, допустим, на случай, если анимация осуществляется через CSS:
    https://learn.javascript.ru/css-transitions#событи...
    getinstance.info/articles/javascript/css3-animatio...

    Можно также покопаться в коде плагина и подправить немного под свои цели)

    Если анимация проходит с использованием FadeIN / FadeOut, можно так:
    $('#slide').fadeIn('slow', function() {
        // Animation complete.
      });
    Ответ написан
  • Как побороть Total Commander?

    deimon260993
    @deimon260993 Автор вопроса
    Web-программист
    Может подскажите, какими файловыми менеджерами вы пользуетесь? Важно, чтобы умел работать с любой длиной файлов, если возможно, поддерживал автовыгрузку файла на сервер после изменений, как это сделано в Total Commander. т.е. по сути изменять файлы можно прямо на сервере, не скачивая их перед этим непосредственно на ПК.
    Ответ написан
    Комментировать
  • Как управлять скроллом на мобильных устройствах?

    deimon260993
    @deimon260993 Автор вопроса
    Web-программист
    Спасибо всем, кто отозвался. Нашел проблему. Все банально было в том, что на мобильниках заголовок, на который навешан якорь был display: none;
    Ответ написан
    Комментировать
  • Как сделать правильный 301 редирект с сохранением всех параметров в url?

    deimon260993
    @deimon260993 Автор вопроса
    Web-программист
    К сожалению, тот же результат( Вставляю ссылку /zdorove/britanskim-medikam-udalos-pobedit-spid/ редиректит на /news-new/.

    Разобрался, в чем была проблема. Ваше решение действительно помогло, спасибо большое. Весь вопрос был во включенной директиве Options +FollowSymLinks . Как только я её отключил, все стало работать штатно. Буду разбираться, почему не работает вместе с ней.
    Ответ написан
    Комментировать