标签: visible

如何检查Android中的视图是否可见?

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)

我怎样才能做到这一点?我必须在括号内写什么?

user-interface android visible

168
推荐指数
3
解决办法
18万
查看次数

Android:如何检查ScrollView中的View是否可见?

我有一个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)

android scrollview visible

160
推荐指数
11
解决办法
8万
查看次数

如何使用量角器检查元素是否可见?

我正在尝试使用量角器测试元素是否可见.这是元素的样子:

<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)

为什么这无效?如何使用量角器检查可见性?

visible angularjs protractor

108
推荐指数
4
解决办法
11万
查看次数

检查UITableViewCell是否完全可见的最佳方法

我有一个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:

这是在结合lnafzigerVadim Yelagin的解决方案后的修订代码:

- (void)scrollViewDidScroll:(UIScrollView *)aScrollView {
    NSArray* cells = myTableView.visibleCells;
    NSArray* indexPaths = myTableView.indexPathsForVisibleRows;

    NSUInteger cellCount = [cells count]; …
Run Code Online (Sandbox Code Playgroud)

visible uitableview ios

90
推荐指数
5
解决办法
5万
查看次数

Jquery检查元素在视口中是否可见

用于检查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)

javascript jquery visible

86
推荐指数
3
解决办法
19万
查看次数

使用jQuery获取div的可见高度

我需要在可滚动区域内检索div的可见高度.我认为自己与jQuery相当不错,但这完全让我失望.

假设我在黑色包装中有一个红色div:

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

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

现在,一旦用户滚过div,它将再次报告248.

显然,我的数字不会像在这个演示中那样一致和清晰,或者我只是对这些数字进行硬编码.

我有一点理论:

  • 获取窗口的高度
  • 获得div的高度
  • 从窗口顶部获取div的初始偏移量
  • 用户滚动时获取偏移量.
    • 如果偏移为正,则意味着div的顶部仍然可见.
    • 如果它是负数,那么div的顶部已被窗口黯然失色.此时,div可以占据窗口的整个高度,也可以显示div的底部
    • 如果显示div的底部,请计算它与窗口底部之间的间隙.

看起来很简单,但我无法绕过它.明天早上我会再接受一次破解; 我只想你们中的一些天才可能会有所帮助.

谢谢!

更新:我自己想出来,但看起来下面的答案之一更优雅,所以我将使用它.对于好奇,这是我想出的:

$(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)

javascript jquery height visible

83
推荐指数
3
解决办法
5万
查看次数

在Framework 3.5中设置具有服务器标记<%=%>的可见属性

我一直在使用服务器标签(如<%= 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()可以降低应用程序的性能.你知道多少钱吗?这可以被理解为在大项目中使用的"专业"技术,还是你认为应该避免?

我喜欢它在单个视图中使标记可读且易于理解的方式,但我不想因为这样而对慢代码感到内疚.

.net asp.net visible servertag

54
推荐指数
1
解决办法
8万
查看次数

jQuery if语句来检查可见性

我正在尝试编写一个隐藏/显示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)

我不知道它是否写得正确但是有效;)谢谢大家的帮助!

jquery if-statement show hide visible

46
推荐指数
2
解决办法
11万
查看次数

如何判断Android中的视图是否可见?

我要检查,如果View内的ScrollView是目前Android中可见.我没有检查它是否专注于它,但它是否正在屏幕上显示.有没有一种方法View可以告诉我视图当前是否可见?

android visible android-scrollview android-view

37
推荐指数
4
解决办法
3万
查看次数

使用jquery隐藏check div

这是我的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表单与向导插件存在一些冲突.有人有任何想法解决这个问题吗?

jquery hidden visible

35
推荐指数
3
解决办法
13万
查看次数