#javascript #jquery #css #scroll #word-wrap
#javascript #jquery #css #прокрутка #перенос слов
Вопрос:
Я создал небольшой код, который позволяет тексту обтекать некоторые фигуры. Использование простого Javsscript: Смотрите http://jsfiddle.net/lobin/YPBmJ/2 /
Чего я пытаюсь добиться, так это того, что фигура фиксирована и при прокрутке текст будет прокручиваться вокруг фигуры. Я оставляю фигуру фиксированной с помощью JS, привязанной к событию прокрутки, но это приводит к тому, что рендеринг не адаптируется к новой ситуации (см. jsfiddle).
Есть идеи, как это могло бы работать?
HTML:
<div class="box"><div class="shapewrapper"></div>Some long Text</div>
CSS:
.box {
width:600px;
height:400px;
position: absolute;
overflow-y: scroll;
}
.box .shapewrapper {
position: relative;
}
.box .shapewrapper .left {
background-color: #f00;
height:1px;
float:left;
clear:left;
}
JS:
var hbratio=10;
var h=$(".box").height();
for (i=h;i>0;i--) {
b=Math.round(i/10);
$(".shapewrapper").prepend('<div class="left" style="width:' b 'px;" />');
}
$(".box").scroll(function() {
var y=$(".box").scrollTop();
$(".shapewrapper").css("top",eval(y) 'px');
});
(Идея от http://www.csstextwrap.com )
Комментарии:
1. извините, комментарий не в том месте…
Ответ №1:
Я не знаю, есть ли способ достичь этого с помощью css (самостоятельно), но я придумал решение, которое включает jQuery.
Всякий раз, когда пользователь прокручивает элемент «.box», верхнее поле первого элемента «.left» должно быть скорректировано.
$(".box").scroll(function() {
$(".box .left").first().css("margin-top", $(this).scrollTop() "px");
});
Для того, чтобы это работало, пользователь должен фактически прокручивать элемент box, поэтому я изменил CSS для box на overflow: auto. Это также сработало бы, если бы пользователь прокручивал родительский элемент, но тогда селектор для события прокрутки необходимо было бы изменить на родительский элемент.
Я создал новый jsFiddle, чтобы продемонстрировать это: http://jsfiddle.net/EwQ5J/1 /
Комментарии:
1. Большое спасибо, Прели, я попытался создать оболочку вокруг фигур. Это работает так, как должно!
2. Я рад, что это сработало. Пожалуйста, установите для моего ответа значение «принятый ответ», если это помогло вам.