jQuery .animate() marginLeft 在 IE8 及更低版本中不起作用 - 参数无效

Posted

技术标签:

【中文标题】jQuery .animate() marginLeft 在 IE8 及更低版本中不起作用 - 参数无效【英文标题】:jQuery .animate() marginLeft not working in IE8 and below - invalid argument 【发布时间】:2012-05-19 12:19:19 【问题描述】:

我有一个 IE 特定的问题。从好的方面来说,它适用于所有其他浏览器。

点击应该执行简单动画功能的.close_button_page图像时会出现问题,将div向左移动。

在 IE 8 及更低版本中,它只是在控制台中显示 invalid argument。我在网上发现了类似的问题,但没有解决问题。

注意:目前还有许多其他 IE 错误(z-index 等),因此请忽略。

HTML:

<div id="content-left">
    <img class="close_button_page"   src="assets/images/close_button.png"/>
    <h2>Our process</h2>
    <h3>Even smaller title to this section</h3>
    <p>Dummy text to show that this is the home of Dukelease and that this site is of the utmost quality and will provide hours of fun by flicking through images.</p>
</div>

CSS:

#content-left 
  -webkit-box-shadow:#000000 1px 1px 5px;
  border-top-color:#FFFFFF;
  border-top-style:solid;
  border-top-width:3px;
  box-shadow:#000000 1px 1px 5px;
  float:left;
  padding-bottom:10px;
  padding-left:10px;
  padding-right:10px;
  padding-top:10px;
  position:relative !important;
  width:230px;
  z-index:10;

style.css (line 562)
#content-left, .bg_white 
  background-color:rgba(255, 255, 255, 0.949219);

JavaScript:

$(".close_button_page").click(function()   

    $('#content-left').animate(
        marginLeft: '-260px'
    , 1300, function()
        $('.open_button_page').fadeIn(1000);
    );             
);

【问题讨论】:

首先,尝试删除 "margetLeft" 周围的引号或将其更改为 "margin-left" 要尝试的另一件事是将 -260 更改为“-260px” 之前试过没有成功 【参考方案1】:

尝试替换这个:

$(".close_button_page").click(function()   

    $('#content-left').animate(
        marginLeft: '-260px'
    , 1300, function()
        $('.open_button_page').fadeIn(1000);
    );             
);

用这个:

$(".close_button_page").click(function() 
    $('#content-left').toggle('slide');
);

在这里测试http://jsfiddle.net/ollie101/RuVZ3/5/

【讨论】:

这非常有效。这不是 animate() 但显然有问题,所以只需使用 toggle()!

以上是关于jQuery .animate() marginLeft 在 IE8 及更低版本中不起作用 - 参数无效的主要内容,如果未能解决你的问题,请参考以下文章

jquery的animate怎么获取动画的CSS属性呢?

jquery的animate动画能不能在IE中执行

jQuery .animate() 回调无限循环

Jquery中animate 不执行

jQuery.animate - 动画真的非常快

jquery中的animate();怎么写知道说下,谢谢