Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui jquery ui switchClass在Chrome下失败_Jquery Ui_Google Chrome_Animation - Fatal编程技术网

Jquery ui jquery ui switchClass在Chrome下失败

Jquery ui jquery ui switchClass在Chrome下失败,jquery-ui,google-chrome,animation,Jquery Ui,Google Chrome,Animation,当我试图将“right”属性从px中的值更改为百分比中的值时,jquery ui switchClass所做的动画有一个问题。这个问题只在Chrome(在FireFox或IE下工作)下才会发生 动画应该只是将div的right属性从“90px”更改为“20%”,但div首先会转到屏幕的另一部分。当我查看调试器工具时,px似乎被解释为%:值的顺序是90px,89%,88%。。。21%, 20%. 以下代码再现了该问题: <!DOCTYPE html PUBLIC "-//W3C//DTD

当我试图将“right”属性从px中的值更改为百分比中的值时,jquery ui switchClass所做的动画有一个问题。这个问题只在Chrome(在FireFox或IE下工作)下才会发生

动画应该只是将div的right属性从“90px”更改为“20%”,但div首先会转到屏幕的另一部分。当我查看调试器工具时,px似乎被解释为%:值的顺序是90px,89%,88%。。。21%, 20%.

以下代码再现了该问题:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.min.js"></script>
        <style>
            .class1 {width:100px; height:50px; position:absolute; right:90px; background-color:#F9EDBE;}
            .class2 {width:100px; height:50px; position:absolute; right:20%; background-color:#F9EDBE;}
        </style>
    </head>
    <body>
        <div id="myDiv" class="class1" onclick="$('#myDiv').switchClass('class1', 'class2', 5000);">Click me</div>
    </body>

.class1{宽度:100px;高度:50px;位置:绝对;右侧:90px;背景色:#F9EDBE;}
.class2{宽度:100px;高度:50px;位置:绝对;右侧:20%;背景色:#F9EDBE;}
点击我


提前感谢您的帮助。

您可以尝试使用“this”而不是jQuery选择器。还要尝试添加与“id”值相同的“name”属性。

谢谢,但是选择器会正确地找到元素并调用switchClass。问题是div会移动到屏幕的另一部分,而不是从第一个位置平滑地移动到第二个位置。