小编Ori*_*iol的帖子

如何在JavaScript中获取HTML元素的水平滚动百分比?

我们如何计算开始和结束之间元素上滚动条所覆盖的"距离"百分比?

<div id="container" style="overflow-x:scroll; max-width:1000px;">
  <div id="contained" style="width:3000px;"></div>
</div>

<script>
  $('#container').scroll(function(){
    var scrollPercentage; //How to get scroll percentage?
  });
</script>
Run Code Online (Sandbox Code Playgroud)

所以,如果滚动条完全位于左侧,我们想要得到0,如果它完全在我们想要的右边100.

html javascript jquery scroll

9
推荐指数
1
解决办法
2万
查看次数

CSS块中未公开的引用

此代码段在Firefox上为红色,在Chrome上为蓝色.谁是对的?

* { background: red; '}
* { background: blue; }
Run Code Online (Sandbox Code Playgroud)

§4.1.6区块说:

Single(')和双引号(")也必须出现在匹配对中,并且它们之间的字符被解析为字符串.

但是,如果匹配对中出现'"不出现,应该如何处理语法错误?

css syntax language-lawyer

9
推荐指数
1
解决办法
791
查看次数

CSS标识符可以以两个连字符开头吗?

CSS 2.1将标识符定义为

在CSS中,标识符只能包含字符[a-zA-Z0-9]和ISO 10646字符U + 00A0及更高,加上连字符( - )和下划线(_); 它们不能以数字,两个连字符或连字符后跟数字开头.标识符还可以包含转义字符和任何ISO 10646字符作为数字代码.

因此,--应该是一个无效的标识符,因此#--不应该选择具有id="--"以下内容的元素:

body { color: black }
#-- { color: red }
Run Code Online (Sandbox Code Playgroud)
<p id="--">I should be black.</p>
Run Code Online (Sandbox Code Playgroud)

属性选择器中,

属性值必须是标识符或字符串.

--似乎作为属性值的标识符,至少在Firefox上:

body { color: black }
[id=--] { color: red }
Run Code Online (Sandbox Code Playgroud)
<p id="--">I am red on Firefox.</p>
Run Code Online (Sandbox Code Playgroud)

此外,CSS.escape已修改为允许--:

Firefox 32中进行了一些小的更改,以匹配规范和CSS语法的演变.标识符现在可以开头,-- 第二个破折号不能转义.

根据Wayback Machine,变化发生在2014年4月19日至30日之间:

css firefox identifier css-selectors css3

9
推荐指数
2
解决办法
1873
查看次数

Tower Breakers - 带除数的 nim 游戏变体

我遇到过一款名为 Tower Breakers 的游戏,它似乎是nim 游戏的变体。

  • 有两个玩家,玩家 1 和玩家 2。
  • 最初有n塔,每个塔的高度为m,均为nm整数。
  • 玩家 1 开始,然后他们轮流移动。
  • 在每一回合中,玩家可以选择一座高度的塔x > 1,并将其高度降低到一个正整数y,其中1 <= y < xy整除x
  • 如果当前玩家无法采取任何行动,则输掉游戏。

有什么制胜策略吗?如果一开始塔的高度不相等怎么办?

algorithm math game-theory nim-game

9
推荐指数
2
解决办法
9889
查看次数

JavaScript中的i ++和++ i之间是否存在性能差异?

我读过C中的i ++和++ i之间有性能差异吗?:

如果不使用结果值,i ++和++ i之间是否存在性能差异?

JavaScript的答案是什么?

例如,以下哪项更好?

1)

for(var i=0;i<max;i++){
    //code
}
Run Code Online (Sandbox Code Playgroud)

2)

for(var i=0;i<max;++i){
    //code
}
Run Code Online (Sandbox Code Playgroud)

javascript performance operators pre-increment post-increment

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

如何在Apache` <If>`指令的正则表达式中转义斜杠符号`/`?

我想将.xhtml文件作为

  • application/xhtml+xml 如果浏览器说它接受了它.
  • text/html 除此以外

