2010-11-15 34 views
21

Thay vì chỉ định chiều rộng và chiều cao của canvas Raphael, tôi cần kích thước đó là 100% kích thước của vùng chứa. Vì vậy, tôi chỉ có thể làm một Raphael ("container", containerElement.width, containerElement.height) và thiết lập chức năng onresize để thiết lập lại các giá trị đó. Nhưng sau đó các nội dung được rất jumpy và bận rộn như tôi thay đổi kích thước cửa sổ hoặc container bởi vì các thanh cuộn (mà tôi muốn nếu nó được quá nhỏ) flash trong và ngoài sự tồn tại.Vải Raphael điền một ngăn chứa div

Đây có phải là cách thích hợp để ràng buộc canvas của Raphael với kích thước đầy đủ của vùng chứa không? Tôi cũng muốn cung cấp tùy chọn để làm cho "toàn màn hình" của Raphael canvas chiếm toàn bộ cửa sổ trình duyệt.

Trả lời

27

Nếu bạn đang sử dụng div thì bạn có thể sử dụng CSS để đặt thành 100% chiều rộng và chiều cao. Sau đó, bạn sử dụng Raphael("container", "100%", "100%")

Để làm cho chế độ toàn màn hình, hầu hết các trình duyệt đều có lệnh để thực hiện việc này. Vì vậy, nếu bạn thực sự đang thực hiện 100% thì khi bạn nhấn nút lệnh, ví dụ: (F11 trong firefox) nó sẽ trở thành màn hình FULL.

+0

Tôi có ấn tượng khi đọc tài liệu và các bài đăng khác trong diễn đàn thảo luận nhóm của Google mà bạn phải nhập số (đối với số pixel) trong hàm tạo Raphael chứ không phải phần trăm. Tôi sẽ thử điều đó, cảm ơn. Về toàn màn hình, tôi chỉ có nghĩa là toàn màn hình của cửa sổ trình duyệt, vì vậy 100%, 100% sẽ cho phép điều đó. –

+2

Tài liệu Raphael hiển thị bằng cách sử dụng các kích thước cụ thể nhưng việc sử dụng tỷ lệ phần trăm không hoạt động, từ trải nghiệm bản thân. Tôi giả định rằng bạn biết về tài liệu Raphael, nhưng đây là một liên kết nếu bạn không: http://raphaeljs.com/reference.html –

+1

Cảm ơn bạn Adam, có vẻ như đây là câu trả lời! Tôi đọc tài liệu, nhưng nó đặc biệt nói rằng chúng tôi đã phải đặt một số điểm ảnh ở đó. –

1

Raphael("container", "100%", "100%"); sẽ lấp đầy canvas thành chiều rộng/chiều cao của vùng chứa DIV. Điều này hoạt động tốt trong Chrome và Safari. Để có được Firefox trên tàu bạn sẽ cần phải cung cấp cho cơ thể và html 100% chiều rộng/chiều cao trong css, nếu không vector sẽ bị cắt bớt.

+2

Đó không phải là câu trả lời chính xác giống như câu trả lời được chấp nhận? –

+1

không, câu trả lời được chấp nhận không nói bất cứ điều gì về 100% html và nội dung trên firefox – supercrabtree

0

Hơi muộn một chút nhưng tôi sẽ đăng ở đây để những người khác đang tìm kiếm.

var h = $('container').height(); //get the container height into variable h  
    var w = $('container').width(); //get the container width into variable w 
    //set your Raphael canvas to the variables 
    var contpaper = Raphael("container", w, h); 
    var doit; 
    //function to reload the page and/or do other adjustments 
    function resizedw(){ 
     document.location.reload()     
    } 
    //call function 200 ms after resize is complete. 
    $(window).resize(function(){clearTimeout(doit); 
     doit = setTimeout(function() { 
     resizedw(); 
    }, 200)}); 

Giải pháp này là trình duyệt chéo và di động để bạn có thể sử dụng để kết hợp thiết kế đáp ứng. Bằng cách thêm các thông báo cho chiều rộng hoặc chiều cao của khung nhìn vào javascript của bạn dưới dạng các câu lệnh if, bạn có thể xác định tất cả các hình dạng của mình dựa trên các biến tương tự.

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