小编Squ*_*Cat的帖子

使用jQuery获取元素的后代,这些元素不是具有特定CSS类的容器的子元素

我有一种情况,我需要选择某个元素的所有后代,但排除那些容器的子元素,它等于我运行我的选择器的容器的CSS类.

相当复杂的描述.

<div class="container">
   <div class="element"></div>
   <div class="element"></div>
   <div class="element"></div>
   <div class="element">
       <div class="container">
           <div class="element"></div>
           <div class="element"></div>
           <div class="element"></div>
       </div>
   </div>
Run Code Online (Sandbox Code Playgroud)

在最外面的DIV上运行jQuery .find('.element')将获得所有DIV,甚至是第二个容器内的DIV.这就是我试图避免的.

是否有针对此案例的快速简单的jQuery选择器解决方案?

css jquery jquery-selectors

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

如何获取MP3文件(VBR或CBR)服务器端的实际持续时间

我曾经使用ffmpeg计算服务器端MP3文件的持续时间 - 这似乎工作正常.今天我发现有些计算错了.不知何故,由于某种原因,ffmpeg将错误地计算持续时间,并且它似乎只发生在可变比特率mp3文件中.

在本地测试时,我注意到ffmpeg以绿色打印了两条额外的线条.

使用的命令:

ffmpeg -i song_9747c077aef8.mp3
Run Code Online (Sandbox Code Playgroud)

ffmpeg说:

[mp3 @ 0x102052600] max_analyze_duration 5000000 reached at 5015510
[mp3 @ 0x102052600] Estimating duration from bitrate, this may be inaccurate
Run Code Online (Sandbox Code Playgroud)

在一个不错的,温暖的谷歌会议之后,我发现了一些帖子,但没有找到解决方案.

然后我试着增加最长持续时间:

ffmpeg -analyzeduration 999999999 -i song_9747c077aef8.mp3
Run Code Online (Sandbox Code Playgroud)

在此之后,ffmpeg仅返回第二行:

[mp3 @ 0x102052600] Estimating duration from bitrate, this may be inaccurate
Run Code Online (Sandbox Code Playgroud)

但在任何一种情况下,计算的持续时间都是完全错误的.将其与VLC进行比较我注意到持续时间是正确的.

经过更多的研究,我偶然发现了mp3info - 我安装和使用了它.

mp3info -p "%S" song_9747c077aef8.mp3
Run Code Online (Sandbox Code Playgroud)

然后mp3info返回CORRECT持续时间,但只作为一个整数,我不能使用,因为我需要一个更准确的数字.用户blahdiblah在下面的评论中解释了这个原因- mp3info只是从文件中提取ID3信息而不是实际执行任何计算.

我也尝试使用mplayer来检索持续时间,但就像ffmpeg一样,mplayer返回错误的值.

mp3 duration ffmpeg

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

如何在FPDF中设置底部边距

我最近深入研究了FPDF,而我似乎并不理解的是 - 为什么没有办法设置底部保证金?有从顶部,左侧和右侧设置边距的功能,但不能从底部设置边距.

我现在假设我误解了关于FPDF如何工作的基本和概念,但我不知道可能是什么.

所以要减少它:

是否可以在FPDF中定义固定的底部边距?

php pdf margin fpdf

22
推荐指数
2
解决办法
3万
查看次数

在jQuery选择器中混合使用逻辑AND和OR

我必须过滤包含两个关键数据属性的项目列表:

<li class="song" data-title="freedom" data-id="7" data-tags="tag-18-eot,tag-2-eot" data-category="1">Freedom</li>
Run Code Online (Sandbox Code Playgroud)
  1. 类别
  2. 标签

按类别过滤应按逻辑OR进行,但按标记过滤应按逻辑AND过滤.

使用这两个中的一个进行过滤不是问题.

我申请了,例如:

$(collection).filter('li[data-tags*="tag-50-eot"][data-tags*="tag-51-eot"]');
Run Code Online (Sandbox Code Playgroud)

按标签过滤.要么:

