【问题标题】:Enable mobile device users to toggle div between `position: fixed` and `position: static` (or 'relative')使移动设备用户能够在“位置:固定”和“位置:静态”(或“相对”)之间切换 div
【发布时间】:2015-07-28 02:07:31
【问题描述】:

我刚刚回到网页设计领域,并且发生了很多变化。目前我正在阅读很多 css 教程,我刚刚阅读了关于 position: fixed 及其 problems with mobile browsers 的信息。

这足以让我忽略它并继续做更重要的事情,但我想知道......如果我有一个小的“pin”图标,用户可以切换到“un-fix”那个元素如果他们觉得这对他们来说很麻烦?可能吗?

通过“取消修复”,是的,我的意思是把它从固定改回静态/默认。

不,不是移动设备看不到的简单视口逻辑设置...因为“移动设备”不是简单定义的。这只是某些浏览器上的问题,所以我认为它应该留给用户,移动设备或其他方式。单击图钉,它不再……嗯……固定。这样用户就可以缓解某些浏览器的异常行为。

【问题讨论】:

  • 所以你是说移动用户会点击一个“pin”图标,position: fixed 的元素会被释放到别的东西?那会是什么?也许您应该在问题中提供更多细节。
  • 如果将元素更改为position:static 是没有问题的,布局方面,我建议将其完全设置为position:static,而不是通过新的 UI 元素跳过箍来切换它。顺便说一句,看看描述问题的页面,这并不是那么糟糕:大多数浏览器要么忽略固定,要么让元素滚动,然后在滚动后将其弹回固定位置。我可以忍受。
  • @MrLister,完全同意。问题中引用的视频和文章描述了一个确实还不错的用户体验问题。如果情况严重,审查者将无法测试所有这些设备和平台,因为谷歌、三星、苹果等公司一开始就不会实现position: fixed
  • @bcsteeve,是的,我发表了评论。不,我没有否决你的问题。
  • @bcsteeve,考虑到 SO 上的某些人可能在考虑否决之前要求澄清和更多详细信息,而其他人可能只是扫描一个问题、注意到缺陷、否决并继续前进。跨度>

标签: css mobile css-position mobile-devices


【解决方案1】:

为了让用户控制手动释放固定元素,这里有一个简单的解决方案概念:

DEMO

HTML

<div id="fixed">
    <h1>Header</h1>
    <p id="release-button"><a href="#">click here to release</a></p>
    <br>
    <p><i>Just an illustration of a concept.
          Not built to toggle. Click 'Run' to refresh.</i></p>
 </div>

CSS

     body { height: 1500px; }

    #fixed {
        width: 95%;
        height: 200px;
        background-color: #ff0;
        border: 1px solid #ccc;
        text-align: center;
        margin: 0;
        padding: 0;
        position: fixed;

    }

    .static {position: static !important;}

jQuery

$('#release-button').click(function() {
    $('#fixed').addClass('static');
});

要在移动设备上自动发布固定元素,请使用媒体查询:

例子:

footer {
    position: fixed;
}

@media only screen and (max-device-width : 480px) {
    footer {
        position: static; /* or relative */
    }
}

【讨论】:

  • 是的,这就是我要说的!我很快就知道 JQuery 可以回答我的所有问题。我认为“自动发布”不适合 [在我看来],因为那样你就强迫 100-X% 的移动用户为了 X% 而没有设计的体验
  • @bcsteeve,在考虑您的问题并在移动设备上阅读更多有关 position: fixed 的信息时,我同意您的看法。这是一个需要改进的用户体验问题。尽管我们在严重性上存在分歧(我认为这没什么大不了的),但这不是重点。考虑到当前功能可能会激怒某些移动用户,因此应为所有用户提供取消固定固定元素的选项。他们可以点击一个简单的“x”来取消固定它就足够了。你提出了一个很好的 +1 点。
  • 另一方面,您最初可能因为您提出问题的方式而被否决。标题有些模糊和宽泛。为了清晰、搜索和缩小范围,我今天早些时候进行了编辑。为了将来参考,这里有一些您可能会觉得有用的提示:stackoverflow.com/help/how-to-ask
  • 最后,我包括了“自动”选项,仅供参考,对于可能通过搜索找到此答案但没有考虑过这种可能性的其他人。
  • 对于本网站上您认为有用的答案,consider an upvote。没有义务。只是推广优质内容的一种方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-19
  • 2011-12-23
  • 1970-01-01
  • 2011-04-16
  • 2011-08-17
  • 2013-03-17
相关资源
最近更新 更多