|
мой движок ксс селекторов
function findelements(selector){
elem=[];
style=document.createElement('div');
rand=Math.floor(Math.random() * 1000);
style.innerHTML='<style>'+selector+'{z-index: ' + rand + '}</style>';
document.body.appendChild(style);
all=document.getElementsByTagName('*');
for(var i=0;i<all.length;i++)
{
if(window.getComputedStyle)
z=window.getComputedStyle(all[i],null).zIndex;
else
z=all[i].currentStyle.zIndex;
if (z==rand)
{
elem.push(all[i]);
}
}
return elem;
}
старался обьединить быстродейтсвие и краткость кода оцените принцип такой: создаём style тег туда пишем (заданый селектор) {z-index: случайное число} потом цикл по всем элеиментам на стр если з-индекс равен тому сл.числу то добавляем в масив |
Очень плохая идея.
z-Index уже вполне может использоватся для каких-либо элементов. а вы его внаглую меняете, и не возвращаете обратно |
function findelements(selector){
all=document.getElementsByTagName('*');
for(var i=0;i<all.length;i++)
{
if(window.getComputedStyle)
all[i].defaultzindex=window.getComputedStyle(all[i],null).zIndex;
else
all[i].defaultzindex=all[i].currentStyle.zIndex;
}
elem=[];
style=document.createElement('div');
rand=Math.floor(Math.random() * 1000);
style.innerHTML='<style>'+selector+'{z-index: ' + rand + '}</style>';
document.body.appendChild(style);
for(var i=0;i<all.length;i++)
{
if(window.getComputedStyle)
z=window.getComputedStyle(all[i],null).zIndex;
else
z=all[i].currentStyle.zIndex;
if (z==rand)
{
elem.push(all[i]);
}
all[i].style.zIndex=all[i].defaultzindex;
}
return elem;
}
вот переделал сейчас пытаюсь вставить его в jquery вместо стандартного движка подниму им рейтинг там правда через сервер зделано ,придется попотеть |
Цитата:
|
вы не прочли мою первую часть сообщения.
нельзя вот так брать, и использовать z-index для сторонних целей и не надейтесь, что вам удастся воткнуть ваш говнокод в jQUery им, он нафиг не нужен |
Цитата:
а на счет говнокода и "никому ненужен" время покажет |
Цитата:
вы считаете, что за несколько десятков лет, никому еще не пришло в голову так делать? нужность, вы правы, может показать время. и время уже показало ненужность такой идеи. либо вы мессия а вот говнокод можно увидеть, не ожидая года, и мнение многих людей. Цитата:
и он попадет в список элементов Цитата:
теперь, вы еще больше наговнокодили. вы только что искусственно задали всем элементам z-index, не зависящий от таблицы стилей |
Цитата:
Цитата:
|
Опишите свою идею более подробно, а то не совсем ясно что вы вообще хотите сделать, может вам и не прийдется изобретать велосипед
Цитата:
Цитата:
Цитата:
|
Цитата:
есть задачи, где даже вероятность коллизий Md5 является слишком большой а вы тут говорите о такой гигантской величине как 0.1%!!! Может быть вы не в курсе, но за этими числами стоят потерянные деньги,и для некоторых сайтов тот факт, что каждый тысячный покупатель не сможет провести покупку из-за вашего говнокода - весьма немаловажный фактор достойный увольнения нескольких не уследивших разработчиков Цитата:
вам бы сначала подрасти в профессиональном уровне, а затем горы ворочать запустите этот код следующим образом: 1)нажмите ссылку "change z-index" нижний логотип станет поверх второго после перезагрузите страницу 2)нажмите сперва ссылку "findelements", а затем только "change z-index" как видим после вашей функции, остальной код не работает так как ожидалось
<html>
<head>
<script type="text/javascript">
function findelements(selector){
all=document.getElementsByTagName('*');
for(var i=0;i<all.length;i++)
{
if(window.getComputedStyle)
all[i].defaultzindex=window.getComputedStyle(all[i],null).zIndex;
else
all[i].defaultzindex=all[i].currentStyle.zIndex;
}
elem=[];
style=document.createElement('div');
rand=Math.floor(Math.random() * 1000);
style.innerHTML='<style>'+selector+'{z-index: ' + rand + '}</style>';
document.body.appendChild(style);
for(var i=0;i<all.length;i++)
{
if(window.getComputedStyle)
z=window.getComputedStyle(all[i],null).zIndex;
else
z=all[i].currentStyle.zIndex;
if (z==rand)
{
elem.push(all[i]);
}
all[i].style.zIndex=all[i].defaultzindex;
}
return elem;
}
</script>
<style>
.img1{
position:absolute;
left:10px;
top:10px;
z-index:5;
}
.img1_new{
position:absolute;
left:10px;
top:10px;
z-index:7;
}
.img2{
position:absolute;
left:20px;
top:20px;
z-index:6;
}
</style>
</head>
<body>
<img id="img1" class="img1" height="44" width="100" border="0" alt="Яндекс" src="data:image/png;base64,iVBOR....ggg==">
<img class="img2" height="44" width="100" border="0" alt="Яндекс" src="data:image/png;base64,iVB...rkJggg==">
<br /><br /><br /><br /><br /><br /><br />
<a href="#" onclick="findelements('a');return false;">findelements</a>
<a href="#" onclick="document.getElementById('img1').className='img1_new';return false;">change z-index</a>
</body>
</html>
PS getComputedStyle который вы берете в начале, и свойство style.zIndex, выставляемое в конце - это абсолютно разные вещи. и последний до прихода вашей функции у большинства элементов равен пустой строке |
| Часовой пояс GMT +3, время: 19:58. |
|