[JavaScript, AJAX] Задай вопрос, получи ответ

Discussion in 'PHP' started by banned, 9 Jun 2007.

Thread Status:
Not open for further replies.
  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    вроде понял, спасибо

    а как бы это сделать на голом яваскрипте?

    document.querySelector() поймет "body :not(#id_div)" ?
     
    #3101 Дикс, 27 Aug 2011
    Last edited: 27 Aug 2011
  2. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    нет не поймет. просто подключите jquery. и напишите
    <script type="text/javascript">
    $(function() {
    $("body :not(#id_div)).bind("click",funсtion () {$("#id_div").hide();});
    });
    </script>
    на голом дольше .
     
  3. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    не получается

    у меня слева меню, в нем есть иконки
    при щелчке по иконке должно появляться меню
    при щелчке в любом месте, кроме самого меню - исчезать

    сейчас имею вот это:

    $(document).ready(function() {

    $(":not(img)").bind("click", function(){

    if($('#menuBlock').is(":visible"))
    //$('#menuBlock').hide()
    alert(111)
    });

    });

    в результате когда жму по картинке, получаю пять алертов, потом появляется меню
    после этого, щелчок в любом месте, включая само меню, также вызывает этот callback

    запутался в селекторах
     
  4. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    HTML:
    <script type="text/javascript">
    $(function() {
    $("img").bind("click",funсtion () {$("#menuBlock").show();});
    
    $("body :not(#menuBlock) :not(img)).bind("click",funсtion () {$("#menuBlock").hide();});
    });
    </script>
    в css
    HTML:
    #menuBlock {display:none;}
    $(function) тоже самое что $(document.ready)
    лучше все содержимае страницы положить в отдельный div который на всю страницу скажем <div id="content"> и сделать так
    HTML:
    <script type="text/javascript">
    $(function() {
    $("img").bind("click",funсtion () {$("#menuBlock").show();});
    
    $("#content :not(#menuBlock) :not(img)).bind("click",funсtion () {$("#menuBlock").hide();});
    });
    </script>
     
    #3104 barnaki, 27 Aug 2011
    Last edited: 27 Aug 2011
    2 people like this.
  5. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    большое спасибо!
     
  6. emmy

    emmy Member

    Joined:
    12 Oct 2009
    Messages:
    76
    Likes Received:
    17
    Reputations:
    8
    тока надо не забывать что так памяти выделится почти во столько же раз больше, сколько там вложенных элементов

    например на античате порядка тысячи так что и памяти потратится в тысячу раз больше

    надо подписывать только одну функцию на документ а не на каждый элемент внутри документа / body / #content

    чтобы понять как это работает ищите типа event bubbling
     
  7. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    ну так оптимизируйте мой скрипт. или предложите свое решение. давайте вместе докопаемся до истины
     
  8. emmy

    emmy Member

    Joined:
    12 Oct 2009
    Messages:
    76
    Likes Received:
    17
    Reputations:
    8
    у меня в предыдущем сообщении указана
    проблема
    что сделать чтобы ее решить
    и что искать чтобы узнать а как оно работает

    осталось только код напечатать или наити
    теперь вам придется выполнять вашу часть совместного докопывания до истины
    нельзя постоянно ждать готового и называть это совместным

    можно просто забить пусть кушает память и тормозит
     
  9. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    если сделать так ?

    HTML:
    <script type="text/javascript">
     $(function() { $(img).bind("click",funсtion () {$("#menuBlock").show();}); 
    $(window.document).not(#menuBlock).not(img)).bind("click",funсtion () {$("#menuBlock").hide();}); }); 
    </script>
    все будет нормально ?
     
  10. Gvidion

    Gvidion Elder - Старейшина

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    Расскажите, пожалуйста, что делает данная функция, вплоть до каждой функции в ней.

    PHP:
    function f_print(Str) {
       var 
    div1 document.getElementById("div1");
       
    div1.innerHTML += Str "<br>";
    }
     
  11. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    Gvidion
    строчка 1: запоминает элемент с id div1 как объект в переменную div1
    строчка 2: к содержимому div1 (<div id='div1'>[содержимое]</div>) содержимое переменной Str и строку "<br>"
     
  12. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    есть html страничка на хостинге, нужно сделать чтоб при посещении с мобильного устройства, на нём открылась другая, (мобильная версия)
    подскажите как реализовать [​IMG]
     
  13. skrutcher

    skrutcher New Member

    Joined:
    17 Jul 2011
    Messages:
    17
    Likes Received:
    1
    Reputations:
    0
    Как помню user agent выдаёт мобильное устройство.
     
  14. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    Подскажите как реализовать такую плавующую ссылку, когда страницу прокручиваешь:
    [​IMG]
     
  15. ZeV$

    ZeV$ Elder - Старейшина

    Joined:
    7 Feb 2006
    Messages:
    40
    Likes Received:
    10
    Reputations:
    3
    Gain

    приблизительно так, если в лоб:

    PHP:
    <script>
    function 
    getBodyScrollTop(){ //эта функция возвращает положение скроллбара
      
    return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
    }

    function 
    checkScroll(){ //эта функция проверяет нужно ли показать или спрятать тот самый див
    var scrolled getBodyScrollTop(); //берем сколько проскроллили

    if (scrolled>500)  //если проскроллили больше 500px
        
    document.getElementById('floatingDiv').style.display 'block'//показываем
    else
        
    document.getElementById('floatingDiv').style.display 'none'//прячем
    }
    setInterval(check1000); // ставим таймер, проверяем раз в секунду нужно ли показывать. наверное, можно как-то поизящнее )
    </script>

    а это тот самый div
    PHP:
    <div id='floatingDiv' style='width:50px; height: 25px; position: fixed; display: none; float: left; top:10px; left: 5px; 
    background-color: #eee;'
    >Назад!</div>
     
    1 person likes this.
  16. CheatXX

    CheatXX New Member

    Joined:
    8 Jun 2009
    Messages:
    154
    Likes Received:
    2
    Reputations:
    0
    подскажите как сделать появление текста при прокрутке вниз.... тоесть как в поиске вконтакта, когда доходишь до низа страницы то появляются следующие результаты
     
  17. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    ZeV$, ты проктолог :))

    в css - position: fixed; top: 20px; left: 20px;
     
  18. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    есть скрипт, нужно его переделать на скролл вниз, что где нужно поменять в параметрах ?
    PHP:
    /*
     * jQuery EasIng v1.1.2 - http://gsgd.co.uk/sandbox/jquery.easIng.php
     *
     * Uses the built In easIng capabilities added In jQuery 1.1
     * to offer multiple easIng options
     *
     * Copyright (c) 2007 George Smith
     * Licensed under the MIT License:
     *   http://www.opensource.org/licenses/mit-license.php
     */

    // t: current time, b: begInnIng value, c: change In value, d: duration

    jQuery.extendjQuery.easing,
    {
        
    easeInQuad: function (xtbcd) {
            return 
    c*(t/=d)*b;
        },
        
    easeOutQuad: function (xtbcd) {
            return -
    *(t/=d)*(t-2) + b;
        },
        
    easeInOutQuad: function (xtbcd) {
            if ((
    t/=d/2) < 1) return c/2*t*b;
            return -
    c/* ((--t)*(t-2) - 1) + b;
        },
        
    easeInCubic: function (xtbcd) {
            return 
    c*(t/=d)*t*b;
        },
        
    easeOutCubic: function (xtbcd) {
            return 
    c*((t=t/d-1)*t*1) + b;
        },
        
    easeInOutCubic: function (xtbcd) {
            if ((
    t/=d/2) < 1) return c/2*t*t*b;
            return 
    c/2*((t-=2)*t*2) + b;
        },
        
    easeInQuart: function (xtbcd) {
            return 
    c*(t/=d)*t*t*b;
        },
        
    easeOutQuart: function (xtbcd) {
            return -
    * ((t=t/d-1)*t*t*1) + b;
        },
        
    easeInOutQuart: function (xtbcd) {
            if ((
    t/=d/2) < 1) return c/2*t*t*t*b;
            return -
    c/* ((t-=2)*t*t*2) + b;
        },
        
    easeInQuint: function (xtbcd) {
            return 
    c*(t/=d)*t*t*t*b;
        },
        
    easeOutQuint: function (xtbcd) {
            return 
    c*((t=t/d-1)*t*t*t*1) + b;
        },
        
    easeInOutQuint: function (xtbcd) {
            if ((
    t/=d/2) < 1) return c/2*t*t*t*t*b;
            return 
    c/2*((t-=2)*t*t*t*2) + b;
        },
        
    easeInSine: function (xtbcd) {
            return -
    Math.cos(t/* (Math.PI/2)) + b;
        },
        
    easeOutSine: function (xtbcd) {
            return 
    Math.sin(t/* (Math.PI/2)) + b;
        },
        
    easeInOutSine: function (xtbcd) {
            return -
    c/* (Math.cos(Math.PI*t/d) - 1) + b;
        },
        
    easeInExpo: function (xtbcd) {
            return (
    t==0) ? Math.pow(210 * (t/1)) + b;
        },
        
    easeOutExpo: function (xtbcd) {
            return (
    t==d) ? b+* (-Math.pow(2, -10 t/d) + 1) + b;
        },
        
    easeInOutExpo: function (xtbcd) {
            if (
    t==0) return b;
            if (
    t==d) return b+c;
            if ((
    t/=d/2) < 1) return c/Math.pow(210 * (1)) + b;
            return 
    c/* (-Math.pow(2, -10 * --t) + 2) + b;
        },
        
    easeInCirc: function (xtbcd) {
            return -
    * (Math.sqrt(- (t/=d)*t) - 1) + b;
        },
        
    easeOutCirc: function (xtbcd) {
            return 
    Math.sqrt(- (t=t/d-1)*t) + b;
        },
        
    easeInOutCirc: function (xtbcd) {
            if ((
    t/=d/2) < 1) return -c/* (Math.sqrt(t*t) - 1) + b;
            return 
    c/* (Math.sqrt(- (t-=2)*t) + 1) + b;
        },
        
    easeInElastic: function (xtbcd) {
            var 
    s=1.70158;var p=0;var a=c;
            if (
    t==0) return b;  if ((t/=d)==1) return b+c;  if (!pp=d*.3;
            if (
    Math.abs(c)) { a=c; var s=p/4; }
            else var 
    p/(2*Math.PI) * Math.asin (c/a);
            return -(
    a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/)) + b;
        },
        
    easeOutElastic: function (xtbcd) {
            var 
    s=1.70158;var p=0;var a=c;
            if (
    t==0) return b;  if ((t/=d)==1) return b+c;  if (!pp=d*.3;
            if (
    Math.abs(c)) { a=c; var s=p/4; }
            else var 
    p/(2*Math.PI) * Math.asin (c/a);
            return 
    a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/) + b;
        },
        
    easeInOutElastic: function (xtbcd) {
            var 
    s=1.70158;var p=0;var a=c;
            if (
    t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!pp=d*(.3*1.5);
            if (
    Math.abs(c)) { a=c; var s=p/4; }
            else var 
    p/(2*Math.PI) * Math.asin (c/a);
            if (
    1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/)) + b;
            return 
    a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/)*.5 b;
        },
        
    easeInBack: function (xtbcds) {
            if (
    == undefined1.70158;
            return 
    c*(t/=d)*t*((s+1)*s) + b;
        },
        
    easeOutBack: function (xtbcds) {
            if (
    == undefined1.70158;
            return 
    c*((t=t/d-1)*t*((s+1)*s) + 1) + b;
        },
        
    easeInOutBack: function (xtbcds) {
            if (
    == undefined1.70158
            if ((
    t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*s)) + b;
            return 
    c/2*((t-=2)*t*(((s*=(1.525))+1)*s) + 2) + b;
        },
        
    easeInBounce: function (xtbcd) {
            return 
    jQuery.easing.easeOutBounce (xd-t0cd) + b;
        },
        
    easeOutBounce: function (xtbcd) {
            if ((
    t/=d) < (1/2.75)) {
                return 
    c*(7.5625*t*t) + b;
            } else if (
    < (2/2.75)) {
                return 
    c*(7.5625*(t-=(1.5/2.75))*.75) + b;
            } else if (
    < (2.5/2.75)) {
                return 
    c*(7.5625*(t-=(2.25/2.75))*.9375) + b;
            } else {
                return 
    c*(7.5625*(t-=(2.625/2.75))*.984375) + b;
            }
        },
        
    easeInOutBounce: function (xtbcd) {
            if (
    d/2) return jQuery.easing.easeInBounce (xt*20cd) * .5 b;
            return 
    jQuery.easing.easeOutBounce (xt*2-d0cd) * .5 c*.5 b;
        }
    });


    /*
    |--------------------------------------------------------------------------
    | UItoTop jQuery Plugin 1.1
    | http://www.mattvarone.com/web-design/uitotop-jquery-plugin/
    |--------------------------------------------------------------------------
    */

    (function($){
        $.
    fn.UItoTop = function(options) {

             var 
    defaults = {
                
    text'To Top',
                
    min200,
                
    inDelay:600,
                
    outDelay:400,
                  
    containerID'w2btoTop',
                
    containerHoverID'w2btoTopHover',
                
    scrollSpeed1200,
                
    easingType'linear'
             
    };

             var 
    settings = $.extend(defaultsoptions);
            var 
    containerIDhash '#' settings.containerID;
            var 
    containerHoverIDHash '#'+settings.containerHoverID;
            
            $(
    'body').append('<a href="#" id="'+settings.containerID+'">'+settings.text+'</a>');
            $(
    containerIDhash).hide().click(function(){
                $(
    'html, body').animate({scrollTop:0}, settings.scrollSpeedsettings.easingType);
                $(
    '#'+settings.containerHoverIDthis).stop().animate({'opacity'}, settings.inDelaysettings.easingType);
                return 
    false;
            })
            .
    prepend('<span id="'+settings.containerHoverID+'"></span>')
            .
    hover(function() {
                    $(
    containerHoverIDHashthis).stop().animate({
                        
    'opacity'1
                    
    }, 600'linear');
                }, function() { 
                    $(
    containerHoverIDHashthis).stop().animate({
                        
    'opacity'0
                    
    }, 700'linear');
                });
                        
            $(
    window).scroll(function() {
                var 
    sd = $(window).scrollTop();
                if(
    typeof document.body.style.maxHeight === "undefined") {
                    $(
    containerIDhash).css({
                        
    'position''absolute',
                        
    'top': $(window).scrollTop() + $(window).height() - 50
                    
    });
                }
                if ( 
    sd settings.min 
                    $(
    containerIDhash).fadeIn(settings.inDelay);
                else 
                    $(
    containerIDhash).fadeOut(settings.Outdelay);
            });

    };
    })(
    jQuery);
     
  19. #Wolf#

    #Wolf# Elder - Старейшина

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    http://www.simplecoding.org/javascript-vidzhet-beskonechnaya-zagruzka-tvitov.html
     
  20. vicik_SH

    vicik_SH New Member

    Joined:
    8 May 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте!
    Помогите сделать интеграцию чата cbox непосредственно для ВК что бы общаясь в этом чате выводилось имя, авка из ВК

    Сам чат

    вот код интеграции (уже присутствует в чате что выше)

    как я понял нужно написать ещё API запрос и вместо этого что выше код заменить.
     
Thread Status:
Not open for further replies.