Tüyecilerden bahsettikleri gibi, önerilerinizin üstesinden gelmek için bir süreci bir araya getirmenin tüm ayrıntılarını ele almak, yaptığınız şeye bağlı olarak, ele alınması gereken pek çok ayrıntıya sahiptir.
Yapmaya çalıştığınız şeyin temeli şudur:
- Wrap metnin durumda yani için pozisyon bulmak istediğiniz metnin etrafında bir eleman, muhtemelen
<span>
.
- Eklediğiniz öğe veya öğelerin
$.offset()
veya $.position()
öğelerini kullanın. Hangisini seçerseniz seçin, yapmaya çalıştığınız şeyle ilgilidir; Birincisi, document
ile ilgilidir, ikincisi içeren eleman.
ben "vurgulamak" bir terim <span>
tarafından bulunan paragraflarda bulunan terimlerin göre position: absolute
ve top
/left
uzaklıklar (ile div
s kullanarak birkaç paragraflarda bir metin yazdığınız bir senaryonun basit demo yarattı onları çevreleyen).
Not: Bu sadece bir gösterimdir ($.offset()
); üretim hazır kod değil. Kod parçacıklarının altında canlı keman demosunun bir bağlantısı var.
İlk olarak, bulunan her terim için bir <div>
işaretini bulmak ve oluşturmak için bir işlev oluşturdum.
function highlightWordPositions(word) {
var $paras = $('p'),
$spans,
_top = 0,
_left = 0;
$paras.each(function(){
var $p = $(this),
regex = new RegExp(word, 'g');
$p.html($p.text().replace(regex, '<span>' + word + '</span>'));
$spans = $p.find('span');
$spans.each(function(){
var $span = $(this),
$offset = $span.offset(),
$overlay = $('<div class="overlay"/>');
$overlay
.offset($offset)
.css({
width: $span.innerWidth(),
height: $span.innerHeight()
}).show();
$(document.body).append($overlay);
});
});
}
Sonra, $.keyup()
olay için bir geri arama bağlı: http://jsfiddle.net/WKgWM/
html:
<p>Percussus ait in fuerat construeret cena reges undis effugere quod una.</p>
eylem
$('#term').keyup(function(event){
var term = this.value;
if (term == '') {
$('.overlay').remove();
return false;
} else if (term.indexOf(' ') != -1) {
this.value = term.replace(' ', '');
return false;
}
$('.overlay').remove();
highlightWordPositions(term);
});
http://jsfiddle.net/JaN75/
. Ekranda nasıl göründükleri ile ilgili olarak? Neyi başarmaya çalıştığınızı değil, nasıl elde edeceğinizi düşündüğünüzü açıklayın. –
Tam olarak pozisyonda ne demek istiyorsun? İndeks ya da ne ve hangi bağlamda/ebeveynde? – Sarfraz
Öğenizi javascript veya jquery ile alabilirsiniz, etiketle getirin. jquery ile konumunu çok kolay bulabilirsiniz. http://api.jquery.com/position/ –