После того, как вопрос был обновлен:
q = [["99","99","99"],["9"]]
o = [["b","1"],["c","3"],["d","1"],["c","30"]]
q.flatten.map.with_index.with_object(Hash.new{ |h,k| h[k] = [] }) { |(qq, id), h| h[qq] << o[id] }.transform_values(&:to_h)
#=> {"99"=>{"b"=>"1", "c"=>"3", "d"=>"1"}, "9"=>{"c"=>"30"}}
Используя jQuery можно сравнить высоту документа, scrollTop положение и высоту области просмотра, которая могла бы получить Вас ответ, которого Вы требуете.
Что-то вроде:
$(window).scroll(function(){
if(isMyStuffScrolling()){
//There is a scroll bar here!
}
});
function isMyStuffScrolling() {
var docHeight = $(document).height();
var scroll = $(window).height() + $(window).scrollTop();
return (docHeight == scroll);
}
var root= document.compatMode=='BackCompat'? document.body : document.documentElement;
var isVerticalScrollbar= root.scrollHeight>root.clientHeight;
var isHorizontalScrollbar= root.scrollWidth>root.clientWidth;
Это обнаруживает, существует ли потребность в полосе прокрутки. Для значения по умолчанию iframes это совпадает с, существует ли полоса прокрутки, но если полосы прокрутки вызываются на или прочь (использование ‘прокрутки = "да" / "нет"’ атрибут в родительском документе или CSS ‘переполнение: прокрутите/скройте’ в iframe документе), затем, это может отличаться.
Я не думаю, что это может быть сделано, если iframe содержание прибывает из другого домена из-за ограничений безопасности JavaScript.
Править: В этом случае что-то вроде давания iframe имени ='someframe' и идентификатор ='someframe2' и затем сравнение ['someframe'].document.body.offsetWidth кадров с document.getElementById ('someframe2') .offsetWidth должно дать Вам ответ.
Я думаю, что Ваша вторая попытка на правильном пути. Кроме вместо this
, необходимо попытаться прокрутить/проверить document.body
.
$(window).scroll(function(){
if(isMyStuffScrolling()){
//scrolling
}else{
//not scrolling
}
});
function isMyStuffScrolling() {
var docHeight = $(document).height();
var scroll = $(window).height() ;//+ $(window).scrollTop();
if(docHeight > scroll) return true;
else return false;
}
улучшено-немного изменено из кода Джона Уинстенли