1

[すべて表示] をクリックしてから、ポップアップを 1 つ表示してください。ポップアップは表示されますが、スクロールバーが機能しません。

JavaScript

$(document).ready(function(){
    $('#scrollbar1').tinyscrollbar();    
});

//SETTING UP OUR POPUP
//0 means disabled; 1 means enabled;
var popupStatus = 0;

//loading popup with jQuery magic!
function loadPopup(){
    //loads popup only if it is disabled
    if(popupStatus==0){
        jQuery("#backgroundPopup").css({
            "opacity": "0.7"
        });
        jQuery("#backgroundPopup").fadeIn("slow");
        jQuery("#popupContact").fadeIn("slow");
        popupStatus = 1;
    }
}

//disabling popup with jQuery magic!
function disablePopup(){
    //disables popup only if it is enabled
    if(popupStatus==1){
        jQuery("#backgroundPopup").fadeOut("slow");
        jQuery("#popupContact").fadeOut("slow");
        popupStatus = 0;
    }
}

//centering popup
function centerPopup(){
    //request data for centering
    var windowWidth = document.documentElement.clientWidth;
    var windowHeight = document.documentElement.clientHeight;
    var popupHeight = jQuery("#popupContact").height();
    var popupWidth = jQuery("#popupContact").width();
    //centering
    jQuery("#popupContact").css({
        "position": "absolute",
        "top": windowHeight/2-popupHeight/2,
        "left": windowWidth/2-popupWidth/2
    });
    //only need force for IE6

    jQuery("#backgroundPopup").css({
        "height": windowHeight
    });

}


//CONTROLLING EVENTS IN jQuery
jQuery(document).ready(function(){
    //LOADING POPUP
    //Click the button event!
    jQuery("#button").click(function(){
        //centering with css
        centerPopup();
        //load popup
        loadPopup();
    });

    //CLOSING POPUP
    //Click the x event!
    jQuery("#popupContactClose").click(function(){
        disablePopup();
    });
    //Click out event!
    jQuery("#backgroundPopup").click(function(){
        none();
    });
    //Press Escape event!
    jQuery(document).keypress(function(e){
        if(e.keyCode==27 && popupStatus==1){
            disablePopup();
        }
    });

});

function LoadPop(){
        centerPopup();
        loadPopup();
}

HTML

<div class="achieve">
    <h2><a href="#" id="button">(see all)</a></h2>
    <div class="achieve-container">

    </div>
