[Ликбез]

Форма входа

Меню сайта



Вопросы для доброго дяди, от Koeshiro
[586] likbezz [27.09.2013, 20:06]
Koeshiro,
Цитата (Koeshiro, Пт, 27.09.2013, 12:02:16)
Просто в примере нечего не менял а так пытался сделать глобальный объект через windiw.тра-та-та И строку через return тра-та-та(Не сразу понял что это всё дело нужно к чему-то приравнять) Не помогло. . .

В коде что ты выложил всего это нет, ни windiw ни typeof ..

Цитата (Koeshiro, Пт, 27.09.2013, 12:02:16)
Что бы три элемента немного сдвигались в сторону мышки. И сделать это так чтоб не пришлось писать три отдельный функции. .

А сколько? Одну?

Цитата (Koeshiro, Пт, 27.09.2013, 12:02:16)
Я не имею представления о том как можно это реализовать(Не используя JQ. . . Это просто принципиально))

- А что с JQ проще написать что ли?
Напиши на JQ а потом перегони в чистый JS - ОЙ - это же тоже JS а не что-то другое.

Цитата (Koeshiro, Пт, 27.09.2013, 12:02:16)
Но идеи исчерпались

..А какие тут идеи?
Вешается событие на контейнер в котором будет двигаться мышка, создается объект который будет двигаться.
Ко всему этому:
1. Глобальная - для таймера.
2. Глобальная для начальных координат - массив.
3. Функция в которую будет передаваться эвент от мышки.
4. И несколько дополнительных - для вычисления координат курсора, для прохода по элементам, для вычисления координат объектов, для анимации объектов.
- уже как минимум четыре...

Принцип:
Функция принимает эвент, вычисляет координаты, через какую-нить формулу (например коэффициент от суммы координат объекта и текущего положения мышки) переписывает координаты объекта, через цикл. Так же, по истечении цикла, переписывает глобальные переменные - ставит актуальные цифры. Пока работает функция - таймер в false, по истечении - таймер в true - а в самом начале функции вешается проверка таймера. Так как мышка двигается постоянно - нужно задерживать поток функций, проще всего именно так.

Из всего этого самое сложное - это просчитать (придумать) формулу по которой “три элемента немного сдвигались бы в сторону мышки” ... это не просто драг-ту-дроп - где всего-навсего элементу передаются координаты мышки...
...

Цитата (Koeshiro, Пт, 27.09.2013, 12:02:16)
P.S. А как создавать глобальную переменную через typeof ?

Через typeof не создаются, а проверяются на наличие.
Создаются, из функции, через window, так же и присваиваются.
..
[587] Koeshiro [27.09.2013, 21:09]
Цитата (likbezz, Пт, 27.09.2013, 20:06:44)
..А какие тут идеи?
Вешается событие на контейнер в котором будет двигаться мышка, создается объект который будет двигаться.
Ко всему этому:
1. Глобальная - для таймера.
2. Глобальная для начальных координат - массив.
3. Функция в которую будет передаваться эвент от мышки.
4. И несколько дополнительных - для вычисления координат курсора, для прохода по элементам, для вычисления координат объектов, для анимации объектов.
- уже как минимум четыре...
Принцип:
Функция принимает эвент, вычисляет координаты, через какую-нить формулу (например коэффициент от суммы координат объекта и текущего положения мышки) переписывает координаты объекта, через цикл. Так же, по истечении цикла, переписывает глобальные переменные - ставит актуальные цифры. Пока работает функция - таймер в false, по истечении - таймер в true - а в самом начале функции вешается проверка таймера. Так как мышка двигается постоянно - нужно задерживать поток функций, проще всего именно так.
Из всего этого самое сложное - это просчитать (придумать) формулу по которой “три элемента немного сдвигались бы в сторону мышки” ... это не просто драг-ту-дроп - где всего-навсего элементу передаются координаты мышки...
...

Обработка данных . . . .
[588] likbezz [28.09.2013, 20:32]
Koeshiro,
Цитата (Koeshiro, Пт, 27.09.2013, 21:09:37)
Обработка данных . . . .

Надолго я тебя загрузил ))
[589] Koeshiro [29.09.2013, 20:40]
То есть создавать одну функцию не имеет смысла ибо она всё равно не сможет в должной степени работать со всеми элементами (В итоге будет 4). Стоит сделать глобальную функцию и в неё впихивать более мелкие локальные функции?
[590] likbezz [29.09.2013, 21:06]
Koeshiro,
Цитата (Koeshiro, Вс, 29.09.2013, 20:40:58)
То есть создавать одну функцию не имеет смысла ибо она всё равно не сможет в должной степени работать со всеми элементами (В итоге будет 4)

А вообще, когда нибудь имело смысл? запихивать все в одно?
Зачем?
Это первое: неудобно.
Второе - нерасширяемо,
Третье - раздутый код.
[591] Koeshiro [29.09.2013, 21:13]
Цитата (likbezz, Вс, 29.09.2013, 21:06:45)

А вообще, когда нибудь имело смысл?

Не знаю. У меня опыта с гулькин нос. Я думаю как могу. И думаю что нет смысла писать три функции. Когда можно сделать всё в одну строку в body. Такое имеет смысл?
[592] likbezz [29.09.2013, 21:17]
Koeshiro,
Цитата (Koeshiro, Вс, 29.09.2013, 21:13:57)
И думаю что нет смысла писать три функции. Когда можно сделать всё в одну строку в body.

