首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将div放在页面外部捕获的坐标上

将div放在页面外部捕获的坐标上
EN

Stack Overflow用户
提问于 2012-10-20 15:11:46
回答 1查看 121关注 0票数 0

我有一个主div,在里面我试图在鼠标点击时捕获的坐标上显示另一个小div。问题是,当我点击最左边、最右边、最上面、最下面的时候,小的div会移到主div之外。我已经在main div上尝试过overflow:hidden,但我不想那样做。我想让div放在主div里面,不管我在哪里点击。示例代码:

代码语言:javascript
复制
$(document).ready(function() {
    $("#main_div").bind('click', function(event){

    var x = event.pageX-document.getElementById("main_div").scrollLeft;
    var y = event.pageY-document.getElementById("main_div").scrollTop;



    $("#container-5").css({"top":y,"left":x});
   });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-20 16:19:42

您可以检查单击的坐标是否会将小div的一部分放在主div之外,如果是,则更改坐标,使小div保留在主div内。(请参阅此jsFiddle。)

代码语言:javascript
复制
$(document).ready(function() {
    $("#main_div").bind('click', function(event) {
        var $mainDiv = $("#main_div");
        var $container5 = $("#container-5");

        var x = event.pageX - $mainDiv.position().left;
        var y = event.pageY - $mainDiv.position().top;

        if (x + $container5.width() > $mainDiv.width()) {
            x = $mainDiv.width() - $container5.width();
        }
        if (y + $container5.height() > $mainDiv.height()) {
            y = $mainDiv.height() - $container5.height();
        }

        $container5.css({
            "top": y,
            "left": x
        });
    });
});​
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12986197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档