Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.06.2013, 09:48
Интересующийся
Отправить личное сообщение для webuses Посмотреть профиль Найти все сообщения от webuses
 
Регистрация: 26.11.2012
Сообщений: 11

JS event- координаты
<!DOCTYPE HTML>
<head>
<meta charset="UTF-8" />
<title>Полоса</title>
</head>

<body>

<style>
#beg {

}
#polosa {
    border: 1px solid #FFFFFF;
    height: 5px;
    margin: 0 auto;
    position: relative;
    top: 10px;
    width: 150px;
}
#block {
    background: none repeat scroll 0 0 #CCCCCC;
    height: 50px;
    width: 200px;
}
#znach {
    left: 25px; 
    position: relative;
}
</style>
<div id="block">
    <div id="polosa"></div>
    <div id="beg"   style="background: none repeat scroll 0 0 #FFFFFF;
    height: 20px;
    left: 24px;
    position: relative;
    width: 5px;
    cursor: pointer;" onmousedown="begun(this);"></div>
    <div id="znach" >0</div>
</div>
<script>
function begun(el){
    var k = false;
    var event = event || window.event;
    el.onmouseout = function(event){
        if(k==true || parseInt(el.style.left)<24 || parseInt(el.style.left)>90){
            if(parseInt(el.style.left)<24){
                el.style.left = '24px';
                
            }
            if(parseInt(el.style.left)>90){
                el.style.left = '90px';
            }
        return false;}
        else{
            var znach = document.getElementById('znach');
            if(parseInt(el.style.left)<24){
                el.style.left = '24px';
            }
            if(parseInt(el.style.left)>90){
                el.style.left = '90px';
                znach.innerHTML=event.layerX-25;
            }
            
            el.style.left = event.layerX-10+'px';
            znach.innerHTML=event.layerX-25;
        }
    }
    el.onmouseup = function(event){k = true; }
}


</script>
</body>
</html>

Почему у меня иногда отображает не правильно положение мыши то есть прокручиваю бегунком и у меня иногда его отбрасывает далеко назад
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2013, 09:54
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

el.style.left = event.layerX-10+'px';
console.log(event.layerX-10); //отрицательное значение, поэтому и убегает влево
znach.innerHTML=event.layerX-25;
console.log(event.layerX-25);
Ответить с цитированием
  #3 (permalink)  
Старый 25.06.2013, 10:00
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

я делал так:
при клике сохранял в переменную значение left (css) (допустим var left = parseInt(this.style.left))
а также координаты мыши при клике. var click_y = ...

и координаты при перемещении var move_y
и теперь все это слепливаем: obj.style.left = left + move_y - click_y;
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2013, 10:04
Интересующийся
Отправить личное сообщение для webuses Посмотреть профиль Найти все сообщения от webuses
 
Регистрация: 26.11.2012
Сообщений: 11

нет 10 это чтоб его сразу не отбрасывало в бок то есть это отступ не в том дело попробуйте код запусьтить и увидите что иногда он резко и не нат 10 пикселей отлетает влево
Сообщение от skrudjmakdak Посмотреть сообщение
el.style.left = event.layerX-10+'px';
console.log(event.layerX-10); //отрицательное значение, поэтому и убегает влево
znach.innerHTML=event.layerX-25;
console.log(event.layerX-25);
Ответить с цитированием
  #5 (permalink)  
Старый 25.06.2013, 10:19
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

ну это смотря как вы дерните мышку. ща я немного накидаю..
а вообще есть плагин jquery где это уже реализовано)
Ответить с цитированием
  #6 (permalink)  
Старый 25.06.2013, 10:27
Интересующийся
Отправить личное сообщение для webuses Посмотреть профиль Найти все сообщения от webuses
 
Регистрация: 26.11.2012
Сообщений: 11

да я так чисто для себя решил поучить js ядро) остались события но полной документации найти что то не совсем могу по ним везде кусками
Сообщение от skrudjmakdak Посмотреть сообщение
ну это смотря как вы дерните мышку. ща я немного накидаю..
а вообще есть плагин jquery где это уже реализовано)
Ответить с цитированием
  #7 (permalink)  
Старый 25.06.2013, 10:38
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

накидал, но криво работает, мне надо было с нуля))
но принцип примерно такой.. и там верстку немного бы переделать
<!DOCTYPE HTML>
<head>
<meta charset="UTF-8" />
<title>Полоса</title>
</head>

<body>

<style>
#beg {

}
#polosa {
    border: 1px solid #FFFFFF;
    height: 5px;
    margin: 0 auto;
    position: relative;
    top: 10px;
    width: 150px;
}
#block {
    background: none repeat scroll 0 0 #CCCCCC;
    height: 50px;
    width: 200px;
}
#znach {
    left: 25px; 
    position: relative;
}
</style>
<div id="block">
    <div id="polosa"></div>
    <div id="beg"   style="background: none repeat scroll 0 0 #FFFFFF;
    height: 20px;
    left: 24px;
    position: relative;
    width: 5px;
    cursor: pointer;" onmousedown="begun(this);"></div>
    <div id="znach" >0</div>
</div>
<script>
var left = -1;
var click_x = -1;

function begun(el)
	{
	var event = event || window.event;
	left = parseInt(el.style.left);
	click_x = event.layerX;

	window.onmousemove = function(event)
		{
		var event = event || window.event;
		console.log(':' + (left) + ':' +  (event.layerX - click_x))
		el.style.left = left + event.layerX - click_x + 'px';
		}
	
	window.onmouseup = function(event)
		{
		window.onmousemove = undefined;
		}
	}


</script>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операционная Система на JS Icat Общие вопросы Javascript 3 17.04.2018 22:54
Не получается вставить код js в HTML garmoni Элементы интерфейса 3 05.09.2013 05:56
Вставка кода js с помощью js Alice Общие вопросы Javascript 1 12.06.2013 19:05
event + setTimeout fsingle Events/DOM/Window 2 02.05.2012 09:07
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28