Ответы пользователя по тегу JavaScript
  • Как заставить подменю работать (при hover) если между меню и модменю есть margin?

    Alexanevsky
    @Alexanevsky
    Любительская web-разработка
    А почему бы просто не обернуть подменю в дополнительный контейнер, которому указать padding-top: 10px;

    jsfiddle.net/Lashchevsky/ge824sjp/1
    Ответ написан
    Комментировать
  • Как передать скрытые поля в другую форму на сайте?

    Alexanevsky
    @Alexanevsky
    Любительская web-разработка
    Вот вам пример. У Вас есть два инпута.
    <input class="from" value="Отсюда копируем текст">
    <input class="to" value="Сюда копируем текст">
    Один видимый, куда пользователь вводит слово, другой невидимый, который находится во всплывающем окне. Вам туда надо скопировать фразу. Делайте так:
    $('.from').keyup(function() {
    	$('.to').val( $(this).val() );
    });
    И при каждом нажатии на клавишу инфа из этого поля будет копироваться в невидимое.
    Если хотите, можете заменить keyup на focusout или ещё что-нибудь...

    Да, и у Вас не работает выбор цвета (Google Chrome OS X).
    Ответ написан
  • Как изменить код анимации при скроллинге?

    Alexanevsky
    @Alexanevsky
    Любительская web-разработка
    Можно попробовать вот такой код:
    $(document).ready(function(){
    
    	var $block = $(".XXXXXX");
    
    	$(window).scroll(function(){
    		if ( $(this).scrollTop() > ZZZ ){
    			$block.addClass("YYYYYY");
    		} 
    	});
    });


    Данный код добавляет блоку XXXXXX класс YYYYYY при скролле ZZZ пикселей. Т.е. если пользователь проскроллил ZZZ пикселей от верха страницы, YYYYYY добавится для XXXXXX. YYYYYY может послужить инициатором анимации.

    Т.е. есть блок XXXXXX.
    Анимация для этого блока забиндена на класс YYYYYY.
    Если пользователь проскроллил ZZZ - она активируется. Если нужно активировать сразу (т.е. даже если палец хоть немного передвинул колёсико мышки), то вместо ZZZ поставьте 1.

    А вообще киньте полностью Ваш код, посмотрим, если сами не разберётесь.

    Пример.

    И чего Вам не спится в 8 часов утра в выходной день?
    Ответ написан
  • Как реализовать плавную смену background с наплывом?

    Alexanevsky
    @Alexanevsky
    Любительская web-разработка
    Либо используйте CSS:
    body {transition: background .15s linear;}

    Либо JS:
    $(body).animate();

    При необходимости поэтапной смены фона, т.е. сначала одно, потом второе, потом третье -Вам CSS уже особо не поможет. Самый простой вариант будет такой:
    $(body).animate();
    
    // Ждём 500 милисек и делаем новые эффекты
    $(body).delay(500).animate(); 
    
    // Ждём ещё 500 милисек и делаем новые эффекты
    $(body).delay(500).animate();
    Ответ написан
    2 комментария
  • Почему форма не работает из выезжающего окна?

    Alexanevsky
    @Alexanevsky
    Любительская web-разработка
    Как вариант не запихивайте её в ajax, а просто поставьте на странице и в position absolute.
    Ответ написан
    Комментировать
  • Как сделать автоматическую конвертацию валюты относительно рубля?

    Alexanevsky
    @Alexanevsky Автор вопроса
    Любительская web-разработка
    Большое спасибо @EnterSandman и @Taraflex за подсказки. Проблему я решил следующим образом:

    Создаём PHP файл-парсер курса валют:
    <?php 
     $content = get_content(); 
     $pattern = "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i"; 
     preg_match_all($pattern, $content, $out, PREG_SET_ORDER); 
     
     $usd = ""; 
     $eur = ""; 
     $byr = ""; 
     $uah = ""; 
     $kzt = ""; 
    
     foreach($out as $cur) 
     
     { 
       if($cur[2] == 840) $usd  = str_replace(",",".",$cur[4]); 
       if($cur[2] == 978) $eur   = str_replace(",",".",$cur[4]); 
       if($cur[2] == 974) $byr   = str_replace(",",".",$cur[4]); 
       if($cur[2] == 980) $uah   = str_replace(",",".",$cur[4]); 
       if($cur[2] == 398) $kzt   = str_replace(",",".",$cur[4]); 
     } 
    
     echo "<span id=\"bank-usd\">".$usd."</span> <span id=\"bank-eur\">".$eur."</span> <span id=\"bank-byr\">".$byr."</span> <span id=\"bank-uah\">".$uah."</span> <span id=\"bank-kzt\">".$kzt."</span>"; 
     
     function get_content() 
    
     { 
       $link = "http://www.cbr.ru/scripts/XML_daily.asp"; 
       $fd = fopen($link, "r"); 
       $text=""; 
       echo "";
       while (!feof ($fd)) $text .= fgets($fd, 4096); 
       fclose ($fd); 
       return $text; 
     }
    
    ?>
    В любом месте HTML документа вставляем загрузку этого файла, а всё его содержимое оборачиваем в display: none.

    Создаём JS файл, обрабатывающий курсы валют и конвертирующий нашу 1000 рублей в каждую из них:
    var rub = 1000;
    var bankUSD = document.getElementById('bank-usd').innerText;
    var bankEUR = document.getElementById('bank-eur').innerText;
    var bankBYR = document.getElementById('bank-byr').innerText;
    var bankUAH = document.getElementById('bank-uah').innerText;
    var bankKZT = document.getElementById('bank-kzt').innerText;
    
    document.getElementById('rub').innerHTML = rub;
    document.getElementById('usd').innerHTML = (rub/bankUSD).toFixed(2);
    document.getElementById('eur').innerHTML = (rub/bankEUR).toFixed(2);
    document.getElementById('byr').innerHTML = (10000*rub/bankBYR).toFixed(0);
    document.getElementById('uah').innerHTML = (10*rub/bankUAH).toFixed(1);
    document.getElementById('kzt').innerHTML = (100*rub/bankKZT).toFixed(0);
    Для белорусской, казахской и украинской валют пришлось добавить ещё несколько нулей для корректного вывода.

    И в любом удобном месте, где нам требуется, выводим:
    <span id="rub"></span> рублей
    <span id="byr"></span> рублей
    <span id="uah"></span> гривен
    <span id="kzt"></span> тенге
    <span id="usd"></span> долларов
    <span id="eur"></span> евро
    Ответ написан
    5 комментариев