我有一些代码需要在调整大小和加载时检测滚动条。这很简单,当我运行$.fn.hasScrollBar = function() {
return this.get(0).scrollWidth > this.width();
}
$(window).on("resize", function () {
var tableWidth = $("table").width();
var wrapper = "<div class='top-scroll'><div class='inner'></div></div>";
var instruction = "<span class='instructions'>Scroll left to see more information</span>";
// This sets the overflow message and a placeholder width to match the table
if( $('.no-overflow').hasScrollBar()){
$('.no-overflow').before(wrapper);
$('.top-scroll').before(instruction);
$('.top-scroll').children().attr("style", "width:" + tableWidth + "px;");
}
// This synchronises the scrollbars
$(".top-scroll").scroll(function(){
$(".no-overflow")
.scrollLeft($(".top-scroll").scrollLeft());
});
$(".no-overflow").scroll(function(){
$(".top-scroll")
.scrollLeft($(".no-overflow").scrollLeft());
});
}).resize();
函数时会出现问题,它会一遍又一遍地附加元素。
下面是我正在使用的jQuery(演示是here)
new SqlParameter("@i", i) { TypeName = "MyTVP", SqlDbType = SqlDbType.Structured }
我希望追加只发生一次,并在没有滚动条时删除。
答案 0 :(得分:0)
检查滚动条:
template <typename VertexClass, typename Others>
class Mesh {};
仅创建一个if ($(document).height() > $(window).height()) {
//There is a vertical scrollbar
} else {
//There is no vertical scrollbar
}
:
.top-scroll
我还会将您的3个变量声明放在if( $('.no-overflow').hasScrollBar() && $('.top-scroll').length < 1) { // Check .top-scroll doesn't exists currently
$('.no-overflow').before(wrapper);
$('.top-scroll').before(instruction);
$('.top-scroll').children().attr("style", "width:" + tableWidth + "px;");
}
语句中,这样只有在语句为真时才会设置它们。当然,除非你在其他地方使用它们。