ScrollTop 功能不适用于 firefox
ScrollTop function is not working with firefox
我正在网页上制作一个弹出窗口 window,它与双胞胎一起从 window 顶部轻松进入。我使用 scrollTop 函数在滚动位置应用弹出窗口。
即当点击一个按钮时,它会出现在窗口的滚动位置。
问题是它在 "Google Chrome" 中工作正常,但在 firefox 中它甚至不显示。
这是我的 jquery 代码....
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.15.0/TweenMax.min.js"></script>
<script>
$(document).ready(function () {
var $obj = $(".modal")
, $overlay = $(".modal-overlay")
, blur = $("#blur-filter").get(0)
;
function setBlur(v) {
blur.setAttribute("stdDeviation", v);
}
function getPos() {
return $obj.position();
}
var lastPos = getPos();
function update() {
var pos = getPos();
var limit = 20;
var dx = Math.min(limit, Math.abs(pos.left - lastPos.left) * 0.5);
var dy = Math.min(limit, Math.abs(pos.top - lastPos.top) * 0.5);
setBlur(dx + "," + dy);
lastPos = pos;
requestAnimationFrame(update);
}
update();
var isOpen = false;
function openModal() {
/*$overlay.css({
display:"block"
})*/
TweenMax.to($overlay, 0.1, { autoAlpha: 1 });
TweenMax.fromTo($obj, 0.6, { y: -($(window).height() + $obj.height() - $(window).scrollTop()) }, { delay: 0.2, y: $(window).scrollTop(), ease: Elastic.easeOut, easeParams: [1.1, 0.7], force3D: true });
}
function closeModal() {
TweenMax.to($overlay, 0.1, { delay: 0.55, autoAlpha: 0 });
TweenMax.to($obj, 0.55, { y: $(document).height() + $obj.height(), ease: Back.easeIn, force3D: true });
}
$(".open-modal").click(function () {
openModal();
})
$(".close-modal,.modal-overlay").click(function () {
closeModal();
})
})
</script>
您的 Javascript 工作正常;这是
filter: url("#blur")
这似乎不起作用。将其删除或尝试将其替换为模糊滤镜的 Firefox' standard implementation。
我正在网页上制作一个弹出窗口 window,它与双胞胎一起从 window 顶部轻松进入。我使用 scrollTop 函数在滚动位置应用弹出窗口。 即当点击一个按钮时,它会出现在窗口的滚动位置。
问题是它在 "Google Chrome" 中工作正常,但在 firefox 中它甚至不显示。
这是我的 jquery 代码....
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.15.0/TweenMax.min.js"></script>
<script>
$(document).ready(function () {
var $obj = $(".modal")
, $overlay = $(".modal-overlay")
, blur = $("#blur-filter").get(0)
;
function setBlur(v) {
blur.setAttribute("stdDeviation", v);
}
function getPos() {
return $obj.position();
}
var lastPos = getPos();
function update() {
var pos = getPos();
var limit = 20;
var dx = Math.min(limit, Math.abs(pos.left - lastPos.left) * 0.5);
var dy = Math.min(limit, Math.abs(pos.top - lastPos.top) * 0.5);
setBlur(dx + "," + dy);
lastPos = pos;
requestAnimationFrame(update);
}
update();
var isOpen = false;
function openModal() {
/*$overlay.css({
display:"block"
})*/
TweenMax.to($overlay, 0.1, { autoAlpha: 1 });
TweenMax.fromTo($obj, 0.6, { y: -($(window).height() + $obj.height() - $(window).scrollTop()) }, { delay: 0.2, y: $(window).scrollTop(), ease: Elastic.easeOut, easeParams: [1.1, 0.7], force3D: true });
}
function closeModal() {
TweenMax.to($overlay, 0.1, { delay: 0.55, autoAlpha: 0 });
TweenMax.to($obj, 0.55, { y: $(document).height() + $obj.height(), ease: Back.easeIn, force3D: true });
}
$(".open-modal").click(function () {
openModal();
})
$(".close-modal,.modal-overlay").click(function () {
closeModal();
})
})
</script>
您的 Javascript 工作正常;这是
filter: url("#blur")
这似乎不起作用。将其删除或尝试将其替换为模糊滤镜的 Firefox' standard implementation。