完美滚动条默认滚动条仍然存在,并且“完美滚动条”不起作用

Posted

技术标签:

【中文标题】完美滚动条默认滚动条仍然存在,并且“完美滚动条”不起作用【英文标题】:perfect-scrollbar default scrollbar remains and the "perfect-scrollbar" not functional 【发布时间】:2014-04-19 15:14:02 【问题描述】:

我真的需要这方面的帮助。我想用“完美滚动条”替换 iframe 上的默认滚动条。 我已经下载了完美的滚动条。我还将所需的文件包含在我的 html 文档中。根据文档,我在 iframe 中设置了内容容器的样式。结果是,当我加载我的主页并将鼠标光标移动到 iframe 上时,会出现“完美滚动条”,但保留默认滚动条。下一个问题是,新的滚动条根本不起作用。它从 iframe 内容的顶部开始,并在 iframe 内容的底部结束,因此我无法滚动。

我的 iframe 内容页面的 HTML:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sk" lang="sk">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <link rel="stylesheet" type="text/css" media="all" href="../css/iframestyle.css" />
    <link rel="stylesheet" type="text/css" media="all" href="../css/perfect-scrollbar-0.4.8.min.css" />
    <!-- latest jQuery direct from google's CDN -->
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript" src="../js/perfect-scrollbar-0.4.8.min.js"></script>
    <script type="text/javascript" src="../js/perfect-scrollbar-0.4.8.with-mousewheel.min.js"></script>
    <script type="text/javascript" src="../js/scroll.js"></script>
    <title>TITLE</title>
  </head>
  <body>
    <div id="amfCont">
      ..... // content to be scrolled
    </div>
  </body>
</html>

CSS:

#amfCont 
  font-family:"Verdana";
  text-align:justify;
  position:relative;
  overflow:hidden;

JS(包括 scroll.js)

$(document).ready(function() 
"use strict";
  $('#amfCont').perfectScrollbar();
);

谁能指出我这里有什么问题?

【问题讨论】:

【参考方案1】:

在您的 iframe 中尝试jQuery Scrollbar。

<!DOCTYPE html>
<html>
    <head>
        <title>jQuery Scrollbar Demo</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" href="http://gromo.github.io/jquery.scrollbar/jquery.scrollbar.css">

        <script src="//code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>
        <script src="http://gromo.github.io/jquery.scrollbar/jquery.scrollbar.js"></script>

        <script>
            jQuery(function($)
                $('.page-wrapper').scrollbar();
            );
        </script>

        <style type="text/css">
            html, body, .page-wrapper 
                border: none;
                height: 100%;
                margin: 0;
                padding: 0;
                width: 100%;
            

            .page-content 
                padding: 10px 20px;
            
        </style>
    </head>
    <body>
        <div class="page-wrapper scrollbar-macosx">
            <div class="page-content">
                [CONTENT HERE]
            </div>
        </div>
    </body>
</html>

在上面的示例中,我使用了 scrollbar-macosx 类,但您可以从预定义的样式中选择任何样式或制作自己的自定义滚动条 - 它是完全可自定义的 CSS。

【讨论】:

谢谢。我注意到在 IE 中有默认的滚动条和新的滚动条。如何避免显示默认值?我就像在你的例子中一样使用它。谢谢 我检查过 IE7、IE8、IE9。如果您在浏览器中打开此页面(不是 iframe),IE7 总是 会显示标准页面滚动条,即使内容较小 - 与此行为无关。其他IE都不错。但是如果你以 IFRAME 方式打开这个页面,标准的滚动条将不会显示。 好的,我使用的是 IE 11。我在主页上打开我的内容(如 iframe)的页面,同时有(标准滚动和新的 jQuery)。为什么会发生这种情况,当它应该只显示 jQuery,根据你所说的? 我已经检查了 IE10 && IE11 (Win7 SP1),一切正常。你能提供你使用的页面的截图和html吗?【参考方案2】:

#amfCont 需要 height 属性才能使此插件正常工作。这是文档中的示例。

#container 
    position: relative;
    height: 100%; /* Or whatever you want (eg. 400px) */

【讨论】:

以上是关于完美滚动条默认滚动条仍然存在,并且“完美滚动条”不起作用的主要内容,如果未能解决你的问题,请参考以下文章

overflow妙用--去除默认滚动条,内容仍可滚动

去掉iframe默认滚动条后影响正常滚动以及js解决高度自适应。

使滚动条不占空间/防止布局移位

如何隐藏水平滚动条并保持垂直滚动条可见,同时仍然能够水平滚动?

easyui-layout没有下拉滚动条是怎么回事

html滚动条隐藏后不能滚动,隐藏滚动条,但仍然可以滚动