jQuery将div设置为中心动画

jQuery将div设置为中心动画,jquery,Jquery,我试图在视图端口的底部创建一个横幅,当页面加载时,该横幅将从右侧(屏幕外)动画化到中间。我正在测量窗口的高度,减去横幅的高度,将其放置在屏幕上的正确高度,并进行静态定位。然后,我尝试使用margin auto将横幅居中到父对象 目前,jQuery似乎没有一个工作。 Jsfiddle: 您正在使用top等将边距分配给试图定位的元素。请切换到使用left,然后尝试使用$(document).ready(function(){或just$(function(){)以确保dom元素可用 $(functi

我试图在视图端口的底部创建一个横幅,当页面加载时,该横幅将从右侧(屏幕外)动画化到中间。我正在测量窗口的高度,减去横幅的高度,将其放置在屏幕上的正确高度,并进行静态定位。然后,我尝试使用margin auto将横幅居中到父对象

目前,jQuery似乎没有一个工作。
Jsfiddle:


您正在使用top等将边距分配给试图定位的元素。请切换到使用
left
,然后尝试使用
$(document).ready(function(){
或just
$(function(){
)以确保dom元素可用

$(function () {
    var windowHeight = $(window).height();
    var bannerHeight = windowHeight - 80 + "px";
    $('.create_banner').css({
        top: bannerHeight
    }).animate({
        left: 100
    });
});

您正在使用top等为试图定位的元素分配边距。切换到使用
left
并尝试使用
$(document).ready(function(){
或just
$(function(){
)以确保dom元素可用

$(function () {
    var windowHeight = $(window).height();
    var bannerHeight = windowHeight - 80 + "px";
    $('.create_banner').css({
        top: bannerHeight
    }).animate({
        left: 100
    });
});

您正在使用top等为试图定位的元素分配边距。切换到使用
left
并尝试使用
$(document).ready(function(){
或just
$(function(){
)以确保dom元素可用

$(function () {
    var windowHeight = $(window).height();
    var bannerHeight = windowHeight - 80 + "px";
    $('.create_banner').css({
        top: bannerHeight
    }).animate({
        left: 100
    });
});

您正在使用top等为试图定位的元素分配边距。切换到使用
left
并尝试使用
$(document).ready(function(){
或just
$(function(){
)以确保dom元素可用

$(function () {
    var windowHeight = $(window).height();
    var bannerHeight = windowHeight - 80 + "px";
    $('.create_banner').css({
        top: bannerHeight
    }).animate({
        left: 100
    });
});

你可以用非常少的Javascript来完成所有这些。你只需要在元素中添加一个类来触发转换。只需使用CSS转换来完成小动画。我真的不明白为什么要使用静态定位。这甚至是
位置的默认值

在我的示例中,居中是通过定位和负左边距实现的。您将元素定位在
左:50%
位置,然后将元素宽度的一半负边距放置在其上(从而使元素居中)。这显然只在您知道宽度的情况下起作用,在本例中就是这样做的

看看我的方法:

请记住,将元素推出屏幕的偏移值会影响动画计时

最重要的CSS部分:

.create_banner {
    height: 80px;
    width:920px;
    z-index: 1200;
    background-color:#000;
    position:fixed;
    bottom:0px; /* glue it to the bottom */
    left:5000px; /* any value outside of the screen */
    margin-left:-460px; /* width/2 = 920/2 */
    -webkit-transition:left 2s; /* tell the element to transition the left value*/
    -moz-transition:left 2s;
    transition:left 2s;
}

.animate {
    left:50%; /* where it should be afterwards */
}

你只需要很少的Javascript就可以完成所有这些。你只需要在元素中添加一个类来触发转换。只需使用CSS转换来制作小动画。我真的不明白你为什么要使用静态定位。这甚至是
位置
的默认值

在我的示例中,居中是通过定位和负左边距实现的。您将元素定位在
左:50%
位置,然后将元素宽度的一半负边距放置在其上(从而使元素居中)。这显然只在您知道宽度的情况下起作用,在本例中就是这样做的

看看我的方法:

请记住,将元素推出屏幕的偏移值会影响动画计时

最重要的CSS部分:

.create_banner {
    height: 80px;
    width:920px;
    z-index: 1200;
    background-color:#000;
    position:fixed;
    bottom:0px; /* glue it to the bottom */
    left:5000px; /* any value outside of the screen */
    margin-left:-460px; /* width/2 = 920/2 */
    -webkit-transition:left 2s; /* tell the element to transition the left value*/
    -moz-transition:left 2s;
    transition:left 2s;
}

.animate {
    left:50%; /* where it should be afterwards */
}

你只需要很少的Javascript就可以完成所有这些。你只需要在元素中添加一个类来触发转换。只需使用CSS转换来制作小动画。我真的不明白你为什么要使用静态定位。这甚至是
位置
的默认值

在我的示例中,居中是通过定位和负左边距实现的。您将元素定位在
左:50%
位置,然后将元素宽度的一半负边距放置在其上(从而使元素居中)。这显然只在您知道宽度的情况下起作用,在本例中就是这样做的

看看我的方法:

请记住,将元素推出屏幕的偏移值会影响动画计时

最重要的CSS部分:

.create_banner {
    height: 80px;
    width:920px;
    z-index: 1200;
    background-color:#000;
    position:fixed;
    bottom:0px; /* glue it to the bottom */
    left:5000px; /* any value outside of the screen */
    margin-left:-460px; /* width/2 = 920/2 */
    -webkit-transition:left 2s; /* tell the element to transition the left value*/
    -moz-transition:left 2s;
    transition:left 2s;
}

.animate {
    left:50%; /* where it should be afterwards */
}

你只需要很少的Javascript就可以完成所有这些。你只需要在元素中添加一个类来触发转换。只需使用CSS转换来制作小动画。我真的不明白你为什么要使用静态定位。这甚至是
位置
的默认值

在我的示例中,居中是通过定位和负左边距实现的。您将元素定位在
左:50%
位置,然后将元素宽度的一半负边距放置在其上(从而使元素居中)。这显然只在您知道宽度的情况下起作用,在本例中就是这样做的

看看我的方法:

请记住,将元素推出屏幕的偏移值会影响动画计时

最重要的CSS部分:

.create_banner {
    height: 80px;
    width:920px;
    z-index: 1200;
    background-color:#000;
    position:fixed;
    bottom:0px; /* glue it to the bottom */
    left:5000px; /* any value outside of the screen */
    margin-left:-460px; /* width/2 = 920/2 */
    -webkit-transition:left 2s; /* tell the element to transition the left value*/
    -moz-transition:left 2s;
    transition:left 2s;
}

.animate {
    left:50%; /* where it should be afterwards */
}

虽然这部分解决了问题,但关键是将div居中,这不能用静态值来完成。这就是我最初使用margin auto的原因。为什么不呢?您可以计算
窗口的宽度,减去正在制作动画的div的宽度,然后除以2。这是新的
left
。例如:800px window-400px div=200px/2=100px每边所需的空间。虽然这部分解决了问题,但关键是将div居中,这不能用静态值来完成。这就是我最初使用margin auto的原因。为什么不呢?您可以计算
窗口的宽度
,减去正在制作动画的div的宽度,然后进行除法by 2.这是新的
。例如:800px窗口-400px div=200px/2=100px每侧需要的空间。虽然这部分解决了问题,但关键是将div居中,这不能用静态值实现。这就是我最初使用margin auto的原因。为什么不呢?您可以计算
窗口的宽度
>,减去正在设置动画的div的宽度,然后除以2。这是新的
左侧
。示例:800px窗口-400px div=200px/2=10