Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将变量传递到.css以设置顶部和左侧位置_Javascript_Jquery_Css - Fatal编程技术网

Javascript 将变量传递到.css以设置顶部和左侧位置

Javascript 将变量传递到.css以设置顶部和左侧位置,javascript,jquery,css,Javascript,Jquery,Css,我知道这方面还有其他问题,但似乎没有一个解决方案适合我。我无法获取我的“顶部”和“左侧”位置来读取上面定义的变量(YOff,XOff)。它始终默认为0,0。任何帮助都将不胜感激。值得一提的是,我知道变量的计算是正确的,因为我提醒他们进行验证 $(document).ready(function(){ $('.marker').mouseover(function(e){ var location = $(this).attr("id"); var

我知道这方面还有其他问题,但似乎没有一个解决方案适合我。我无法获取我的“顶部”和“左侧”位置来读取上面定义的变量(YOff,XOff)。它始终默认为0,0。任何帮助都将不胜感激。值得一提的是,我知道变量的计算是正确的,因为我提醒他们进行验证

$(document).ready(function(){    
    $('.marker').mouseover(function(e){
        var location = $(this).attr("id");
        var offset_t = $(this).offset().top - $(window).scrollTop();
        var offset_l = $(this).offset().left - $(window).scrollLeft();

        var XOff = Math.round( (e.pageX - offset_l) );
        var YOff = Math.round( (e.pageY - offset_t) );

        $('.city').hide();
        $("#" + location + "-market")
        .show()
        .css({
            top: YOff, 
            left: XOff
        });

    });                
    $('.city').mouseleave(function(){
        $('.city').hide();
    }); 
});
关于我要做什么的一点细节。。。在地图(背景图片)上,当你将鼠标移到一个有绝对位置的城市(.marker)上时,我会看到一个div(#+位置+-市场)显示,其中包含该城市的一些信息。我想让那个部门靠近城市

$("#selector").css({"top":YOff+ "px","left":XOff+ "px","position": "absolute" });
请参见使用修改的小提琴进行操作:-

查看后,我将您的
.css()
函数更改为:

$("#" + location + "-market").show().offset({
    top: YOff, left: XOff
});
这使您的jquery文件如下所示:

$(document).ready(function(){ 
    $('.marker').mouseover(function (e) {
        var location = $(this).attr("id");
        var offset_t = $(this).offset().top - $(window).scrollTop();
        var offset_l = $(this).offset().left - $(window).scrollLeft();

        var XOff = Math.round((e.pageX - offset_l));
        var YOff = Math.round((e.pageY - offset_t));

        $('.city').hide();
        $("#" + location + "-market").show().offset({
            top: YOff, left: XOff
        });
    });

    $('.city').mouseleave(function () {
        $('.city').hide();
    });
});

小提琴。希望这能产生你想要的结果

只是一个简单的想法=你需要做
{“top”:YOff,“left”:XOff}
把左上角的属性加引号?注意“暴龙”的建议。如果仍然没有解析,请共享一个fiddle链接。需要引用带有连字符的css属性。我猜即使没有引号,top也可以工作。off应该是YOff+“px”,XOff应该是XOff+“px”,试试这个,而不是
。css({“top”:YOff+“px”,“left”:XOff+“px”})使用这个$(“#选择器”).css({“top”:YOff+“px”,“left”:XOff+“px”,“position”:“absolute”});由于某种原因,它在我的原始文件中不起作用。一定是我的css出了什么问题,但我看到它在小提琴上起作用。谢谢你的帮助!更新:这在我的文件中确实有效。我不知道你也改变了变量。再次感谢!