Javascript 在屏幕上居中调整Div的大小
所以,我有我昨天开始的这一页。它将以页面为中心的div移离鼠标。在我调整页面大小之前,一切都很好。直到我移动鼠标,div才回到中间 我尝试过使用屏幕上的调整大小,但似乎无法让它工作,所以我刮它。我对JS和Jquery还比较陌生,所以我需要一个指向正确方向的点 这是我正在工作的网站。我知道这是一种不好的做法,但为了这个页面,我将CSS和JS都放在一个页面中,这样人们就可以右键单击->查看源代码,因为我无法使用JSFIDLE 提前感谢,如果您需要任何澄清,请告诉我!:) 编辑以添加代码:Javascript 在屏幕上居中调整Div的大小,javascript,jquery,html,css,Javascript,Jquery,Html,Css,所以,我有我昨天开始的这一页。它将以页面为中心的div移离鼠标。在我调整页面大小之前,一切都很好。直到我移动鼠标,div才回到中间 我尝试过使用屏幕上的调整大小,但似乎无法让它工作,所以我刮它。我对JS和Jquery还比较陌生,所以我需要一个指向正确方向的点 这是我正在工作的网站。我知道这是一种不好的做法,但为了这个页面,我将CSS和JS都放在一个页面中,这样人们就可以右键单击->查看源代码,因为我无法使用JSFIDLE 提前感谢,如果您需要任何澄清,请告诉我!:) 编辑以添加代码: <!
<!DOCTYPE html>
<html>
<head>
<title>qwerty</title>
<script src="jQuery.js"></script>
<style type="text/css">
body {
background-image:url('cloud.jpg');
background-repeat:repeat;
}
.box {
background-image:url('trans.png');
background-repeat:repeat;
width: 500px;
height: 200px;
position: absolute;
margin:100px -250px -100px 250px;
bottom:50%;
right:50%;
-webkit-border-radius: 15px 15px 15px 15px;
border-radius: 15px 15px 15px 15px;
-webkit-box-shadow:inset 2px 2px 20px 1px #E0D9D9;
box-shadow:inset 2px 2px 20px 1px #E0D9D9;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
$(window).mousemove(function(e){
var x = e.pageX-window.innerWidth/2;
if (x <= 400) {
x2=x*0.01
x3=x2+window.innerWidth/2
$('div.box').css({'right': x3});
}
var y = e.pageY-window.innerHeight/2;
if (y <= 400) {
y2=y*0.01
y3=y2+window.innerHeight/2
$('div.box').css({'bottom': y3});
}
});
});
</script>
</head>
<body>
<div class="box"></div>
</body>
</html>
qwerty
身体{
背景图片:url('cloud.jpg');
背景重复:重复;
}
.box{
背景图片:url('trans.png');
背景重复:重复;
宽度:500px;
高度:200px;
位置:绝对位置;
利润率:100px-250px-100px-250px;
底部:50%;
右:50%;
-webkit边界半径:15px 15px 15px 15px;
边界半径:15px 15px 15px 15px;
-webkit盒阴影:插入2px 2px 20px 1px#E0D9D9;
盒影:插入2px 2px 20px 1px#E0D9D9;
}
$(文档).ready(函数(){
$(窗口).mousemove(函数(e){
var x=e.pageX-window.innerWidth/2;
如果(x在代码中添加css
.box{
position:absolute;
left:0;
right:0;
}
这将使您的div从右向左居中。请使用您当前使用的其他css。调整窗口大小时,您需要设置一些内容以居中:
$( window ).resize(function() {
$('div.box').css({'right': parseInt(window.innerWidth/2),
'bottom': parseInt(window.innerHeight/2)
});
});
您已经尝试使用了吗?这将使您能够在调整大小时重新定位div。替代方法(不绑定window.resize事件)在调整浏览器窗口大小时强制浮动div重新居中
不绑定到window.resize事件
jQuery.fn.center = function() {
var container = $(window);
var top = -this.height() / 2;
var left = -this.width() / 2;
return this.css('position', 'absolute').css({ 'margin-left': left + 'px', 'margin-top': top + 'px', 'left': '50%', 'top': '50%' });
}
用法:
$('#mydiv').center();
你可以试一下
函数移动框(e){
如果(e==未定义){
e={pageX:0,pageY:0}
}
var x=e.pageX-window.innerWidth/2;
if(x)请包含您的代码。@MateiMihai添加了代码!div以页面加载为中心。调整页面/窗口的大小后,我需要让它重新居中。请首先尝试上面的css并添加注释:)我已经把它放在我的css中心了。你的css做了一些我已经做过的事情。@Askanison4我认为你是正确的。我本来打算否决它,但缺乏必要的声誉。我说过我试过了,但一定是做错了什么。我是jquery和javascript新手。这个答案很完美!我会尽快给它打上正确的标记它允许我!谢谢!我已经让它居中了。我需要它在调整窗口大小时重新居中。谢谢。是的,这也可以,但我已经接受了一个答案。:@MathewMacLean我正试图给出另一个答案(不绑定窗口。调整大小事件)…如果有帮助,您可以向上投票:)@MathewMacLean希望你能看到我之前的评论:)
function moveBox(e) {
if (e === undefined) {
e = { pageX: 0, pageY: 0 }
}
var x = e.pageX-window.innerWidth/2;
if (x <= 400) {
x2=x*0.01
x3=x2+window.innerWidth/2
$('div.box').css({'right': x3});
}
var y = e.pageY-window.innerHeight/2;
if (y <= 400) {
y2=y*0.01
y3=y2+window.innerHeight/2
$('div.box').css({'bottom': y3});
}
}
$(document).ready(function(){
$(window).mousemove(function(e){
moveBox(e);
});
$(window).resize(function(){
moveBox();
});
});