我尝试过这样做mod_rewrite但它不起作用Options -FollowSymLinks(如果我有'Options -FollowSymLinks`,那么在查看受Apache RewriteRule影响的文件时,为什么我会得到403 Forbidden?).

然后,我试过了

<Files "*.xhtml">
    <If "%{HTTP:Accept} !~ /application\/xhtml\+xml/">
        ForceType text/html
    </If>
</Files>
Run Code Online (Sandbox Code Playgroud)

但我得到一个语法错误:无法编译正则表达式.

同时,我用这个代码......

<Files "*.xhtml">
    <If "%{HTTP:Accept} !~ /xhtml\+xml/">
        ForceType text/html
    </If>
</Files>
Run Code Online (Sandbox Code Playgroud)

...有效,但我想匹配正确的MIME类型.

regex apache if-statement escaping slash

8
推荐指数
2
解决办法
4393
查看次数

在使用`Math.random()`时,我应该考虑获得排除上限的1 ^ 2 ^ 62的可能性吗?

来自MDN(https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/random):

Math.random

返回一个浮点伪随机数,范围[0, 1) 为0(包括),但不包括1(不包括),然后可以缩放到所需范围.

但后来,它说:

请注意,由于JavaScript中的数字是具有舍入到最近偶数行为的IEEE 754浮点数,因此这些范围(不包括Math.random()自身的范围)并不精确,并且在极少数情况下(取决于边界)顺序为1 in 2 ^ 62)来计算通常排除的上限.

我应该考虑那些案件吗?例如,使用......

Math.min(max, Math.floor(Math.random() * (max - min + 1)) + min);
Run Code Online (Sandbox Code Playgroud)

...代替...

Math.floor(Math.random() * (max - min + 1)) + min;
Run Code Online (Sandbox Code Playgroud)

...?

javascript random

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

CSS - 包装优先级

我有一个有3列的表

**********************************************************
*  Name        *     Description               * Actions *
**********************************************************
*  John        * Lorem ipsum bla bla etc eetc  *   B1    *
*              *                               *   B2    *
**********************************************************
Run Code Online (Sandbox Code Playgroud)

会发生什么是最后一列首先包装其内容,然后是描述列.我想首先包装Description列.我尝试添加white-space:nowrap但是Actions列永远不会包装.

浏览器如何确定要包装的列?

我希望第3列成为最后一个包装.因此,在描述列完全包装之前,它应该在一行上显示按钮.当柱子没有更多的空间时,可以包裹.

@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css');
Run Code Online (Sandbox Code Playgroud)
<table class="table">
  <thead>
    <tr>
      <th>Entity</th>
      <th>ID</th>
      <th>Description</th>
      <th>Actions</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Customer</td>
      <td>9004</td>
      <td>null, asdjkajk, kkkjk, kjkk, kkk, 898989</td>
      <td>
        <button class="btn c-btn">
          <span class="glyphicon glyphicon-pencil"></span>
        </button>
        <button class="btn c-btn">
          <span class="glyphicon glyphicon-remove"></span>
        </button>
      </td>
    </tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

html css

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

桌面上的Flexbox在Firefox中不起作用

使用flexbox控制表的布局在webkit浏览器中工作,但在Firefox中,<td>s只能呈现与其自己的内容一样宽.

演示:http://codepen.io/afraser/pen/wMgbzr? edit = 010

* {
  box-sizing: border-box;
}
table {
  border: 1px solid #ddd;
  width: 100%;
}
tbody {
  background: #fff;
}
tr {
  display: flex;
}
td:first-child {
  flex: 1 1 80%;
  background: mistyrose;
}
td:nth-child(2) {
  flex: 0 0 10%;
  background: Aquamarine;
}
td:nth-child(3) {
  flex: 0 0 10%;
  background: pink;
}
Run Code Online (Sandbox Code Playgroud)
<table>
  <tbody>
    <tr>
      <td>Ted</td>
      <td>1</td>
      <td>100%</td>
    </tr>
    <tr>
      <td>Turd Ferguson</td>
      <td>2</td>
      <td>65%</td>
    </tr>
    <tr>
      <td>Hingle McKringleberry</td>
      <td>3</td>
      <td>99%</td>
    </tr> …
Run Code Online (Sandbox Code Playgroud)

html css css3 flexbox

8
推荐指数
2
解决办法
1539
查看次数

将变量从时间死区中取出

看到这段代码:

<script>
let {foo} = null; // TypeError
</script>
<script>
// Here I want to assign some some value to foo
</script>
Run Code Online (Sandbox Code Playgroud)

第一个脚本试图foo通过解构赋值来声明.但是,null无法进行解构,因此赋值会引发TypeError.

问题是然后foo变量被声明但未初始化,所以如果在第二个脚本中我尝试引用foo,它会抛出:

foo = 123; // ReferenceError: can't access lexical declaration `foo' before initialization
Run Code Online (Sandbox Code Playgroud)

let变量不能重新声明:

let foo = 123; // SyntaxError: redeclaration of let foo
Run Code Online (Sandbox Code Playgroud)

有没有办法把它从TDZ中取出来,这样我就可以分配值并读取它们?

javascript variable-declaration ecmascript-6

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