| 
	| 
	
	| 
		
	| 
			
			 
			
				28.10.2016, 13:32
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 19.02.2015 
						Сообщений: 219
					 
		
 |  |  
	| 
				Как прокрутить блок влево до нужного места?
			 Добрый день! Появилась такая задача, которую даже понятия не имею, как возможно решить. Смысл в следующем: при нажатии на блок красного цвета, блок .blk должен прокрутиться влево до левого края экрана. Прошу прощения за тавтологию. И благодарю за помощь! 
<style>
.wrp {
display: block;
position: relative;
overflow: hidden;
visibility: visible;
overflow-x: scroll;
width: 100%;
height: 200px;
background: #cccccc;
}
.blk {
display: block;
position: relative;
width: 1000px;
height: 500px;
z-index: 2;
margin-left: 100%;
background: #aabbcc;
}
.knop {
display: block;
position: absolute;
width: 20px;
height: 20px;
right: 10px;
top: 50%;
background: red;
cursor: pointer;
}
</style>
<div class="wrp">
<div class="knop"></div>
<div class="blk"></div>
</div>
 |  |  
	| 
		
	| 
			
			 
			
				28.10.2016, 17:01
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 27.11.2015 
						Сообщений: 2,899
					 
		
 |  |  
	| 
<style>
.wrp {
display: block;
position: relative;
overflow: hidden;
visibility: visible;
overflow-x: scroll;
width: 100%;
height: 200px;
background: #cccccc;
}
.blk {
display: block;
position: relative;
width: 1000px;
height: 500px;
z-index: 2;
margin-left: 100%;
background: #aabbcc;
}
.animate {
margin-left: 0%;
transition-property: margin-left;
transition-duration: 9s;
}
.knop {
display: block;
position: absolute;
width: 20px;
height: 20px;
right: 10px;
top: 50%;
background: red;
cursor: pointer;
}
</style>
<div class="wrp">
<div class="knop"></div>
<div class="blk"></div>
</div>
<script>
document.querySelector('.knop').onclick = function() {
    document.querySelector('.blk').classList.add('animate');
}
</script>
 |  |  
	| 
		
	| 
			
			 
			
				28.10.2016, 17:16
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 19.02.2015 
						Сообщений: 219
					 
		
 |  |  
	| Dilettante_Pro,Приветствую вас! Таким образом мы просто уменьшаем margin. А мне необходимо, чтобы margin не изменялся. Вот в этом то и состоит вся задача.
 |  |  
	| 
		
	| 
			
			 
			
				28.10.2016, 17:46
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| LADYX,при данном css прокрутить невозможно на экранах >1000px
 |  |  
	| 
		
	| 
			
			 
			
				28.10.2016, 18:04
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| 
				анимация прокрутки блока
			 LADYX, 
 для меньше 1000px
 
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
<style>
.wrp {
display: block;
position: relative;
overflow: hidden;
visibility: visible;
overflow-x: scroll;
width: 100%;
height: 200px;
background: #cccccc;
}
.blk {
display: block;
position: relative;
width: 1000px;
height: 500px;
z-index: 2;
margin-left: 100%;
background: #aabbcc;
}
.knop {
display: block;
position: absolute;
width: 20px;
height: 20px;
right: 10px;
top: 50%;
background: red;
cursor: pointer;
}
</style>
</head>
<body>
<div class="wrp">
<div class="knop"></div>
<div class="blk"></div>
</div>
<script>
function timer(b) {
    return {
         play: function() {
            var d = performance.now();
            c = !0;
            b.from = b.from ||b.elem.scrollLeft;
            requestAnimationFrame(function e(a) {
                a = (a - d) / b.duration;
                1 <= a && (a = 1, b.callback && b.callback());
                b.elem.scrollLeft = b.from + (b.to - b.from) * a | 0;
                1 > a && requestAnimationFrame(e)
            })
        }
    }
};
var wrp = document.querySelector('.wrp'),
    but = document.querySelector('.knop'),
    anim = timer({
        from : 0,
        to : document.documentElement.clientWidth,
        duration: 2 * 1000,
        elem : wrp,
        callback : function() { }
    });
  but.addEventListener('click', anim.play);
</script>
</body>
</html>
 
			
			
	
			
			
			
			
			
				  |  |  
	| 
		
	| 
			
			 
			
				28.10.2016, 18:25
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 19.02.2015 
						Сообщений: 219
					 
		
 |  |  
	| рони,я вас приветствую! Прошу прощения за глупый вопрос, и тем не менее, почему на экранах более 1 000 px невозможно сделать такую прокрутку?
 Этот код, который вы написали, я его попробовал. У меня экран 1600х900, и этот код работает, прокручивает. Странно, ничего тогда не понимаю. Будьте добры, объясните мне пожалуйста, мне нужно понять. Благодарю вас!
 |  |  
	| 
		
	| 
			
			 
			
				28.10.2016, 18:30
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| 
	
 
	| Сообщение от LADYX |  
	| Этот код, который вы написали, я его попробовал. У меня экран 1600х900, и этот код работает, |  
	
 чудеса!!! а на моих браузерах  это невозможно |  |  
	| 
		
	| 
			
			 
			
				28.10.2016, 18:51
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 19.02.2015 
						Сообщений: 219
					 
		
 |  |  
	| рони, 
 ну нет, вы издеваетесь)) Правда, а причем здесь размер экрана? Просто тупо вставить код, и радоваться это глупо, а я хочу понять, почему вы сделали акцент на размер экрана. Почему работает там, где вы сказали работать не должно?   |  |  
	| 
		
	| 
			
			 
			
				28.10.2016, 19:29
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| LADYX,скопируйте код на отдельную страницу и откройте  в любом браузере. скрипт чтоб увидеть ограничение ненужен, полосу прокрутки прокрутите максимально вправо мышкой.
 |  |  
	| 
		
	| 
			
			 
			
				28.10.2016, 21:07
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 19.02.2015 
						Сообщений: 219
					 
		
 |  |  
	| рони,прошу прощения за навязчивость. Хоть убейте, не могу понять, какое ограничение? Скопировал код на отдельную чистую страницу. Всё отображается правильно, все блоки верных размеров, как в css. Полосу прокрутки прокручиваю до конца вправо - всё четко работает: прокручивается margin и до конца весь блок, как и должно быть.
 |  |  |  |