2017-01-10 18 views
7

Trong Góc 1.5 Tôi có một bảng trong một <md-content>. Tôi tự động thêm cột vào bảng và tại một số thanh cuộn ngang xuất hiện. Điều này là tốt.Bảng cuộn theo chiều ngang trong Góc md-content

Nhưng phần xấu là các cột mới không hiển thị. Làm thế nào tôi có thể lập trình cuộn <md-content> theo chiều ngang để các cột mới hiển thị?

+3

Bạn có thể gửi mã của bạn? –

+0

Sử dụng [angular-scroll-glue] (https://github.com/Luegg/angularjs-scroll-glue) là một lựa chọn. Bạn có thể attacth 'scroll-glue-right =" glued "' vào 'md-content' của bạn và nó sẽ hoạt động. Tôi có thể làm cho một plunker nếu phù hợp với điều này cho bạn – troig

Trả lời

2

Khi tôi đăng trong nhận xét, tại đây bạn có một working plunker sử dụng chỉ thị angular-scroll-glue.

Chìa khóa ở đây là đính kèm scroll-glue-right chỉ thị vào md-content của bạn.

<md-content scroll-glue-right> 
    ... 
</md-content> 

Xem mã hoàn chỉnh here

EDIT: Nếu bạn muốn di chuyển programatically thay vì tự động như trong plunker đầu tiên, bạn có thể ràng buộc scroll-glue-right đến một thuộc tính điều khiển. Ví dụ:

<md-content scroll-glue-right="glued"> 
... 
</md-content> 

Khi glued được đặt thành true, cuộn sẽ được kích hoạt. plunker Working here

Hy vọng nó giúp

+1

Điều này dường như làm việc độc đáo, cảm ơn! Một lưu ý: Tôi thấy bạn đã đặt tên cho mô-đun 'luegg.directives' nhưng tôi không thấy bất kỳ chỉ thị nào khác ở đó. Bất kỳ lý do nào bạn không chỉ đặt tên cho mô-đun này là 'scroll-glue'? –

+0

Xin chào @Garret Wilson! Rất vui được giúp đỡ và cảm ơn vì tiền thưởng. Tôi chỉ cần làm theo hướng dẫn sử dụng của angularjs-sceoll-keo (cần phải nhập luegg.directives để sử dụng nó). Tôi nghĩ bạn có thể đặt tên cho mô-đun của mình bất cứ điều gì bạn muốn nhưng bạn cần phải nhập chỉ thị là luegg.directives. – troig

+0

Ồ, xin lỗi, tôi nghĩ đó là chỉ thị của bạn! Tôi sẽ đưa ra phản hồi của tôi về dự án 'angular-scroll-glue'. –

2

Các bạn nhìn vào scrollLeft? Bạn có thể có được vị trí của phần tử cuộn, và sau đó di chuyển phụ huynh đến vị trí đó:

container.scrollLeft = childToScrollTo.getBoundingClientRect().left; 

Bạn chắc chắn có thể xây dựng này vào một chỉ thị nếu bạn cần, hoặc bạn chỉ có thể chạy một cái gì đó như thế này sau khi bạn thêm một cột. Dưới đây là một bản demo nhanh:

var scroll = function(){ 
 
    var container = document.getElementById('container'); 
 
    var childToScrollTo = document.getElementById('scrollto'); 
 
    
 
    container.scrollLeft = childToScrollTo.getBoundingClientRect().left; 
 
}
#container{ 
 
    white-space: nowrap; 
 
    overflow: auto; 
 
    width: 400px; 
 
} 
 

 
.child{ 
 
    display:inline-block; 
 
}
<button onclick="scroll()">scroll</button> 
 
<div id="container"> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child" id="scrollto">scroll here!</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
    <div class="child">child</div> 
 
</div>

Các vấn đề liên quan