2017-03-01 115 views
0

我想创建一个圆形div,当鼠标放在它上面时会变得更大(并停在鼠标上),但我似乎无法让它保持绝对居中在页面中当在调整大小的同时保持div中心位置

function addwidth() { 
 
    if ($(".circle").width() >= 550) { 
 
    $(".circle").width(100); 
 
    $(".circle").height(100); 
 
    $('.question input').val("1"); 
 
    $(".circle").css("background-color", "red"); 
 
    $(".circle").css("margin", "450px"); 
 
    } else { 
 

 
    $(".circle").width($(".circle").width() + 5); 
 
    $(".circle").height($(".circle").height() + 5); 
 
    $(".circle").css('margin', function(index, curValue) { 
 
     return parseInt(curValue, 10) + -5 + 'px'; 
 
    }); 
 
    if ($(".circle").width() > 99) { 
 
     $('.question input').val("1"); 
 
     $(".circle").css("background-color", "red"); 
 
    } 
 
    if ($(".circle").width() > 199) { 
 
     $('.question input').val("2"); 
 
     $(".circle").css("background-color", "orange"); 
 
    } 
 
    if ($(".circle").width() > 299) { 
 
     $('.question input').val("3"); 
 
     $(".circle").css("background-color", "yellow"); 
 
    } 
 
    if ($(".circle").width() > 399) { 
 
     $('.question input').val("4"); 
 
     $(".circle").css("background-color", "green"); 
 
    } 
 
    if ($(".circle").width() > 499) { 
 
     $('.question input').val("5"); 
 
     $(".circle").css("background-color", "blue"); 
 
    } else {} 
 
    } 
 
}; 
 

 

 
var intervalId; 
 

 
function expand() { 
 
    if (intervalId) { 
 
    clearInterval(intervalId); 
 
    } 
 
    intervalId = setInterval(addwidth, 15); 
 
}; 
 

 
function stopexpand() { 
 
    clearInterval(intervalId); 
 
};
#container1 { 
 
    height: 100%; 
 
    width: 100%; 
 
} 
 

 
.circle { 
 
    background-color: black; 
 
    margin: 450px; 
 
    border-radius: 50%; 
 
    behavior: url(PIE.htc); 
 
    width: 100px; 
 
    height: 100px; 
 
    max-width: 550px; 
 
    max-height: 550px; 
 
}
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> 
 
<div id="container1"> 
 
    <div class="circle" onmousedown="return expand()" onmouseup="return stopexpand()"></div> 
 
    <div class="question"><input type="number"></div> 
 
</div>

我如何能确保圆向外扩展而不是向上或跨任何想法? (如果这是有道理的)

+0

你想要[this](https://jsfiddle.net/3Lykkpr1/)吗? – Huelfe

+0

我希望它从中心向外扩展。因此,如果我点击圆圈中间的位置,它会长大,但我的鼠标似乎仍然位于圆心的中心,而不是向外扩展的圆,鼠标位于圆的边缘。 – silverbackjack

回答

1

尝试在container1 CSS使用Flexbox的:

#container1 { 
 
    display: flex; 
 
    align-items: center; 
 
    justify-content: center; 
 
    height: 100vh; 
 
    width: 100vw; 
 
}

+0

这有效,但似乎掩盖了使它更像一个鸡蛋形状的圆:编辑,这只会发生在屏幕大小调整后,它似乎在大多数情况下工作得很好。谢谢 – silverbackjack

+0

我的下一步行动是调整容器的高度和宽度,但至少现在这个圆形正在扩大。 – Nick

0

我不知道,如果是一个圆圈有什么关系呢。但我知道,这是你如何居中在页面上一个div(或其他容器,像另一个DIV),提供:

  • 你的尺寸的股利,无论是与“PX”或“%”(两个工作)。

从您的文章,好像你确实大小的DIV,并且希望它留在页面中央(不居中相对于鼠标)绝对的。如果这是真的,我就是这样做的(当我最初找到这个解决方案时,我就像是......真的就是这样吗?)。

.centerDiv { 
    margin: auto; 
    position: relative; 
} 

再次,这假定您已经大小的DIV,和我可能会也把它放在另一格大小的100%(水平/垂直或两者兼而有之,这取决于你想做什么)。

我在那里无处不在,例如,在“app-component”初始化之前,将“加载”div集中在Angular2应用程序中。

有了这个,你应该能够调整你想要居中的div,并且它会继续自我调整。

让我知道这是否有任何帮助(对圆圈事物感兴趣),如果没有,我会拉下答案,但这确实是我如何去做的。

相关问题