За последние 24 часа нас посетили 22660 программистов и 1015 роботов. Сейчас ищут 694 программиста ...

2 кусочка кода

Тема в разделе "JavaScript и AJAX", создана пользователем Неугомонный, 19 июн 2019.

  1. Неугомонный

    Неугомонный Активный пользователь

    С нами с:
    10 фев 2018
    Сообщения:
    192
    Симпатии:
    3
    В js вообще не шарю, хотел бы спросить у опытных код написан нормально 1 и 2?
    А то как-то скопировал вставил да работает а горький опыт подсказывает брать так просто с гугла .. в общем сомнения мучают что не знаю JS и код поставил на проект лайв o_O
    1
    Код (Javascript):
    1. <script>
    2.             $(function() {
    3.                 $(window).scroll(function() {
    4.                     if ($(window).scrollTop() >= 70) {
    5.                         $(".header").addClass('smaller');
    6.                     } else {
    7.                         $(".header").removeClass("smaller");
    8.                     }
    9.                 });
    10.             });
    11.         </script>
    2
    Код (Javascript):
    1. <script>
    2.             $(document).ready(function() {
    3.                 var playing = false;
    4.  
    5.                 $('button').click(function() {
    6.                     $(this).toggleClass("down");
    7.  
    8.                     if (playing == false) {
    9.                         document.getElementById('player').play();
    10.                         playing = true;
    11.                     } else {
    12.                         document.getElementById('player').pause();
    13.                         playing = false;
    14.                     }
    15.                 });
    16.             });
    17.         </script>
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Ничего криминального в этом коде нет. Да, можно оптимизировать, можно переписать без использования jQuery нативным JS, но на таком объёме можете не заморачиваться.
     
  3. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    P.S. Если будет нужно, то вот этот же код на чистом JS
    Код (Javascript):
    1. const header = document.querySelector('.header');
    2. window.addEventListener('scroll', e => {
    3.   header.classList[(window.pageYOffset || document.documentElement.scrollTop) >= 70 ? 'add' : 'remove']('smaller');
    4. });
    5.  
    6. document.querySelector('button').addEventListener('click', e => {
    7.   e.target.classList.toggle('down');
    8.   player[player.paused ? 'play' : 'pause']();
    9. });
     
    TeslaFeo нравится это.
  4. Неугомонный

    Неугомонный Активный пользователь

    С нами с:
    10 фев 2018
    Сообщения:
    192
    Симпатии:
    3
    Спасибо, за подсказки ))
    Хотел еще спросить 2 код нужно обернуть в $(function(){ или оставить лучше так как есть?
     
  5. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Код можно разместить в конце документа, где-нибудь перед закрывающим тегом </body> или же в <head>. В первом случае никаких дополнительных действий не нужно, а во втором - необходимо отложить выполнение до загрузки DOM и, соответственно, обернуть код нужно:
    Код (Javascript):
    1. // С использованием jQuery
    2. $(function(){
    3. });
    4. // или
    5. $(document).ready(function(){
    6. });
    7. // На нативном JS
    8. document.addEventListener( 'DOMContentLoaded', function() {
    9. }, false );
     
    Неугомонный нравится это.
  6. Неугомонный

    Неугомонный Активный пользователь

    С нами с:
    10 фев 2018
    Сообщения:
    192
    Симпатии:
    3
    Т.е если используется $(document).ready(function() { то в $(function() { уже оборачивать не нужно?
     
  7. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    @Неугомонный, $(function(){}); - это всего лишь укороченный вариант записи $(document).ready(function(){}); и естественно, что использовать одну внутри другой абсолютно бессмысленно.
     
    Неугомонный нравится это.
  8. Неугомонный

    Неугомонный Активный пользователь

    С нами с:
    10 фев 2018
    Сообщения:
    192
    Симпатии:
    3
    Спасибо.
    Код (Javascript):
    1. if ($(window).scrollTop() >= 70) {
    2.         $(".shapka").addClass('smaller');
    3.         $(".blockpodshapkoy").addClass('smaller');
    можно записать как-то так $(".shapka .blockpodshapkoy").addClass('smaller');, будет ли работать ?Ведь я использую один и тот же класс 'smaller для двух блоков
     
    #8 Неугомонный, 20 июн 2019
    Последнее редактирование: 20 июн 2019
  9. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    @Неугомонный учили бы вы javscript если хотите программировать:
    Код (Javascript):
    1. el.classList.add("foo") - добавление элементу класс "foo"
    2. el.classList.remove("bar") - удаление класса "bar"
    3. el.classList.toggle("foo") - переключение класса "foo"
    4. el.classList.contains("foo") -  возвращает "true" если у класса есть класс "foo"
    5. el.classList.add( "foo", "bar" ); - добавление нескольких классов
    или поучили jquery:
    Код (Javascript):
    1. $("#header") — получение элемента с id=«header»
    2. $(«h3») - получить все <h3> элементы
    3. $(«div#content .photo») - получить все элементы с классом =«photo» которые находятся в элементе div с id=«content»
    4. $(«ul li») - получить все <li> элементы из списка <ul>
    5. $(«ul li:first») - получить только первый элемент <li> из списка <ul>
    сколько у вас вопросов тут было, вы ничему и не научились.

    У вас вопросы из серии - можно скрестить жопу с писькой, нет, а вот ногу с носом, можно да, а если вот это сюда засунуть оно поедет.

    И толку вам от таких вопросов?
     
  10. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Можно записать любое количество селекторов через запятую. Т.е. ваш код будет иметь следующий вид:
    Код (Javascript):
    1. $(".shapka, .blockpodshapkoy").addClass('smaller');
    И вообще, к селекторам относитесь так же, как если бы вы работали с CSS. Принцип один и тот же.
     
    Неугомонный нравится это.
  11. Неугомонный

    Неугомонный Активный пользователь

    С нами с:
    10 фев 2018
    Сообщения:
    192
    Симпатии:
    3
    Спасибо
     
  12. Неугомонный

    Неугомонный Активный пользователь

    С нами с:
    10 фев 2018
    Сообщения:
    192
    Симпатии:
    3
    Я сообразил то что хотел с горем пополам осталось только добавить анимацию будет https://jsfiddle.net/gbu8eahw/