我visibility在Android上设置为隐形:
myImageView.setVisibility(View.INVISIBLE);
Run Code Online (Sandbox Code Playgroud)
然后让它可见:
myImageView.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)
现在我不知道是否myImageView可见,我该如何检查:
if (myImageView IS VISIBLE) {
Do something
} else {
Do something else
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我必须在括号内写什么?
我有一个ScrollView持有一系列的Views.我希望能够确定一个视图当前是否可见(如果当前显示它的任何部分ScrollView).我希望下面的代码可以做到这一点,令人惊讶的是它没有:
Rect bounds = new Rect();
view.getDrawingRect(bounds);
Rect scrollBounds = new Rect(scroll.getScrollX(), scroll.getScrollY(),
scroll.getScrollX() + scroll.getWidth(), scroll.getScrollY() + scroll.getHeight());
if(Rect.intersects(scrollBounds, bounds))
{
//is visible
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用量角器测试元素是否可见.这是元素的样子:
<i class="icon-spinner icon-spin ng-hide" ng-show="saving"></i>
Run Code Online (Sandbox Code Playgroud)
在chrome控制台中,我可以使用这个jQuery选择器来测试元素是否可见:
$('[ng-show=saving].icon-spin')
[
<i class=?"icon-spinner icon-spin ng-hide" ng-show=?"saving">?</i>?
]
> $('[ng-show=saving].icon-spin:visible')
[]
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在量角器中执行相同操作时,我在运行时遇到此错误:
InvalidElementStateError:
invalid element state: Failed to execute 'querySelectorAll' on 'Document':
'[ng-show=saving].icon-spin:visible' is not a valid selector.
Run Code Online (Sandbox Code Playgroud)
为什么这无效?如何使用量角器检查可见性?
我有一个UITableView与不同高度的单元格,我需要知道它们何时完全可见.
目前,我循环遍历可见单元格列表中的每个单元格,以检查每次滚动视图时它是否完全可见.这是最好的方法吗?
这是我的代码:
- (void)scrollViewDidScroll:(UIScrollView *)aScrollView {
CGPoint offset = aScrollView.contentOffset;
CGRect bounds = aScrollView.bounds;
NSArray* cells = myTableView.visibleCells;
for (MyCustomUITableViewCell* cell in cells) {
if (cell.frame.origin.y > offset.y &&
cell.frame.origin.y + cell.frame.size.height < offset.y + bounds.size.height) {
[cell notifyCompletelyVisible];
}
else {
[cell notifyNotCompletelyVisible];
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
请注意* - (NSArray )visibleCells返回可见单元格,这些单元格完全可见且部分可见.
编辑2:
这是在结合lnafziger和Vadim Yelagin的解决方案后的修订代码:
- (void)scrollViewDidScroll:(UIScrollView *)aScrollView {
NSArray* cells = myTableView.visibleCells;
NSArray* indexPaths = myTableView.indexPathsForVisibleRows;
NSUInteger cellCount = [cells count]; …Run Code Online (Sandbox Code Playgroud) 用于检查div类"media"是否在浏览器可视视口内,而不管窗口滚动位置如何.
<HTML>
<HEAD>
<TITLE>My first HTML document</TITLE>
</HEAD>
<BODY>
<div class="main">
<div class="media"></div>
</div>
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)
尝试使用此插件https://github.com/customd/jquery-visible与此功能,但我不知道如何使其工作.
$('#element').visible( true );
Run Code Online (Sandbox Code Playgroud) 我需要在可滚动区域内检索div的可见高度.我认为自己与jQuery相当不错,但这完全让我失望.
假设我在黑色包装中有一个红色div:

在上图中,jQuery函数将返回248,即div的可见部分.

一旦用户滚过div的顶部,如上图所示,它将报告296.

现在,一旦用户滚过div,它将再次报告248.
显然,我的数字不会像在这个演示中那样一致和清晰,或者我只是对这些数字进行硬编码.
我有一点理论:
看起来很简单,但我无法绕过它.明天早上我会再接受一次破解; 我只想你们中的一些天才可能会有所帮助.
谢谢!
更新:我自己想出来,但看起来下面的答案之一更优雅,所以我将使用它.对于好奇,这是我想出的:
$(document).ready(function() {
var windowHeight = $(window).height();
var overviewHeight = $("#overview").height();
var overviewStaticTop = $("#overview").offset().top;
var overviewScrollTop = overviewStaticTop - $(window).scrollTop();
var overviewStaticBottom = overviewStaticTop + $("#overview").height();
var overviewScrollBottom = windowHeight - (overviewStaticBottom - $(window).scrollTop());
var visibleArea;
if ((overviewHeight + overviewScrollTop) < windowHeight) {
// alert("bottom is showing!");
visibleArea = windowHeight - overviewScrollBottom;
// alert(visibleArea);
} else {
if (overviewScrollTop < 0) { …Run Code Online (Sandbox Code Playgroud) 我一直在使用服务器标签(如<%= whatever%>)在.NET Framework 4项目中工作,以设置runat ="server"控件的可见性,如下所示:
<div id="MyId" runat="server" visible="<%=MyVisiblePropertyOnCodeBehind %>" >
Content
</div>
Run Code Online (Sandbox Code Playgroud)
这适用于框架4,但现在尝试在Framework 3.5项目上使用它似乎不起作用.这是Framework 4的唯一功能吗?是否有最酷的(和.aspx方面)替代方案来设置代码隐藏的可见性?我正在使用丑陋的:
MiId.Visible = MyVisiblePropertyOnCodeBehind
Run Code Online (Sandbox Code Playgroud)
提前致谢,
汤姆
[已编辑]解决方案:
感谢您的评论让我了解我的问题和解决方案!
不止一件事是我的错.
在VS2010项目中,我们使用<%#而不是<%=
另外,我没有注意到在VS2010项目中我们使用的页面不是来自"Page",而是来自CustomPage类,它自动进行绑定,没有我注意到它,这让我认为这是一个框架4.0仅限功能.
正如您在此处所述,如果您有以下标记:
<div id="MyId" runat="server" visible="<%# MyVisiblePropertyOnCodeBehind %>" >
Content
</div>
Run Code Online (Sandbox Code Playgroud)
你可以使它工作,将以下内容添加到代码隐藏:
public bool MyVisiblePropertyOnCodeBehind = true;
protected void Page_Load(object sender, EventArgs e) {
DataBind();
// Or if you want only for one control, MyId.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
在我看来,这个DataBind()可以降低应用程序的性能.你知道多少钱吗?这可以被理解为在大项目中使用的"专业"技术,还是你认为应该避免?
我喜欢它在单个视图中使标记可读且易于理解的方式,但我不想因为这样而对慢代码感到内疚.
我正在尝试编写一个隐藏/显示div的脚本,具体取决于其他元素的可见性.当我点击其他元素时,应该执行该操作.这是我到目前为止所写的内容:
$('#column-left form').hide();
$('.show-search').click(function() {
$('#column-left form').stop(true, true).slideToggle(300);
if( $('#column-left form').css('display') == 'none' ) {
$("#offers").show();
} else {
$('#offers').hide();
}
});
Run Code Online (Sandbox Code Playgroud)
它隐藏了div,但是当我隐藏表单时它不会回来.对任何帮助都会很有帮助:)
编辑:
好吧,我已经设法通过写这个来达到预期的效果:
$('#column-left form').hide();
$('.show-search').click(function() {
if ($('#column-left form').is(":hidden")) {
$('#column-left form').slideToggle(300);
$('#offers').hide();
} else {
$('#column-left form').slideToggle(300);
$("#offers").show();
}
});
Run Code Online (Sandbox Code Playgroud)
我不知道它是否写得正确但是有效;)谢谢大家的帮助!
我要检查,如果View内的ScrollView是目前Android中可见.我没有检查它是否专注于它,但它是否正在屏幕上显示.有没有一种方法View可以告诉我视图当前是否可见?
这是我的div
<div id="car2" style="display:none;"></div>
Run Code Online (Sandbox Code Playgroud)
然后我有一个Show按钮,当你点击时会显示div:
$("show").click(function() {
$("$car2").show();
});
Run Code Online (Sandbox Code Playgroud)
所以现在我想#car2在表单提交之前检查div 是否仍然隐藏:
if($('#car2').is(':hidden')) {
alert('car 2 is hidden');
}
Run Code Online (Sandbox Code Playgroud)
现在这是问题所在.虽然div #car2已经显示,但我仍然收到警告消息,这意味着jQuery假设div #car2仍然是隐藏的.
我的jQuery版本是1.7.
谢谢.
编辑:
正如jasper所说,我的代码是正确的,可以通过这个演示运行.
我怀疑与我的表单使用的jquery表单与向导插件存在一些冲突.有人有任何想法解决这个问题吗?
visible ×10
jquery ×4
android ×3
javascript ×2
.net ×1
android-view ×1
angularjs ×1
asp.net ×1
height ×1
hidden ×1
hide ×1
if-statement ×1
ios ×1
protractor ×1
scrollview ×1
servertag ×1
show ×1
uitableview ×1