2010-06-19 27 views
5

Tôi đang gặp phải sự cố này khi trang của tôi tải và sau đó sau một phần giây của hiệu ứng CSS hoặc kiểu tạo.CSS có hiệu lực sau khi trang đã hiển thị

Vấn đề chính tôi đang nhìn thấy là với các tab JQuery mà tôi đang sử dụng http://docs.jquery.com/UI/Tabs#source

Khi trang web này hiển thị, các tab hiển thị một bên dưới người kia trong một giây như thế này:

 
One 
Two 
Three 

và sau đó hiển thị chính xác dưới dạng các tab

Có cách khắc phục nhanh chóng và dễ dàng này không. Cảm ơn

+0

Thông thường, trang này thường được tải xuống theo kiểu trang quá chậm hoặc quá muộn. Bạn có thể hiển thị phần đầu của tài liệu HTML của bạn không? –

Trả lời

9

Nó không phải là kiểu; đó là thư viện jQuery UI javascript, là phần bổ sung html cần thiết vào trang của bạn để các tab có thể trông khá giống.

Bạn có một vài tùy chọn. Đầu tiên, bạn có thể ẩn các tab của bạn và hiển thị chúng khi jQuery UI đã hoàn thành phép thuật của nó. Thứ hai, bạn có thể tạo kiểu cho các tab của mình để chúng trông đủ gần với đầu ra đã hoàn thành để thay đổi không đáng chú ý. Thứ ba, bạn có thể thả jQuery UI và tạo kiểu cho các tab chỉ với CSS. Tất cả các phương pháp hợp lệ, tôi muốn nói.

Hy vọng điều này sẽ hữu ích!

EDIT:

Đối với tùy chọn đầu tiên, chúng ta hãy nói rằng đây là div của bạn có chứa các tab:

<div id="tabs"> 
    ...stuff... 
</div> 

Trong stylesheet của bạn, ẩn #tabs:

#tabs { 
    display:none; 
} 

Sau đó, sửa đổi cuộc gọi jQuery UI của bạn như vậy:

var t = $("#tabs"); 

t.tabs({ 
    create:function(){ 
     t.show(); 
    } 
}); 
+0

Cảm ơn ewwwyn - nếu tôi muốn đi với tùy chọn đầu tiên - làm cách nào để ẩn các tab và cách tôi biết giao diện người dùng JQuery đã hoàn thành ma thuật Cảm ơn – Gublooo

+0

thêm 'style = "display: none"' vào tab conatianer của bạn. Sau đó sử dụng jQuery để hiển thị chúng khi 'tài liệu sẵn sàng' – thomasfedb

+0

Vâng. Đặt phần tử để hiển thị: không có gì ban đầu. Sau đó, jQuery UI có một phương thức được gọi là "tải", mà bạn có thể gọi để hiển thị phần tử của bạn. Tôi sẽ sửa bài viết của mình để giải thích ... –

0

CSS có được áp dụng qua Javascript không? Trong trường hợp đó, bạn có thể thêm một số CSS tĩnh để đảm bảo các phần tử được hiển thị ít nhất được sắp xếp theo chiều ngang trước khi javascript được thực hiện, bằng cách thêm một số CSS tĩnh.

Nếu trường hợp đó trình duyệt chỉ quyết định áp dụng CSS sau khi hiển thị mà không có nó, bạn không thể làm gì nhiều. Tuy nhiên, nó có thể được tải xuống từ từ (nếu nó là một tệp bên ngoài), trong trường hợp này, bạn có thể thêm kiểu quan trọng nhất vào một phần CSS trực tiếp trong HTML.

+0

Xin cảm ơn thông tin hữu ích – Gublooo

0

Trình duyệt thường tải tệp khi chúng xuất hiện trong mã HTML của bạn. Hãy chắc chắn để đưa các tham chiếu đến tập tin CSS của bạn đầu tiên để nó tải càng sớm càng tốt.

Nếu CSS đang được áp dụng bằng Javascript, bạn không thể tải nó nhanh hơn. Tệp Javascript cần được tải trước khi có thể sử dụng.

Ngoài ra, tôi không nghĩ có cách kiểm soát cách hoạt động của trình duyệt hoạt động. phản ứng

+0

CSS không phải là vấn đề ở đây. Đó là ma thuật javascript của jQuery UI gây ra sự chậm trễ. –

+0

Cảm ơn người đàn ông - đánh giá cao nó – Gublooo

+0

Có, ewwwyn (đó là rất nhiều của w), nó xuất hiện vấn đề là javascript trong trường hợp này. Tôi cũng đã đề cập rằng trong đoạn thứ hai. Bài đăng của bạn giải quyết chính xác vấn đề đó, bài đăng tốt :) Không vấn đề gì, Gublooo. – Mathiasdm

2

weirdlover và gần như đã làm việc cho tôi (sử dụng jQuery 1.5.2), nhưng tôi đã phải treo các sự kiện create:

var t = $("#tabs"); 

t.tabs({ 
    create:function(){ 
     t.show(); 
    } 
}); 

Cảm ơn!

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