小编Alp*_*Dev的帖子

如何在 JS/Mootools 中实现 OnDestroy/OnDispose 事件?

JavaScript 中是否存在任何现有的 OnDestroy/OnDispose 事件,或者纯 JS 或 Mootools 中是否存在任何已知的自定义实现?假设我想在元素从 DOM 中销毁/删除时调用 console.log('bye') 。类似于这个jQuery 解决方案的东西

javascript events mootools

6
推荐指数
1
解决办法
4237
查看次数

如何在JavaScript中检查对象是否是KeyboardEvent?

我想要一个接受事件作为参数的函数,并检查是否传递了有效的事件对象.

function doSomething(e){
  if(e is a keyboard event){
   // Proceed
  } else {
    console.log('Error: e is not a KeyboardEvent');
  }
}
Run Code Online (Sandbox Code Playgroud)

typeof e回来object.但是调试控制台清楚地显示了KeyboardEvent,所以它必须以某种方式可读.

javascript

6
推荐指数
1
解决办法
2803
查看次数

防止浏览器视口在运行时页面高度增加时粘在底部?

现代浏览器似乎有一个功能,当页面高度增加时,视口会固定在底部。实际发生的是,当初始位置位于(或非常接近)页面底部时,浏览器以与增加高度相同的速率滚动视口。这导致页面看起来好像向上而不是向下扩展。

如何使用 CSS 或 JS 为某个页面禁用此功能,以便页面始终在视觉上向下扩展?

当然,当添加元素的高度被动画扩展时也会发生这种情况。出于这个原因,如果可能的话,我想避免之后重置滚动位置以防止可见跳转。可以在下面的 gif 中观察此“功能”(似乎仅在极少数情况下发生)与视口和放置动画交互的演示。

在此处输入图片说明

我知道一定有办法,否则每个无限滚动的站点都会陷入无限循环。反驳:对于超过特定高度限制的容器,Chrome 似乎不会这样做。所以也许无限滚动的网站甚至不会在他们的网站中解决这个问题。

javascript css

5
推荐指数
1
解决办法
854
查看次数

在JavaScript中获取未样式化元素的高度/宽度的最快方法是什么?

我在测量非临时未样式化元素的高度/宽度时遇到了性能问题。读取以下属性似乎很慢:

.offsetHeight
.clientHeight
.scrollHeight
Run Code Online (Sandbox Code Playgroud)

我在其他地方读到它很慢,因为以某种方式阅读它们会导致重排。至少,这就是我所发现的offsetHeight,但是其他两个的表现相同。这里存在某种量子魔术,因为从逻辑上读取属性不应导致页面重排。无论如何,有没有一种更快的方法可以在最简单的条件下查找元素的宽度/高度,在这种情况下该元素没有像margin, padding, border它那样应用任何样式,或者没有其他样式?

.style.height只是返回空字符串,因为它仅从style=""属性读取值,该属性在明确定义之前为空。

更新:window.getComputedStyle(el).height执行速度一样慢。

javascript performance

5
推荐指数
1
解决办法
2065
查看次数

如何从PHP网站作为特定的Windows用户运行可执行文件?

默认情况下,PHP在IUSR帐户下运行.直接执行时:

$lastline = exec('D:\\MyProgram.exe', $output, $return_var);
Run Code Online (Sandbox Code Playgroud)

它运行,但由于权限不足,程序无法完成任务.我的问题是:如何在PHP网站上的特定Windows帐户下运行可执行文件?

我试过了:

通过Sysinternals PsExec执行时:

$lastline = exec('D:\\PsExec.exe -u UserName -p Password -accepteula "D:\\MyProgram.exe"', $output, $return_var);
Run Code Online (Sandbox Code Playgroud)

MyProgram.exe甚至根本不执行.PHP抛出空输出,return_var是-1073741502.我认为这是某种未处理的异常.


通过lsrunas执行:

$lastline = exec('D:\\lsrunas.exe /user:UserName /password:Password /domain:DOMAIN /command:"D:\\MyProgram.exe" /runpath:D:\\', $output, $return_var);
Run Code Online (Sandbox Code Playgroud)

MyProgram.exe也不执行.PHP抛出空输出,return_var是0.


Microsoft的内置runas命令不起作用,因为它不接受密码作为参数.


使用像不同的PHP函数尝试shell_exec,systempassthru


尝试在IIS下创建新的应用程序池,以在LOCAL SERVICE,SYSTEM或特定用户下运行网站.编辑:这是我出错的地方.它应该工作,但在未启用"加载用户配置文件"设置时失败(我的答案中的第3步).

有没有人有工作建议?

注意:所有命令都在直接通过命令行工作和测试.

php command-line exec psexec runas

3
推荐指数
1
解决办法
5238
查看次数

删除上面的元素后,CSS3将元素动画或过渡到位置

在没有任何明显的闪烁和任何奇怪的情况下实现这一目标的最佳方法是什么?

开始的小提琴:http://jsfiddle.net/35qec14b/2/

$('.element').on('click', function(e){
  this.remove();
});
Run Code Online (Sandbox Code Playgroud)
.element {
  position:relative;
  width: 200px;
  margin:5px;
  padding:20px;
  cursor:pointer;
  background: rgb(150,200,250);
  transition:1s linear;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
(click to remove)
<div class="element">Element 1</div>
<div class="element">Element 2<br>Second line</div>
<div class="element">Element 3</div>
<div class="element">Element 4<br>Second line</div>
<div class="element">Element 5</div>
Run Code Online (Sandbox Code Playgroud)

注意:在这种情况下,删除的元素必须立即消失,因为它会出现在另一个位置,我们不希望它同时在两个地方可见.

目前为止的想法:

  • transform:translateY表示已移除的元素下面的所有元素(可能是大型列表的性能密集型)
  • 动画/变换下面第一个元素的边距,从被移除元素的高度变为0(利用链式动画?步骤开始?)
  • 用透明占位符替换已删除的元素,并将其自身高度设置为0

css animation css3 css-animations

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