我正在编写一个用户第一次滚动的页面,它实际上并没有向下滚动页面,而是添加了一个带有转换的类.我想检测用户何时向下滚动,因为如果他向上滚动,我希望它能做其他事情.我发现的所有方法都是基于定义当前正文ScrollTop,然后在页面滚动后与body scrollTop进行比较,定义方向,但由于页面实际上没有滚动,所以body scrollTop()不会改变.
animationIsDone = false;
function preventScroll(e) {
e.preventDefault();
e.stopPropagation();
}
$('body').on('mousewheel', function(e) {
if (animationIsDone === false) {
$("#main-header").removeClass("yellow-overlay").addClass("yellow-overlay-darker");
$(".site-info").first().addClass("is-description-visible");
preventScroll(e);
setTimeout(function() {
animationIsDone = true;
}, 1000);
}
});
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的,但是这样,我滚动它的方向并不重要,触发事件
我正在使用角度来制作电子商务,而我正在设置无限滚动到产品列表页面.一切正常,但我想使用URL来设置页面,因此用户可以通过URL访问特定页面.如何在URL中设置像"pageNumber"这样的变量?比如"www.page.com/page/2/"(我想得到2号并将其传递给商店控制员)
这是我现在的代码
(function() {
var app = angular.module('concurseirosUnidos', ['store-directives', 'ngRoute']);
app.config(function($routeProvider, $locationProvider){
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {templateUrl: 'partials/products-list.html'})
.when("/page/$pageNumber"), {
// probably I'd need to put something here?
})
.otherwise({redirectTo:'/'});;
}
});
app.controller('StoreController', ['$http', '$scope', function($http, $scope){
var store = this;
store.products = [];
$http.get('/app/products/products.json').success(function(data){
store.products = data;
});
if(typeof page === 'undefined'){
var page = 1;
}else{
//if it's defined through the url, page = pageNumberFromURL
}
$scope.myLimit = 3 * page;
$scope.nextPage = function () {
page++; // I …Run Code Online (Sandbox Code Playgroud) 我正在使用javascript在浏览器中创建钢琴.为了让我同时多次播放相同的键,而不是只播放Audio对象,我克隆它并播放克隆,否则我必须等待音频完成或重新启动它,我不知道我想要.
我做过这样的事情:
var audioSrc = new Audio('path/');
window.onkeypress = function(event) {
var currentAudioSrc = audioSrc.cloneNode();
currentAudioSrc.play();
}
Run Code Online (Sandbox Code Playgroud)
问题是,我正在检查chrome的检查器,我注意到每次克隆对象时,浏览器都会再次下载它

我检查了一些想要实现类似功能的人,并注意到他们中的大多数都遇到了同样的问题,他们重新下载了文件.我发现可以同时多次播放相同音频源的唯一示例是SoundJs http://www.createjs.com/SoundJS
我尝试检查源可能但无法弄清楚它是如何完成的.任何的想法?
我遇到了一个奇怪的 JavaScript 行为。如果我尝试使用 进行排序
['a', 'b','c', 'd', 'e', 'f', 'g', 'h','i', 'j'],[].sort((a, b) => a > b)它会返回正确排序的数组(在本例中,与之前完全相同),但如果我向数组中添加一项,例如:
['a', 'b','c', 'd', 'e', 'f', 'g', 'h','i', 'j', 'k'].sort(
(a, b) => a > b
)
Run Code Online (Sandbox Code Playgroud)
它返回:
["f", "a", "b", "c", "d", "e", "g", "h", "i", "j", "k"]
奇怪的是,如果我将“l”添加到数组中,它会返回:
["g", "a", "b", "c", "d", "e", "f", "h", "i", "j", "k", "l"]
(“f”现在位于正确的位置,但“g”不是 oO)
如果我.sort在不提供比较器的情况下使用该方法,它会正确排序,但这对我来说没有用,因为我实际上是在尝试按属性对对象数组进行排序,例如:
[{ firstName: 'Peter' }, { firstName: 'Alfred' }]
有谁知道为什么会发生这种情况?