2012-08-01 7 views
7

Ich versuche obere & untere horizontale Bildlaufleisten für eine div anzuzeigen. Ich habe this SO question gefunden und den Seitencode entsprechend geändert.Anzeige von Bildlaufleisten oben und unten an einem DIV

HTML/Razor

<div class="wmd-view-topscroll"> 
    <div class="scroll-div"> 
    </div> 
</div> 
<div class="wmd-view"> 
    @Html.Markdown(Model.Contents) 
</div> 

CSS

.wmd-view-topscroll, .wmd-view 
{ 
    overflow-x: scroll; 
    overflow-y: hidden; 
    width: 1000px; 
} 

.scroll-div 
{ 
    width: 1000px; 
} 

Javascript

<script type="text/javascript"> 
$(function(){ 
    $(".wmd-view-topscroll").scroll(function(){ 
     $(".wmd-view") 
      .scrollLeft($(".wmd-view-topscroll").scrollLeft()); 
    }); 
    $(".wmd-view").scroll(function(){ 
     $(".wmd-view-topscroll") 
      .scrollLeft($(".wmd-view").scrollLeft()); 
    }); 
}); 
</script> 

Dieser Boden scrol zeigt Ibar wie normal, aber die obere Bildlaufleiste ist deaktiviert, was fehlt mir hier? Auch

Vielen Dank im Voraus


UPDATE

, wenn ich das Javascript zu entfernen, Ausgang ist gleich. Es scheint, dass Java Script Code nicht ausgeführt wird, aber keine Javascript Fehler aufgelistet sind.

+0

Siehe meine Antwort unten gegeben. –

Antwort

4

Schließlich gelang es mit diesem Code zu beheben ...

HTML

<div class="wmd-view-topscroll"> 
    <div class="scroll-div"> 
     &nbsp; 
    </div> 
</div> 
<div class="wmd-view"> 
    <div class="dynamic-div"> 
     @Html.Markdown(Model.Contents) 
    </div> 
</div> 

CSS

.wmd-view-topscroll, .wmd-view 
{ 
    overflow-x: auto; 
    overflow-y: hidden; 
    width: 1000px; 
} 

.wmd-view-topscroll 
{ 
    height: 16px; 
} 

.dynamic-div 
{ 
    display: inline-block; 
} 

Javascript/JQuery

<script type="text/javascript"> 
    $(function() { 

     $(".wmd-view-topscroll").scroll(function() { 
      $(".wmd-view") 
      .scrollLeft($(".wmd-view-topscroll").scrollLeft()); 
     }); 

     $(".wmd-view").scroll(function() { 
      $(".wmd-view-topscroll") 
      .scrollLeft($(".wmd-view").scrollLeft()); 
     }); 

    }); 

    $(window).load(function() { 
     $('.scroll-div').css('width', $('.dynamic-div').outerWidth()); 
    }); 
</script> 

Danke für die Antwort gegeben ... Es hat mir wirklich geholfen die Innere zu verstehen Arbeiten. :)

11

Sie können durch einige Optimierungen in Ihrem HTML und CSS wie unten angegeben erreichen;

HTML sollte wie folgt aussehen:

<div class="wmd-view-topscroll"> 
    <div class="scroll-div1"> 
    </div> 
</div> 
<div class="wmd-view"> 
    <div class="scroll-div2"> 
     @Html.Markdown(Model.Contents) 
    </div> 
</div> 

CSS sollte wie folgt aussehen:

wmd-view-topscroll, .wmd-view { 
    overflow-x: scroll; 
    overflow-y: hidden; 
    width: 300px; 
    border: none 0px RED; 
} 

.wmd-view-topscroll { height: 20px; } 
.wmd-view { height: 200px; } 
.scroll-div1 { 
    width: 1000px; 
    overflow-x: scroll; 
    overflow-y: hidden; 
} 

.scroll-div2 { 
    width: 1000px; 
    height:20px; 
} 

SEE DEMO

+0

Sorry ... Das hat in meinem Projekt nicht funktioniert (gleiche Ergebnisse). Kann etwas in meiner Seitenstruktur falsch sein ... :( – Nalaka526

+0

@ Nalaka526: Verwenden Sie die gleichen CSS und HTML in meiner Antwort gegeben. –

+0

Grüße, können Sie dies mit einer 'Flüssigkeit' Breite tun? –

Verwandte Themen