20.11.2015, 19:55
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от bes
|
ну если ещё немного поизвращаться подумать, то, если всё кроме этого элемента во фрейме будет перекрываться, заставить фрейм в момент перекрытия принимать размеры этого элемента, а сам фрейм делать выше, соответственно, когда перекрытие пропадает, возвращать всё обратно
|
я так и сделал 2 дня назад))
просто интересно было есть варианты без костылей)
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
20.11.2015, 21:16
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от cyber
|
я так и сделал 2 дня назад))
просто интересно было есть варианты без костылей)
|
когда дойдут руки до написания браузера, учту твои пожелания, ой что будет, что будет
|
|
21.11.2015, 00:43
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
bes,
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
21.11.2015, 10:23
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
У кого-нибудь есть идеи, как можно назвать метод для получения ближайшего родителя с прокруткой и метод для получения ближайшего родителя с position: absolute/relative?
|
|
21.11.2015, 10:49
|
|
Профессор
|
|
Регистрация: 15.01.2015
Сообщений: 622
|
|
getClosestScrollingParent и getClosestPositionedParent (самое тривиальное, что можно придумать)
|
|
21.11.2015, 10:50
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Ruslan_xDD
|
У кого-нибудь есть идеи, как можно назвать метод для получения ближайшего родителя с прокруткой и метод для получения ближайшего родителя с position: absolute/relative?
|
из области хз
getClosestScroller, getClosestAbsoluter, getClosestRelativer
|
|
21.11.2015, 14:36
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
Вроде всё учёл.
getClosestRelative: function(strict) {
var element, self = this,
pattern = strict ? /relative/ : /relative|absolute|fixed/;
while(self && self != document) {
if(pattern.test(window.getComputedStyle(self).position)) {
element = self;
break;
}
self = self.parentNode;
}
return element || document.body;
}
Что скажете, коллеги? Оставить регулярки или лучше сделать обычным сравнением через условия?
getClosestRelative: function(strict) {
var element, self = this, position;
while(self && self != document) {
position = window.getComputedStyle(self).position;
if(strict ? position == 'relative' : position != 'static') {
element = self;
break;
}
self = self.parentNode;
}
return element || document.body;
}
Последний раз редактировалось ruslan_mart, 21.11.2015 в 14:44.
|
|
21.11.2015, 14:53
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Ruslan_xDD
|
У кого-нибудь есть идеи, как можно назвать метод для получения ближайшего родителя с прокруткой и метод для получения ближайшего родителя с position: absolute/relative?
|
А потом тебе потребуется "точно такой же, но с перломутровыми пуговицами" в связи с чем, могу рекомендовать декомпозицию:
1. функция, кот. карабкается вверх по дереву и вызывает коллбек для каждой ноды
2. функция, кот. проверяет соответствует ли нода искомой ноде
function closest(root, cb) {
// цикл, до тех пор пока функция коллбек не вернет true
// или не будет достигнут корень дерева
}
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
21.11.2015, 15:06
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,120
|
|
Сообщение от Ruslan_xDD
|
Оставить регулярки
|
с регулярками иногда требуется скидывать lastIndex в ноль после каждой проверки, если регулярка создана 1 раз для всех проверок, а не в самой проверке ... это так на всякий случай
Последний раз редактировалось рони, 21.11.2015 в 15:08.
|
|
24.11.2015, 15:52
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
в последней ноде не работает
let {
Reference,
Repository
} = require("nodegit");
обидно
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
|
|