Javascript.RU

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

JS в отдельном файле
Здравствуйте. Я написал скрипт в html файле, который работал. Позже я решил его перенести в отдельный файл. Я устранил все ошибки, но он не работает. Возможно, я где-то неправильно объявил или обратился.

Вот код, который был в html файле:
<script>
            $(window).scroll(function () {
                "use strict";
                var element = $("#header"), display; 
                var element2 = $("#article").css({borderTopLeftRadius: 0, borderTopRightRadius: 0, borderBottomLeftRadius: 60, borderBottomRightRadius: 60 }); 
                display = $(window).scrollTop() < 200;
                display = element.css('opacity') && element.stop().animate({'opacity': display}, 500);
                
                if ($(window).scrollTop() < 200) {
                    element2.animate({'borderTopLeftRadius': 0, 'borderTopRightRadius': 0}, 200);
                } else {
                    element2.animate({'borderTopLeftRadius': 60, 'borderTopRightRadius': 60}, 200);
                }
            });
        </script>


Вот код, который у меня написан в файле .js:
(window).onscroll = function () {
    'use strict';
    var element = document.getElementById('header').css({opacity: 1}),
        element2 = document.getElementById('article').css({borderTopLeftRadius: 0, borderTopRightRadius: 0, borderBottomLeftRadius: 60, borderBottomRightRadius: 60});
    
    if (window.scrollY() < 200) {
        element.animate({'opacity': 1}, 500);
        element2.animate({'borderTopLeftRadius': 0, 'borderTopRightRadius': 0}, 200);
    } else {
        element.animate({'opacity': 0}, 500);
        element2.animate({'borderTopLeftRadius': 60, 'borderTopRightRadius': 60}, 200);
    }
};


Может кто показать мне мою ошибку? Буду очень благодарен.

Последний раз редактировалось rankery, 06.02.2016 в 20:20.
Ответить с цитированием
  #2 (permalink)  
Старый 06.02.2016, 20:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

rankery,
вы написали свою библиотеку для css, animate и прочего?
Ответить с цитированием
  #3 (permalink)  
Старый 06.02.2016, 22:07
Новичок на форуме
Отправить личное сообщение для rankery Посмотреть профиль Найти все сообщения от rankery
 
Регистрация: 06.02.2016
Сообщений: 4

Я написал функцию, которая запускается при скроле страницы. Она меняет стили элементов сайта если опустить ниже на определенное значение. Та, что выше, находилась в head html файла (работает). При попытки перенести ее в отдельный файл пришлось кое-что поменять, но работать она перестала. Возможно, я что-то неправильно записал там. На данный момент сама функция вызывается, но действия никакие не производятся.
Ответить с цитированием
  #4 (permalink)  
Старый 06.02.2016, 22:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

rankery,
зачем что-то менять если оно работает,
Сообщение от rankery
document.getElementById('header').css
так писать очень неправильно
Ответить с цитированием
  #5 (permalink)  
Старый 06.02.2016, 22:23
Интересующийся
Отправить личное сообщение для arnoldson Посмотреть профиль Найти все сообщения от arnoldson
 
Регистрация: 09.01.2016
Сообщений: 10

попробуй var element = document.getElementById('header').css({opacity: 1}),
в конце поставить ; вместо ,
Ответить с цитированием
  #6 (permalink)  
Старый 06.02.2016, 22:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

arnoldson,
тоесть это нормально что у элемента вдруг появилось свойство css?
Ответить с цитированием
  #7 (permalink)  
Старый 06.02.2016, 22:50
Новичок на форуме
Отправить личное сообщение для rankery Посмотреть профиль Найти все сообщения от rankery
 
Регистрация: 06.02.2016
Сообщений: 4

Сообщение от рони Посмотреть сообщение
rankery,
зачем что-то менять если оно работает, так писать очень неправильно
Работает только такой скрипт в html файле. Но так как скрипт будет не один, то я посчитал нужным перенести его в отдельный файл. Я не уверен, что в отдельном файле "document.getElementById('header').css.." будет работать, но в html файле работал "var element = $("#header").css({opacity: 1});", так что я попытался перенести его в отдельный файл примерно так же. Возможно там надо "window.$('#header').css.." или другой вариант.
Ответить с цитированием
  #8 (permalink)  
Старый 06.02.2016, 22:51
Новичок на форуме
Отправить личное сообщение для rankery Посмотреть профиль Найти все сообщения от rankery
 
Регистрация: 06.02.2016
Сообщений: 4

Сообщение от arnoldson Посмотреть сообщение
попробуй var element = document.getElementById('header').css({opacity: 1}),
в конце поставить ; вместо ,
У меня перечисление: для одного var`а два объекта.
Ответить с цитированием
  #9 (permalink)  
Старый 11.02.2016, 12:14
Новичок на форуме
Отправить личное сообщение для polecat Посмотреть профиль Найти все сообщения от polecat
 
Регистрация: 19.02.2015
Сообщений: 8

Это же jQuery?
Вы в файле значёк $ не потеряли?

А, хотя туплю.
В файле просто JS.
Или таки нет?

Меня смущает запись document.getElementById('header').css({opacity: 1})
Емнип, в JS это должно выглядеть как-то так:
document.getElementById('header').style.opacity = "1";

А вот это:
element2.animate({'borderTopLeftRadius': 0, 'borderTopRightRadius': 0}, 200);
вообще без jQuery не должно работать.

Или я чересчур дремучий, или у вас там смесь какая-то.

Последний раз редактировалось polecat, 11.02.2016 в 17:47.
Ответить с цитированием
  #10 (permalink)  
Старый 13.02.2016, 00:51
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

Я решал такое просто, возвращаещся в работающий вариант и переносиш по отдельности функции. От джери конечно, лучше отказаться, неужели ещё не понятно что зто вообще прикол. Не смотрел что у тебя, но что я у себя впихивал, заменилось тремя словами.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вакансия JavaScript разработчик / JS / Frontend developer (Санкт-Петербург) Сергей Грачёв Работа 0 21.09.2015 12:31
Пример тестовых заданий на js junior elshaarawy Учебные материалы 3 26.03.2015 15:17
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
назначить событие в js файле toglyatty.ru Общие вопросы Javascript 2 10.02.2011 09:29