</div>
<div id="popupContact">
    <div class="" id="contactArea">
            <div class="logbox">
                <div id="scrollbar1">
                <div class="scrollbar"><div class="track"><div class="thumb"><div class="end"></div></div></div></div>
                <div class="viewport">
                <div class="more-achive">
                    <h2>My Profile <a id="popupContactClose"><img src="images/close.gif" /></a></h2>
                    <div class="spacer"></div>
                    <div class="profstat">
                        <img src="images/pro-image1.gif" alt="Profile Image" />
                        <h1>Emily Hsiung</h1>
                        <p><span>567</span> Points</p>
                        <p><span>22</span> achievements</p>
                    </div>
                    <div class="proflevelindicator">
                        <img src="images/level-indicator.gif" alt="level indicator" />
                        <h1>Level 5 Elephant Hunter</h1>
                        <p><span>33</span> Points to next level</p>
                    </div>
                    <div class="spacer"></div>
                    <div class="achievelist">
                        <h2>Achievements</h2>
                        <ul>
                            <li>
                                <div class="imagbox"><img src="https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcQB1T4_bghGtisR6Tom0Umf3FZHCQoPGFJgD0Orck3cB0F8iTZN" /></div>
                                <div class="titlebox">Spotlight</div>
                            </li>
                            <li>
                                <div class="imagbox"><img src="https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcQB1T4_bghGtisR6Tom0Umf3FZHCQoPGFJgD0Orck3cB0F8iTZN" /></div>
                                <div class="titlebox">15 Minutes of Fame</div>
                            </li>
                            <li>
                                <div class="imagbox"><img src="https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcQB1T4_bghGtisR6Tom0Umf3FZHCQoPGFJgD0Orck3cB0F8iTZN" /></div>
                                <div class="titlebox">Contributor</div>
                            </li>
                            <li class="nomar">
                                <div class="imagbox"><img src="https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcQB1T4_bghGtisR6Tom0Umf3FZHCQoPGFJgD0Orck3cB0F8iTZN" /></div>
                                <div class="titlebox">Super Contributor</div>
                            </li>
                            <li class="nomar1">
                                <div class="imagbox"><img src="https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcQB1T4_bghGtisR6Tom0Umf3FZHCQoPGFJgD0Orck3cB0F8iTZN" /></div>
                                <div class="titlebox">Share Your Toughts</div>
                            </li>
                            <li class="nomar1">
                                <div class="imagbox"><img src="https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcQB1T4_bghGtisR6Tom0Umf3FZHCQoPGFJgD0Orck3cB0F8iTZN" /></div>
                                <div class="titlebox">shout From The Rooftops</div>
                            </li>
                            <li class="nomar1">
                                <div class="imagbox"><img src="https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcQB1T4_bghGtisR6Tom0Umf3FZHCQoPGFJgD0Orck3cB0F8iTZN" /></div>
                                <div class="titlebox">15 Minutes of Fame</div>
                            </li>
                            <li class="nomar">
                                <div class="imagbox"><img src="https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcQB1T4_bghGtisR6Tom0Umf3FZHCQoPGFJgD0Orck3cB0F8iTZN" /></div>
                                <div class="titlebox">Super Contributor</div>
                            </li>
                            <li class="nomar1">
                                <div class="imagbox"><img src="https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcQB1T4_bghGtisR6Tom0Umf3FZHCQoPGFJgD0Orck3cB0F8iTZN" /></div>
                                <div class="titlebox">Share Your Toughts</div>
                            </li>
                            <li class="nomar1">
                                <div class="imagbox"><img src="images/ach6.gif" /></div>
                                <div class="titlebox">shout From The Rooftops</div>
                            </li>
                            <li class="nomar1">
                                <div class="imagbox"><img src="https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcQB1T4_bghGtisR6Tom0Umf3FZHCQoPGFJgD0Orck3cB0F8iTZN" /></div>
                                <div class="titlebox">15 Minutes of Fame</div>
                            </li>
                            <li style="margin:0 0 0 0;">
                                <div class="imagbox"><img src="https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcQB1T4_bghGtisR6Tom0Umf3FZHCQoPGFJgD0Orck3cB0F8iTZN" /></div>
                                <div class="titlebox">Contributor</div>
                            </li>
                        </ul>
                    </div>
                </div>
                <div class="spacer"></div>
            </div>
        </div>
    </div>
</div>
<div class="spacer"></div>
</div>
<div id="backgroundPopup"></div>
4

2 に答える 2

8

JavaScript エラーはUncaught TypeError: Cannot read property 'scrollHeight' of undefinedにありjquery.tinyscrollbar.js:54ます。ソースを見ると、 scrollHeight を見つけようとしています

oContent[options.axis] = oContent.obj[0]['scroll'+ sSize];

しかし、oContentは次のように定義されています

var oContent = { obj: $('.overview', root) };

マークアップに の要素がないclass="overview"ため、スクリプトは失敗しています。

スクリプトをダウンロードしたと思われるサイトの例、特に基本的なスクロールバーの HTML に従うことをお勧めします。スクリプトは、デモで取得していないマークアップを予期しています。

于 2012-05-22T13:20:50.127 に答える
0

カスタム スクロール バーが表示されますが、スクロールする機能がありません。デフォルトのブラウザのスクロールバーを使用しても問題ありませんか?

スクロールバーの div を削除して プロパティで置き換えるoverflow:hiddenと、ボックスはデフォルトのスクロール バーでスクロールします。overflow:scroll#scrollbar1 .viewport

これがjsfiddleのデモです。

いつでも戻って css でスクロールバーのスタイルを設定できます。css トリックのこの記事を参照してください。

それが役立つことを願っています!

于 2012-05-22T13:09:25.513 に答える