2010-07-26 90 views
6

Tôi đã phát triển một ứng dụng giao tiếp với hệ thống cảnh báo khẩn cấp của một tổ chức. Làm thế nào nó hoạt động được, khi có một cảnh báo, trên tất cả các trang web của tổ chức nó sẽ hiển thị một di chuyển marquee ở đầu trang được đặt ở đó bằng cách sử dụng javascript protoype và scriptaculous.Phát triển Web Android ... Chiều rộng Div (nhiều khả năng văn bản bên trong) đang thay đổi theo pixel dựa trên thu phóng thiết bị

Tất cả điều này hoạt động hoàn hảo trên các trình duyệt máy tính để bàn (IE6-8, Chrome, Safari, Firefox, Opera). Nó cũng hoạt động tốt trên iPhone. Vấn đề duy nhất của tôi là hiển thị trên Android. Trong nghiên cứu vấn đề ban đầu, tôi đã tìm thấy thuộc tính CSS cho thiết bị di động (cụ thể là webkit) -webkit-text-size-tuning, giúp thiết bị di động thay đổi kích thước văn bản khi phóng to và thay đổi hướng màn hình. Tôi đã đặt thuộc tính này thành 'none' như đã nêu trong nhiều bài viết.

Dưới đây là hình ảnh các ảnh chụp màn hình từ trình giả lập Android. Ảnh chụp màn hình bên trái hiển thị độ phóng đại 1x của trang. Khoảng cách giữa mỗi thông điệp là như vậy. Ảnh chụp màn hình bên phải hiển thị trang được phóng to. Các thông báo trùng lặp, khi kích thước văn bản được hiển thị khác nhau và chiều rộng div không đủ rộng để chứa văn bản.

http://www.themonkeyonline.com/spacing-example.jpg

Dưới đây là đoạn code mà đặt div trên trang:

var marquee = new Element('div', { 'id' : 'marquee' + marquee_counter }) 
.setStyle({ 'display' : 'block' 
    , 'WebkitTextSizeAdjust' : 'none' 
    , 'fontSize' : '12px' 
    , 'lineHeight' : '25px' 
    , 'left' : $(marquee_container).getDimensions().width + 'px' }) 
.addClassName('marquee_text') 
.update(marquee_text); 
$(marquee_container).insert(marquee); 

Có điều gì tôi đang thiếu?

Tôi sẽ tiếp tục nghiên cứu sự cố trong thời gian này. Nhờ tất cả mọi người đọc tất cả những điều này.


Cập nhật ngắn gọn ... sau khi thử nghiệm thêm, có vẻ như vấn đề không nhất thiết phải dựa trên thu phóng. Có vẻ như vấn đề là chế độ xem. Tôi đã thử nghiệm một số văn bản thực sự dài, và thậm chí thu nhỏ tất cả các con đường ra, nó đã chồng lên nhau. Dường như div chứa văn bản sẽ không tự kích thước lớn hơn cửa sổ.


Dưới đây là một ví dụ về mã trong hành động:

http://elliottr.www-dev.seminolestate.edu/alert/

Trả lời

1

Bạn có thể đăng liên kết đến trang demo nơi sự cố này xảy ra không? Tôi đã cố gắng tái tạo nó trên Milestone của tôi, nhưng không thể.

+0

Tôi thiết lập một trang thử nghiệm trên trang web phụ của tôi: http://elliottr.www-dev.seminolestate.edu/alert/ – Riley

+1

Điều này thật lạ. Nó hoạt động như trên Milestone chạy Android 2.1 ở chế độ ngang và dọc và không phân biệt mức thu phóng. – Daniel

+0

Cảm ơn Daniel.'WebkitTextSizeAdjust' dường như hoạt động như được quảng cáo trong phiên bản 2.1. Kỳ lạ, tôi đã thử nghiệm nó trên một EVO ngày khác và nó đã có cùng một vấn đề. Tuy nhiên, tôi chỉ thử nghiệm nó trên một DROID, và nó đã làm việc đúng cách. – Riley

0

Hãy thử thiết lập chiều rộng để hạn chế kích thước div của (bạn cũng sẽ cần phải thiết lập position: relative) và thiết lập overflow: hidden , do đó, văn bản sẽ không vượt quá kích thước của div

+0

Tôi đã thử nghiệm thiết lập chiều rộng trên các DIV. Tôi vẫn có cùng một vấn đề. Mặc dù trong ứng dụng thế giới thực cho hệ thống, thiết lập độ rộng tuyệt đối trên các DIV không phải là một lựa chọn khả thi. Các DIV được đặt hoàn toàn bên trong một phần tử tương đối định vị. Đây là những gì cho phép scriptaculous để "di chuyển" chúng trên màn hình. – Riley

+0

và tràn, nó có hoạt động không? –

+0

Áp dụng tràn: ẩn cho các div sẽ trong công việc lý thuyết. Tuy nhiên, vì văn bản có chiều rộng thay đổi, đây không phải là giải pháp thực tế cho ứng dụng này. – Riley