|
мой движок ксс селекторов
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, время: 02:40. |
|