如何使用PHP实现此目的:在向下滚动< 100px时更改DIV的css,在> 100px时更改它。
这是我在普通的Javascript中所做的,但它不适用于PHP
<script language='javascript'>
var fixed = false;
$(document).scroll(function() {
if( $(this).scrollTop() >= 100 ) {
if( !fixed ) {
fixed = true;
$('#myDivTop').css({position:'fixed',top:0});
}
} else {
if( fixed ) {
fixed = false;
$('#myDivTop').css({position:'static'});
}
}
});
</script>
答案 0 :(得分:1)
除非您正在运行JavaScript服务器端环境(例如Node.js),否则您的JavaScript代码将在客户端执行(这就是您可以像在代码片段中那样操作DOM的原因),而PHP正在服务器端执行,允许您与存储在服务器上的数据进行交互。
听起来我需要从JavaScript调用一些服务器端功能,然后从JavaScript处理这个结果。在这种情况下,您正在寻找AJAX呼叫。
请尝试W3Schools AJAX tutorial了解有关其工作原理的更多信息。
答案 1 :(得分:0)
Javascript只能与HTML元素进行交互。如果你想实现这一点,只需在HTML代码中添加你的代码......不需要触摸php。
你实际可以做的就是从php写到你的javascript,就像这样:
<script language='javascript'>
alert("<?php echo 'Hola amigos'; ?>");
</script>
答案 2 :(得分:0)
您无法在PHP中归档相同的功能,因为它无法对DOM事件做出反应或更新页面(它可以提供数据,但PHP不会进行更新)。您可以使用AJAX在页面上调用PHP而无需重新加载,它可以提供您可以使用的数据。
但是 您可以让PHP生成该代码,并echo
将其作为HTML,如果这是您正在寻找的,您的代码似乎不需要来自服务器的任何内容:
<?php
echo <<<HERE
<script language='javascript'>
var fixed = false;
$(document).scroll(function() {
if( $(this).scrollTop() >= 100 ) {
if( !fixed ) {
fixed = true;
$('#myDivTop').css({position:'fixed',top:0});
}
} else {
if( fixed ) {
fixed = false;
$('#myDivTop').css({position:'static'});
}
}
});
</script>
HERE;
?>