Ответы пользователя по тегу JavaScript
  • Как подсветить активную якорную ссылку?

    creativeworm
    @creativeworm
    function scroll_active() {
    
            /* вычисляем значения прокрутки страницы по вертикали */
    
            var window_top = $(window).scrollTop();
    
            /* вычисляем положение якорей на странице от начала страницы  по вертикали*/
    
            var menu_top = $('a[name="menu"]').offset().top -10;
    
            var gallery_top = $('a[name="gallery"]').offset().top -10;
    
            /* раздел «Контакты»  у меня на странице расположен самым последним разделом, и небольшой, поэтому если контаты уже отобразались на странице, тогда  активирую пункт меню «Контакты»  */
    
            var contacts_top = $('a[name="contacts"]').offset().top -  $(window).height() + 180;
    
            /* Переключатель активного пункта меню в зависимости от положения на странице, условии написаны от последнего якоря на странице, до первого */
    
            /* если на экране отображаются раздел «Контакты»*/
    
            if (window_top > contacts_top) {
    
                    $(".main_menu li").removeClass("active");
    
                    $('a[href="#contacts"]').parent().addClass("active");
    
                    }
    
            /* если не отображается раздел «Контакты», но страницу прокрутили  ниже якоря третьего раздела*/
    
            else if (window_top > gallery_top) {
    
                    $(".main_menu li").removeClass("active");
    
                    $('a[href="#gallery"]').parent().addClass("active");
    
                    }
    
            /* если выше третьего, но ниже якоря второго раздела*/
    
            else if (window_top > menu_top) {
    
                    $(".main_menu li").removeClass("active");
    
                    $('a[href="#menu"]').parent().addClass("active");
    
                    }
    
            /* если не подходят условия предыдущие активируем первый пункт меню*/
    
            else {
    
                    $(".main_menu li").removeClass("active");
    
                    $('a[href="#page_top"]').parent().addClass("active");
    
                    }
    
    }
    
    jQuery(function()
    
    {
    
            jQuery(window).scroll(scroll_active);
    
    });
    Ответ написан
    3 комментария
  • Как изменять цвета на картинке?

    creativeworm
    @creativeworm
    можно использовать GD PHP для этих целей для склейки картинки потолка и фото комнаты.
    Ответ написан
  • Как узнать, когда пользователь зашёл на страницу в первый раз?

    creativeworm
    @creativeworm
    Flash-cookie
    Подробнее на help.yandex.ru
    Ответ написан
    Комментировать
  • Почему не работает JQuery скрипт на bitrix?

    creativeworm
    @creativeworm
    Возможно, что конфликтует $ и jQuery. Где-то используется jQuery, а вы используете сокращенную запись. Попробуйте поменять $ на jQuery.
    Ответ написан
    2 комментария
  • Autocomplete и большое количество элементов. Как работает?

    creativeworm
    @creativeworm
    На одном из моих проектов более 500 000 строк. Никаких тормозов не замечаю.
    Работает через ajax запрос. Главное написать верно обработчик. У меня используется "кеширование" обработчика.
    Ответ написан
    Комментировать
  • Как посмотреть ошибки javascript в google chrome?

    creativeworm
    @creativeworm
    Я думаю это то, что Вам нужно: Отладка JavaScript
    Ответ написан
    Комментировать
  • Как сделать закрытие PopUp при клике по фону?

    creativeworm
    @creativeworm
    Маску нужно сделать отдельным дивом (пустым, только со стилями).
    Окно абсолютно позиционируем и поднимаем над маской.
    Тогда сработает так:
    $('<класс или id маски>').click(function () { <скрываем маску и поп-ап> });


    В спойлере вариант есть. Переподключите jquery и все.
    Реализовано центрирование pop-up, маска и то, в чем у Вас проблема.

    Вполне работающий вариант
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Демо</title>
    <style>
    body {
    font-family:verdana;
    font-size:15px;
    }
    
    a {color:#333; text-decoration:none}
    a:hover {color:#ccc; text-decoration:none}
    
    #mask {
      position:absolute;
      left:0;
      top:0;
      z-index:9000;
      background-color:#000;
      display:none;
    }
      
    #boxes .window {
      position:absolute;
      left:0;
      top:0;
      width:440px;
      height:200px;
      display:none;
      z-index:9999;
      padding:20px;
    }
    
    #boxes #dialog {
      width:375px; 
      height:203px;
      padding:10px;
      background-color:#ffffff;
    }
    
    #boxes #dialog1 {
      width:375px; 
      height:203px;
    }
    
    #dialog1 .d-header {
      background:url(images/login-header.png) no-repeat 0 0 transparent; 
      width:375px; 
      height:150px;
    }
    
    #dialog1 .d-header input {
      position:relative;
      top:60px;
      left:100px;
      border:3px solid #cccccc;
      height:22px;
      width:200px;
      font-size:15px;
      padding:5px;
      margin-top:4px;
    }
    
    #dialog1 .d-blank {
      float:left;
      background:url(images/login-blank.png) no-repeat 0 0 transparent; 
      width:267px; 
      height:53px;
    }
    
    #dialog1 .d-login {
      float:left;
      width:108px; 
      height:53px;
    }
    
    #boxes #dialog2 {
      background:url(images/notice.png) no-repeat 0 0 transparent; 
      width:326px; 
      height:229px;
      padding:50px 0 20px 25px;
    }
    </style>
    
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
    <script>
    
    $(document).ready(function() {	
    
    	//select all the a tag with name equal to modal
    	$('a[name=modal]').click(function(e) {
    		//Cancel the link behavior
    		e.preventDefault();
    		//Get the A tag
    		var id = $(this).attr('href');
    	
    		//Get the screen height and width
    		var maskHeight = $(document).height();
    		var maskWidth = $(window).width();
    	
    		//Set heigth and width to mask to fill up the whole screen
    		$('#mask').css({'width':maskWidth,'height':maskHeight});
    		
    		//transition effect		
    		$('#mask').fadeIn(1000);	
    		$('#mask').fadeTo("slow",0.8);	
    	
    		//Get the window height and width
    		var winH = $(window).height();
    		var winW = $(window).width();
                  
    		//Set the popup window to center
    		$(id).css('top',  winH/2-$(id).height()/2);
    		$(id).css('left', winW/2-$(id).width()/2);
    	
    		//transition effect
    		$(id).fadeIn(2000); 
    	
    	});
    	
    	//if close button is clicked
    	$('.window .close').click(function (e) {
    		//Cancel the link behavior
    		e.preventDefault();
    		$('#mask, .window').hide();
    	});		
    	
    	//if mask is clicked
    	$('#mask').click(function () {
    		$(this).hide();
    		$('.window').hide();
    	});			
    	
    });
    
    </script>
    
    
    </head>
    
    <body>
    <ul>
    <li><a href="#dialog" name="modal">Простое модальное окно</a></li>
    <li><a href="#dialog1" name="modal">Форма для логина</a></li>
    <li><a href="#dialog2" name="modal">Красивая липучка</a></li>
    </ul>
    
    
    <div id="boxes">
    
    <div id="dialog" class="window">
    
    Простое модальное окно | 
    <a href="#"class="close"/>Закрыть его</a>
    </div>
      
    <!-- НАчало формы логина -->  
    <div id="dialog1" class="window">
      <div class="d-header">
        <input type="text" value="username" onclick="this.value=''"/><br/>
        <input type="password" value="Password" onclick="this.value=''"/>    
      </div>
      <div class="d-blank"></div>
      <div class="d-login"><input type="image" alt="Login" title="Login" src="images/login-button.png"/></div>
    
    </div>
    <!-- конец -->  
    
    
    
    <!-- Начало красивого стикера -->
    <div id="dialog2" class="window">
      Вот так все красиво!! <b>Ruseller.com</b> - всегда только лучшая информация<br/><br/>
    <input type="button" value="НУ НАЖМИТЕ МЕНЯ!!!" class="close"/>
    </div>
    <!-- конец -->
    
    
    
    <!-- Макска, которая затемняет весь экран -->
      <div id="mask"></div>
    
    </div></body>
    </html>
    </spoiler>
    Ответ написан
    8 комментариев
  • Как организовать автоматический просчет на странице корзины?

    creativeworm
    @creativeworm
    Скорее всего будет разумно использовать jQuery.
    "Вешаем" события на изменение поля input или нажатие на - или +.
    Например
    $('<класс плюса и минуса>').click(function () { <отправляем данные ajax-ом, получаем и пишем в итого> });
    Ответ написан
    Комментировать