Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.03.2015, 09:00
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от YaroBest
спасибо за совет, выходит без JQuery ничего не выйдет?
Не слушай их. Разберись сначала с чистым js. Пиши под современные браузеры. Если нужно чтобы работало и в старье, но не хочешь разбираться в багах/различиях старых браузеров, тогда используй jquery.

Сообщение от YaroBest
не могу понять как так получается что один и тот же код в разных браузерах себя по-разному ведет (ну, почти )
Не совсем. Код себя одинаково ведет. Но в старых браузерах ущербная объектная модель документа. Вот ты юзаешь window.innerHeight. А в старых IE нет такого свойства.

У тя проблема не в этом. Во-первых, какого хрена ты напихал в код setInterval'ов? Их вообще не должно быть, это неправильный подход. Получается ты используешь что-то вроде "метода тыка". Еще ты почему-то боишься массивов. Вместо slides у тебя отдельно slide0, slide1 и т.д.
Почему ты меню выдвигаешь каждый пункт отдельно - неясно. Не проще ли задать -100% родителю?
Цитата:
автоматическое выравнивание слайдов (если застряли на пол экрана)
Это вообще порадовало. Это как вообще? Вот из-за твоих интервалов и появляется ненужная энтропия.

Изучай "классы". Вместо того чтобы раскидывать по всей страницы кучу переменных и функций для работы с ними, объединяй их по смыслу в группы - в объекты. Несколько свойств + методы для работы с ними. Допустим меню:

class Menu() {
    constructor(selector) {
        this.items = document.querySelector(selector).children;
        this.active = -1;
        this.setActive(0);
        this.setupListeners();
    }
    setActive(index) {
        this.active = index;
        this.items[index].classList.add('active');
    }
    setupListeners() {
        for (var i = 0; i < this.items; i++)
            this.items[i].onclick = this.setActive.bind(this, i); // ES5, не работает в старье
    }
}
var menu = new Menu('.menu');

menu.setActive(1);


Анимацию проще сделать на css3. В старье будет без анимации. Ну и че? Почти всегда старый браузер == старый комп == тормоза при анимации. Так что все справедливо.

Вот короче тебе заготовка: http://jsfiddle.net/danya_postfactum/z8cLa59g/
Только событие wheel не кроссбразерное. Нужны костыли для событий DOMMouseScroll (FF старый), mousewheel (chrome старый, ie8).
Работает во всех нормальных браузерах, в IE10+. Только меню я побыстрому отцентрировал через css3. Подключи classList.js с просторов инета и заработает в IE9. Подключи addEventListener.js и почти что заработает в IE8, правда без анимации.
__________________
В личку только с интересными предложениями

Последний раз редактировалось danik.js, 24.03.2015 в 09:03.
Ответить с цитированием
  #12 (permalink)  
Старый 26.03.2015, 20:42
Новичок на форуме
Отправить личное сообщение для YaroBest Посмотреть профиль Найти все сообщения от YaroBest
 
Регистрация: 21.03.2015
Сообщений: 8

да, не думал я когда за js садился что будет все так сложно, может это все ж не мое, хз, уже 4 месяца учу, а толку 0.

уж подумал тут на меня забили спасибо за инфу, буду разбираться...
Ответить с цитированием
  #13 (permalink)  
Старый 26.03.2015, 22:09
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от YaroBest
может это все ж не мое, хз, уже 4 месяца учу, а толку 0.
Не знаю, мне по коду показалось, что его написал понимающий человек. Да, новичек, да, неправильный подход, но для начала пойдет.

На старые браузеры не обращай внимания, их пора забывать уже. Изучи "классы" (конструкторы, прототипы) и события и будет проще.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #14 (permalink)  
Старый 26.03.2015, 22:11
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Насчет интервалом. Там они должны быть, верней setTimeout, а еще верней - requestAnimationFrame. Нужны для анимации, покадровой. У меня в коде ее нет, я использовал css3 анимацию.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #15 (permalink)  
Старый 27.03.2015, 06:36
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от YaroBest
вот собственно сайт: http://dropmefiles.com/4ZFtt
Сайт нормально работает, но берут сомнения что это ваш. Я его давно видел.

При чем тут яндекс-браузер? Такого браузера нет. Загляните в статистику сайта и увидите какие есть, а каких нет.
Ответить с цитированием
  #16 (permalink)  
Старый 27.03.2015, 14:08
Новичок на форуме
Отправить личное сообщение для YaroBest Посмотреть профиль Найти все сообщения от YaroBest
 
Регистрация: 21.03.2015
Сообщений: 8

Сообщение от kostyanet Посмотреть сообщение
Сайт нормально работает, но берут сомнения что это ваш. Я его давно видел.
идея создания такого сайта с background-video возникла задолго до того как я начал изучать первые html тэги
прокрутку я увидел здесь. отсюда же, собственно говоря, и динамические слайды. я хз как у них там все написано, я и сам вижу что с интервалами косячно вышло, но, имхо, для маленького сайтика с маленьким кол-вом посетителей для начала было бы норм, если бы не...

Сообщение от kostyanet Посмотреть сообщение
При чем тут яндекс-браузер? Такого браузера нет. Загляните в статистику сайта и увидите какие есть, а каких нет.
вот этот браузер я имел ввиду. он меня подводить начал... а ну и мозилла... и експлорер

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с радио кнопками px379 Общие вопросы Javascript 8 29.07.2013 09:30
Проблема с браузерами webkit gibigate Javascript под браузер 1 29.04.2011 02:27
Проблема с браузерами webkit gibigate jQuery 1 29.04.2011 02:27
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12