Tôi đang sử dụng JQuery 1.12.4. Tôi có DIV sau đây, mà tôi dự định mở dưới dạng hộp thoại.Làm thế nào để mở jQuery của tôi phương thức rộng như các yếu tố của tôi nhưng không rộng hơn?
<div id="loginBox" style="display:none">
<div>Login/Sign Up</div>
<div id="loginLogos">
<a href="/auth/google"><img border="0" alt="Google" src="http://www.racertracks.com/assets/google_plus_icon-8d7622763257233cf58e0465806f58d7c4b82b85271c2d03d0e02b2fadc4ac76.jpg"></a>
<a href="/auth/facebook"><img border="0" alt="Facebook" src="http://runtrax.devbox.com:3000/assets/facebook-b74d7c49fd91aa6ca76518bf46c7b75fa3b23f47028bea4b2ffaa39f5776dd91.png"></a>
<a href="/auth/twitter"><img border="0" alt="Twitter" src="http://runtrax.devbox.com:3000/assets/twitter_icon-7dbf8db24c3ad328ea28cba340e4f53e033b64b149850324822cdb622d77f331.png"> </a>
</div></div>
Những gì tôi đang nhận thấy là khi tôi giảm độ rộng của màn hình của tôi lên khoảng 320 pixel (để mô phỏng một chiều rộng trình duyệt di động), hộp thoại được mở rộng hơn so với tổng chiều rộng của các yếu tố - có rất nhiều không gian màu trắng ở bên phải của hình ảnh. Xem Fiddle ở đây - https://jsfiddle.net/g4a60Lq7/3/. Làm thế nào tôi có thể làm cho hộp thoại mở rộng bằng các phần tử và không rộng hơn? Dưới đây là cách tôi đang mở hộp thoại ...
var opt;
opt = {
autoOpen: false,
modal: true,
width: 'auto',
dialogClass: 'noTitle',
focus: function() {
return $(this).dialog('option', 'width', $('#loginBox').width() + 50);
}
};
$("#loginBox").dialog(opt);
return $("#loginBox").dialog("open");
Edit: Wanted phải đăng hình ảnh để đáp ứng với plunker thứ hai pritishvaidya của ...
Bạn đã cố gắng mà không có thêm 50 pixel, nhưng sử dụng outerWidth để thay thế? Giống như vậy: return $ (this) .dialog ('option', 'width', $ ('# loginBox'). OuterWidth()); –
Bằng cách này, tốt hơn là lưu trữ $ ("# loginBox") trong một biến, vì bạn đang sử dụng nó nhiều lần. Nó sẽ không cung cấp cho bạn hiệu suất đáng chú ý trong ví dụ cụ thể này, nhưng thực hành tốt đối với các đối tượng bộ nhớ cache được tái sử dụng thường xuyên, nếu không jQuery sẽ phải trải qua DOM mỗi lần và cuối cùng sẽ tăng thêm thời gian tải. –
Nếu tôi xóa "+50" ở kích thước màn hình thông thường, một trong các biểu tượng kết thúc tốt đẹp đến dòng tiếp theo ngay cả khi chúng bị lấn át trên cùng một dòng. – Dave