【问题标题】:cross-browser compatibility跨浏览器兼容性
【发布时间】:2012-08-09 02:28:27
【问题描述】:

在 Lion 10.8 上的新 Safari 浏览器 6.0 上,此代码未正确执行。在 Firefox 和 iPad Safari 中运行良好。但在 Mac 上,当我上下滚动时,它一直在振动。我试图保持顶部横幅滚动,直到按钮到达页面顶部,此时我希望按钮保持固定。

这是页面的链接:

http://www.persiantunedpiano.com/Mirror/events.htm

这是 js:

<script type="text/javascript">
<![CDATA[

  $(document).scroll(function() {var scrollTop = $(window).scrollTop();
                        scroll(0, scrollTop);
                        if (scrollTop > 189) {
                            //alert(scrollTop);
                            $('#top_links').css('position', 'fixed');
                            $('#top_links').css('top', '0');
                            $('#left_links').css('position', 'fixed');
                            $('#left_links').css('top', '57px');


                        } else {
                            //alert('2');

                            $('#top_links').css('position','absolute');
                            $('#top_links').css('top', '186px');
                            $('#left_links').css('position', 'absolute');
                            $('#left_links').css('top', '242px');
                            //allertSize();
                        }
                        });


//]]>
</script>

【问题讨论】:

  • 不只是在 Mac 上:Win7、Firefox 14、滚动缓慢和生涩。另请注意,自动播放音乐会惹恼一些访问者(确实像您的访问者)...;)

标签: javascript jquery css safari cross-browser


【解决方案1】:

嗯...好像太慢了,这样会加快速度,不能确定是否足够快:

(我将 jQuery 元素添加到闭包中,因此您不必每次移动搜索 4 次。)

<script type="text/javascript">

  var top_links = $('#top_links');
  var left_links = $('#left_links');

  $(document).scroll(function() {
     var scrollTop = $(window).scrollTop();
     scroll(0, scrollTop);
     if (scrollTop > 189) {
       top_links.css('position', 'fixed')
                .css('top', '0');
       left_links.css('position', 'fixed')
                 .css('top', '57px');
     }
     else {
       top_links.css('position','absolute')
                .css('top', '186px');
       left_links.css('position', 'absolute')
                 .css('top', '242px');
     }
 });
</script>

【讨论】:

  • 抱歉回复晚了,被其他项目拖累了。你的代码不工作。这是包含您的代码的页面:persiantunedpiano.com/Mirror/about.htm。这是导致问题的先前代码的页面:persiantunedpiano.com/Mirror/events.htm。有什么想法吗?
  • 是的,将我的代码移动到$(document).ready(function(){ 函数中。那时为我在当地工作。
  • 好的。这解决了问题。我想这是对以前版本的改进。但是我仍然不满足于表现。当我使用触摸板滚动时,它仍然闪烁很多。当我拖动滚动条时工作正常。只是两个手指滚动不像前狮子野生动物园那样工作,它完全流畅,没有任何闪烁。我会接受你的回答,因为这是一个改进,并认为这是新 safari 的问题,没有解决方案。
猜你喜欢
  • 2011-06-07
  • 2011-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-10
相关资源
最近更新 更多