Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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
Javascript Safari顶部,左侧过渡问题_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript Safari顶部,左侧过渡问题

Javascript Safari顶部,左侧过渡问题,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我已经用div制作了一个自定义光标。所有东西都可以在chrome和firefox上使用,但在Safari上不行。我正在使用转换来实现效果 在Safari中,它们似乎不会同时更新(当左的转换完成后,顶部开始) 函数muisupdate(e){ 如果($(窗口).width()>991){ 如果(!e)var e=window.event; var mousex=e.pageX-50; var mousey=e.pageY-$(窗口).scrollTop()-50; $('.cursor').css

我已经用div制作了一个自定义光标。所有东西都可以在chrome和firefox上使用,但在Safari上不行。我正在使用
转换
来实现效果

在Safari中,它们似乎不会同时更新(当
的转换完成后,
顶部
开始)

函数muisupdate(e){
如果($(窗口).width()>991){
如果(!e)var e=window.event;
var mousex=e.pageX-50;
var mousey=e.pageY-$(窗口).scrollTop()-50;
$('.cursor').css({
“顶部”:鼠标+“px”,
“左”:mousex+“px”
});
$('body').css('cursor','none');
}
}
$(窗口).mousemove(函数(e){
muisupdate(e);
});
.cursor{
位置:固定;
变换原点:50%50%;
宽度:100px;
高度:100px;
/*边界半径:100%;
背景:红色*/
z指数:99999;
-webkit过渡:左上0.5s立方贝塞尔(.075、.82、.165、1);
-moz变换:左上角0.5s立方贝塞尔(.075,82,165,1);
-o型过渡:左上0.5s立方贝塞尔(.075,82,165,1);
过渡:0.5s立方贝塞尔(.075,82,165,1);
过渡属性:左、上;
过渡时间:0.5s;
过渡计时功能:立方贝塞尔(0.075,0.82,0.165,1);
转换延迟:0s;
混合模式:差异化;
指针事件:无;
}
路径{
填充:无;
冲程:#ffffff;
笔画宽度:3;
笔划线头:圆形;
笔划线条连接:圆形;
--长度:24;
--偏移量:-38;
笔划数组:var(--长度)var(--总长度);
行程偏移量:var(--偏移量);
-webkit转换:所有.8s立方贝塞尔(.645、.045、.355,1);
过渡:所有.8s三次贝塞尔(.645、.045、.355,1);
-webkit盒阴影:0px 0px 5px rgba(0,0,0,0.5);
-moz盒阴影:0px 0px 5px rgba(0,0,0,0.5);
盒影:0px 0px 5px rgba(0,0,0,0.5);
}
身体{
光标:无;
}

工作示例:

有人知道如何使它平滑吗


编辑我已将
转换
中的
右侧
更改为
顶部
,但是这并不能解决问题您应该在css转换属性中将
右侧
更改为
顶部

-webkit-transition: left right 0.5s cubic-bezier(.075, .82, .165, 1);
-moz-transition: left right 0.5s cubic-bezier(.075, .82, .165, 1);
-o-transition: left right 0.5s cubic-bezier(.075, .82, .165, 1);
transition: 0.5s cubic-bezier(.075, .82, .165, 1);
transition-property: left, right;
->


因为您从不使用
right
属性,而是使用转换不使用的
top
。在Safari中,它只是工作得快一点,而在Chrome上,它看起来要被转换(如果不是)

这会有助于看到一个工作的演示。@RoryMcCrossan在帖子中显示的是
应该是
,而不是css转换属性。我在你的评论中介绍了这一点,并尝试了它如何不转换work@Tim567好我也试过这个,而且很有效。试着把时间减少到1秒左右,当我改变我自己的时候,它不能正常工作,但是复制你的,它工作得很好!Thanks@Tim567这可能是因为它不会立即应用于结果,您应该在编辑器中进行更改后等待几秒钟。还要注意的是,在我的代码笔中有
1s
而不是
0.5s
,这就是为什么它比你的更平滑。我做了,在我的检查器中它也显示了结果,一定是打字错误
-webkit-transition: left top 0.5s cubic-bezier(.075, .82, .165, 1);
-moz-transition: left top 0.5s cubic-bezier(.075, .82, .165, 1);
-o-transition: left top 0.5s cubic-bezier(.075, .82, .165, 1);
transition: 0.5s cubic-bezier(.075, .82, .165, 1);
transition-property: left, top;