Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Сдвинуть горизонтальный скролл в право на n пикселей (https://javascript.ru/forum/events/52656-sdvinut-gorizontalnyjj-skroll-v-pravo-na-n-pikselejj.html)

maix 29.12.2014 16:24

Сдвинуть горизонтальный скролл в право на n пикселей
 
Доброго времени суток уважаемые форумчане. Подскажите пожалуйста по проблемке:

Есть некая разметка:
<div class="horiz_container_outer">
	<div class="horiz_container">
		<div class="block-timetable">DEVELOPING</div>
		<div class="block-timetable">DEVELOPING</div>
		<div class="block-timetable">DEVELOPING</div>
		<div class="block-timetable">DEVELOPING</div>
		<div class="block-timetable">DEVELOPING</div>
		<div class="block-timetable">DEVELOPING</div>
		<div class="block-timetable">DEVELOPING</div>
		<div class="block-timetable">DEVELOPING</div>
	</div>
</div>
<div onclick="qwerty();">BUTTON</div>


с некими стилями:

.horiz_container_outer{
	width:1140px;
	overflow:hidden;
	height:315px;
	position:relative;
	margin: 0 15px;
}

.horiz_container{
	width:4000px;
	height:300px;
	float:left;
}

.block-timetable{
	float: left;
	width: 500px;
	height: 300px;
	background: gray;
}


и js кодом
<script type="text/javascript">		
	$(document).ready(function(){
		function qwerty(){
			// вот тут нужен код который сдвигает скролл вправо
		}
	});
</script>



Какой прописать код в функции qwerty что бы по клику сдвигать скролл в право на n колличество пикселей ?
Заранее спасибо.

Octane 29.12.2014 16:44

у тебя функция qwerty не определена глобально, поэтому по клику на div получишь ReferenceError

по теме: https://developer.mozilla.org/en-US/...ent.scrollLeft

maix 29.12.2014 17:16

Octane, спасибо тебе добрый человек ! и в право и в лево разобрался как. а вот на счет того что функция не определена, странно.. при обычном алерте ни какой ошибки не вылезает..

Octane 29.12.2014 17:38

ничего странного, ты ее определяешь внутри другой функции
…ready(function(){

maix 30.12.2014 09:33

Octane, ясненько.. ок, а как ее определить глобально в таком случае ? как правильно ? если вынести из функции не рассматривать как вариант ?

krasovsky 30.12.2014 11:27

Цитата:

Сообщение от maix
ясненько.. ок, а как ее определить глобально в таком случае ? как правильно ? если вынести из функции не рассматривать как вариант ?

Естественно вынести за пределы ready(), либо объявлять как window.qwerty = function(){....}
Сейчас ты ее определил внутри jq функции ready,и она доступна только там, и только пока выполняется функция ready(). Такого вообще делать не стоит, разве что эта функция больше использоваться не должна.

рони 30.12.2014 11:29

maix,
назначить клик тамже где находится функция
$(document).ready(function(){
		function qwerty(){
			// вот тут нужен код который сдвигает скролл вправо
		} ;
        $("div.КЛАСС").click(qwerty)
	});

maix 30.12.2014 11:39

Всем спасибо за ответы, разобрался =) Тема закрыта.

maix 31.12.2014 10:36

Вот еще один вопросик появился =)

Из вышенаписанного получилось следущее:

<script type="text/javascript">
    document.addEventListener('DOMContentLoaded', function () {   
        var buttonright = document.getElementById('slide-right');
		var buttonleft = document.getElementById('slide-left');
        buttonright.onclick = function sright() {
			document.getElementById('horiz_container_outer').scrollLeft += 220;
        };
		buttonleft.onclick = function sleft() {
			document.getElementById('horiz_container_outer').scrollLeft -= 220;
        };
		
		setInterval(function(){document.getElementById('horiz_container_outer').scrollLeft += 220}, 3000)
		
    }, false);
</script>


Как узнать что скролл промотан до конца и поменять направление прокрутки ?
Заранее спасибо.

рони 31.12.2014 11:34

maix,
http://javascript.ru/forum/dom-windo...scrolltop.html


Часовой пояс GMT +3, время: 10:21.