使用PHP向下滚动时更改CSS

时间:2015-02-05 23:40:43

标签: javascript php

如何使用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>

3 个答案:

答案 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;
?>