$(collection).filter('[data-category="1"], [data-category="2"]);
Run Code Online (Sandbox Code Playgroud)

按类别过滤.

这很好用.但是,我找不到一种方法将这两个选择器组合成一个我可以传递给filter()函数的单个查询,并且链接两个filter()调用不会产生所需的结果,因为第一个调用可能会过滤掉第二个调用的项目忘在脑后.

我发现这个问题有类似的话题,但问题有点不同,方法也是如此.

如何正确过滤这些项目?

javascript jquery dom jquery-selectors

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

支持事件的图像预加载器javascript

我正在尝试找到一个图像预加载器脚本.

虽然我发现了一些,但它们都不支持在预加载完成时触发的事件.

有谁知道会这样做的任何脚本或jQuery插件?

希望这个问题适合stackoverflow - 如果没有,请随时将其删除.

javascript jquery image preloader preloading

7
推荐指数
1
解决办法
7956
查看次数

在flexbox设计中如何定位中断前的最后一个元素?

想象一下这个布局:

[BOX]  [BOX]  [BOX]
[       BOX       ]
Run Code Online (Sandbox Code Playgroud)

哪个是flexbox设计,并且 - 如果屏幕缩小 - 将如下所示:

[  BOX  ] [  BOX  ]
[       BOX       ]
[       BOX       ]
Run Code Online (Sandbox Code Playgroud)

如果屏幕太窄而不能显示彼此相邻的两个盒子,那么它将成为一组4行.

到现在为止还挺好.

我正在寻找一种方法来定位上排的最后一个元素,无论Flexbox当前如何调整到它的环境.

当然我想到了CSS伪类,但我找不到除了典型的那些之外的任何东西,例如:last-child:last-of-type:nth-child,这在这种情况下无济于事.

有没有办法在CSS中完全做到这一点?如果有,怎么样?

css css3 flexbox

7
推荐指数
1
解决办法
370
查看次数

使用Javascript在Mac上检测FN-Key

我想在我的CMS应用程序中捕获Mac键盘上的fn键.将事件绑定到密钥并记录代码向我显示fn-key返回的密钥代码为0(零).

我很想把它作为一个给定的 - 但在我实现之前,我想和你们一起回顾一下,看看你是否认为这是这个密钥的正确代码,或者它只是意味着系统不知道如何解释那个特定的关键事件.

很高兴在这里得到一些意见.

谢谢!

javascript macos hotkeys keypress

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

在构建元素时,我可以暂时关闭所有CSS3过渡/动画吗?

我为网站创建了一个相当复杂的菜单.该菜单源于大量基于CSS3的动画.但是,当我导航到另一个页面时,菜单应该最初建立 - 并且没有所有动画,但是完成了JS而不是服务器端.

现在我想知道如何暂时完全禁用所有过渡/动画,直到菜单生成.

我想过创建一个覆盖动画的子类但它似乎不起作用,因为它总是在基类中定义的动画/转换正在被使用?

javascript animation css3 transitions

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

使用箭头键和智能延迟加载实现有机列表浏览

简单的场景

我有一个列表,我使用箭头键(向上,向下)实现浏览,并且在当前列表项的每次更改时,数据库对象通过AJAX加载.

甜.

问题

当用户非常快速地浏览列表时,我不希望每个请求都消失.但当然,原始请求应立即生效.

我的想法是使用变量作为延迟设置超时,并在项目的初始加载后,增加该变量.

这是有效的,但当用户停止浏览一小段时间,但随后继续,我仍然不希望每个请求都关闭.

所以我想,每次浏览事件都必须合理地增加延迟变量,直到达到阈值.

这种有机方法可以成功地减少不必要的物品装载量.

我的解决方案

我走了很远.这段代码(下面的解释)将完成这项工作,其中一个主要原因是:

在第一次浏览完成然后停止后,延迟将自动保持在(第二步)最小值150ms.

当然我试图解决这个问题,但正如你将看到的,这是一个有趣但可能相当常见的逻辑问题 - 我认为我的整体方法是错误的.

但我不知道如何.大脑无法计算.电脑说没有.

您可以筛选我给出的示例,也可以在jsFiddle中找到一个功能齐全的模拟器.

如果你选择jsFiddle:

单击按钮,立即显示项目加载.现在稍等一下,再次单击该按钮,初始加载将被延迟.如果您持续快速按下按钮,则只有在您完成点击过程后才会显示项目加载.

代码示例

我们在一个对象字面内,只是你知道.

_clickTimer: false,                     // holds what setTimeout() returns
_timerInc: 0,                           // the your timer delay are belong to us

/**
 * Function is triggered whenever the user hits an arrow key
 * itemRef is the passed list item object (table row, in this case)
 */

triggerItemClick: function(itemRef){

    var that=this;
    var itemId=$(itemRef).data('id');   // Get the item …
Run Code Online (Sandbox Code Playgroud)

javascript jquery timeout settimeout

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

滚动溢出时阻止滚动父容器:滚动容器已达到其限制

简单地说,我想你们都知道这个问题:你使用鼠标滚轮(或触控板手势)在div设置为的内部滚动overflow:scroll(或设置为该效果).当您到达可滚动区域的末尾时,滚动"命令"会立即发送到父容器 - 例如主窗口.

这可能很烦人,我想知道是否有办法防止它.

我创建了这个jsFiddle以展示问题并为实验提供基础.

我想到的唯一想法是使用,preventDefault但由于我不是JS向导,我不知道我在哪里或如何正确应用它.

html css jquery scrollable

5
推荐指数
2
解决办法
2369
查看次数