jQuery css top在safari中返回零

jQuery css top在safari中返回零,jquery,css,safari,parallax,Jquery,Css,Safari,Parallax,我有一个div的位置:绝对在另一个div内。我有一个脚本,用于在用户滚动窗口时通过更改其顶部位置来生成子div视差。除了狩猎,它的效果非常好。职位div的百分比为顶部。但在脚本中,它被转换为像素并再次分配。我知道这有一个问题,因为jquery不会返回正确的百分比像素值(因为jquery只返回像素值)。在stackoverflow和其他站点(如直接访问DOM或访问样式表值)中有很多变通方法,但我想要一个jQuery解决方案。 下面是提到的视差: var initScrollPosition=$(

我有一个div的
位置:绝对在另一个div内。我有一个脚本,用于在用户滚动窗口时通过更改其顶部位置来生成子div视差。除了狩猎,它的效果非常好。职位div的百分比为顶部
。但在脚本中,它被转换为像素并再次分配。我知道这有一个问题,因为jquery不会返回正确的百分比像素值(因为jquery只返回像素值)。在stackoverflow和其他站点(如直接访问DOM或访问样式表值)中有很多变通方法,但我想要一个jQuery解决方案。 下面是提到的视差:

var initScrollPosition=$(窗口).scrollTop();
方向向量=0;
$.fn.extend({
滑块视差:功能(偏移){
var parallaxElement=$(this).find('.portfolio description');
var scrollPosition=parseFloat($(window.scrollTop());
var currentPositionTop=parseFloat($(this).offset().top);
var currentHeight=parseFloat($(this.outerHeight());
如果(scrollPosition>currentPositionTop-parseFloat(offsetTop)&&scrollPosition-currentPositionTop768){
var parallxTop=-1*滚动部分*0.5+parseFloat(offsetTop)/2;
}否则{
var parallxTop=-1*滚动部分*0.2+当前高度/4;
}
css('top',parallxTop+'px');
}
});
var offset=$('.portfolio description').css('top');
$(窗口)。滚动(函数(){
$('.portfolio content')。幻灯片边距(抵销);
});
img{
宽度:100%;
}
.投资组合说明{
位置:绝对位置;
右:18%;
最高:63%;
字体系列:havelTall;
颜色:#000000;
文本转换:大写;
文本对齐:右对齐;
}
.portfolio description>.port desc标头{
字体大小:132px;
字母间距:-4px;
}
.portfolio description>.port desc desc{
字体大小:54px;
左边距:41px;
利润上限:-43px;
字母间距:0.3px;
}

脱颖而出
男士时尚网站

由于offset().top在safari中不起作用,因此在safari修复之前,永远不会有jQuery方法获取此偏移量。您必须依赖纯js。我发现问题实际上在于
var offset=$('.portfolio description').css('top')返回零。您以前知道
.css()
方法是这样运行的吗?它不是css、jquery或js,它的safari报告了错误的值。或者更好:不以W3的方式行事。