Данный случай - будет оОчень длинная строка ..
[593] Koeshiro [02.10.2013, 21:42]
Цитата (likbezz, Вс, 29.09.2013, 21:17:10)
Данный случай - будет оОчень длинная строка ..

Знаю. Хотя переместить в функцию целесообразней. Но у меня нет особого представления как мне это правильно сделать.

Добавлено (02.10.2013, 21:42)
---------------------------------------------
Придумал как проверить код на выполнение! Нужно нжно что бы он создавал элемент который после будет изменять! :-)

[594] likbezz [03.10.2013, 22:27]
Koeshiro,
Цитата (Koeshiro, Ср, 02.10.2013, 21:42:57)
Придумал как проверить код на выполнение! Нужно нжно что бы он создавал элемент который после будет изменять! :-)

Типа как глобальная переменная?
Зачем тогда создавать Элемент если можно Переменную? а еще лучше - юзась существующие элементы
[595] Koeshiro [16.10.2013, 11:42]
Работает! killed

Добавлено (16.10.2013, 11:42)
---------------------------------------------
Здравствуйте учитель. У меня снова вопрос. Как можно перехватить нажатие на ссылку и открыть её не в новом окне или вкладке, а в имфрейме на странице?

Сообщение отредактировал Koeshiro - Среда, 09.10.2013, 08:38
[596] likbezz [16.10.2013, 19:25]
Koeshiro,
Цитата Koeshiro, Ср, 16.10.2013, 11:42:27
меня снова вопрос. Как можно перехватить нажатие на ссылку и открыть её не в новом окне или вкладке, а в имфрейме на странице?

Добрый.
Как обычно - событие onclick и return false;
По клику забираем ссылку, создаем фрейм а возвращаем false что бы не было перехода.
[597] Koeshiro [16.10.2013, 19:40]
Цитата likbezz, Ср, 16.10.2013, 19:25:17
Как обычно - событие onclick и return false;

Тогда можно просто пройтись по ссылкам и заменить href на onclick XD Спасибо =)
[598] likbezz [16.10.2013, 20:32]
Koeshiro,
Цитата Koeshiro, Ср, 16.10.2013, 19:40:12
Тогда можно просто пройтись по ссылкам и заменить href на onclick

Ну да
[599] Koeshiro [19.10.2013, 14:25]
Сделал. По задумке должно было вызываться алерт как только нажму на родитель елемента но нет =\
Цитата
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta name="" content="">
<style>
body{margin:0; padding:0; background:url(file:///C:/Users/Rail-gun/Desktop/ravens.gif);}
.tubs{border-radius:0px 0px 15px 15px; border: solid 2px #c4c6c1; background:#cfd1cd; padding-top:5px; padding-left:5px; padding-bottom:5px; padding-right:5px; margin-left:20px;width:auto; height:auto; float: left; box-shadow: 3px 3px rgba(0, 0, 0, 0.6);z-index:99;}
.textbody{display:none; background: #d7d9d5; border: solid 2px #c4c6c1; margin-top:1%;box-shadow: 3px 3px rgba(0, 0, 0, 0.7); white-space:pre-wrap;overflow: auto; top:0; left:0;}
</style>
</head>
<body>
<div align='center'>
<div id='globaltext' align="center" >
<div class="textbody" ></div>
<div class="textbody" ></div>
<div class="textbody" ></div>
<div class="textbody" ></div>
<div class="textbody" ></div></div>
<div id="menu" align="center">
<div class="tubs"><a href="#6">Главная</a></div>
<div class="tubs">Информация</div>
<div class="tubs">О Продукции</div>
<div class="tubs">Адреса</div>
<div class="tubs">Контакты</div>
</div></div>
<script>
function firstfun(){
var menuid=document.getElementById('menu');
var num=menuid.children.length;
var i=0;
while(i<num){menuid.children[i].setAttribute('onclick','tabs('+i+',"globaltext");');i++}
}
function tabs(element,id){
var bodyid=document.getElementById(id);
var num=bodyid.children.length;
var i=0;
while(i<num){bodyid.children[i].style.display="none";i++}
bodyid.children[element].style.display="block";
bodyid.children[element].style.height=screen.height-((screen.height/100)*3)-155+'px';
bodyid.children[element].style.width=screen.width-35+'px';
}
function seturl(){
var a=document.getElementsByTagName("a");
var num=a.length;
var i=0;
while(i<num){var ahref=a[i].href; a[i].parentNode.setAttribute('onclick','openframe('+ahref+')'); a[i].removeAttribute('href');i++;}
}
function openframe(ahref){
var a=ahref+'^';
alert(a);
}

firstfun();
seturl();
</script>
</body>
</html>

Добавлено (19.10.2013, 14:25)
---------------------------------------------
Не подскажете в чём косяк? biggrin

[600] likbezz [20.10.2013, 02:14]
Koeshiro,
Цитата Koeshiro, Сб, 19.10.2013, 14:25:52
Не подскажете в чём косяк?

Атрибуты и свойства: реализация, методы и отличия в Internet Explorer
Ознакомься)


Полная версия сайта