Вопрос

Я ставлю операторы if else, но не уверен, что пишу это правильно & # 8230; Попытка сделать так, чтобы, если измерение popupHeight больше измерения windowHeight, оно поместило бы его в верхнюю часть области просмотра + 10px & # 8230;

$("#data").load("/content/" + htmlName + ".html", null, function(){
    //Set Variables
    var container = $(".container");
    var project = $(".project");
    var popupWidth = container.find(".project img:first").width();
    var popupHeight = container.find(".project img:first").height()+35;
    var windowWidth = document.documentElement.clientWidth;
    var windowHeight = document.documentElement.clientHeight;
    var x = ($(window).width() / 2 - popupWidth / 2) + $(window).scrollLeft();
    var y = ($(window).height() / 2 - popupHeight / 2) + $(window).scrollTop();

    //Set popup dimensions
    container.css("width" , popupWidth);
    container.css("height" , popupHeight);

    //Set popup CSS
    container.css({"position": "absolute", "left": x + "px", "z-index": "2" });
    project.css({"width": (popupWidth), "height": (popupHeight) });

    //Determine Position
    if(popupHeight>windowHeight) {
        container.css{("top": $(window).scrollTop(); + 10 + "px") 
        }else{
        container.css({"top": y + "px"});
        return;
        }
});
Это было полезно?

Решение

Избавьтесь от точки с запятой после scrollTop () и поместите ее в конец строки -

container.css{("top": $(window).scrollTop(); + 10 + "px")

Должен выглядеть как -

container.css({"top": $(window).scrollTop() + 10 + "px"});

Ваша функция css также должна быть переформатирована. Она должна соответствовать приведенному выше.

Другие советы

Я никогда раньше не использовал jQuery, поэтому я могу ошибаться, но не точка с запятой в этой строке не в том месте?

container.css{("top": $(window).scrollTop(); + 10 + "px") 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top