Есть карта Італии на сайте auto-bazar.it . Принцип действия такой. Есть Изображение по умолчанию, /images/map-italy.jpg и 20 точно таких же изображений только с выделенным желтым цветом соответственного региона Италии. То есть при наведении на то место где расположен регион которому отвечают его координаты, подложка /images/map-italy.jpg заменяется изображение с подсвеченным регионом. Проблема в том что 20 изображений * 17 килобайт = 340 кб. Это не допустимо. Я в Java Script вообще не шарю. По изложенному коду пожалуйста подскажите как заставить его и возможно ли ето чтоб при наведении на любой регион выводилось изображение .png или .gif с прозрачностью, то есть только картинка с за крашеным регионов но не взамен подложка а поверх нее. При такой работе 20*1.5=30 кб. Думаю понятно. Спасибо всем кто ответил.
var data; var dataLevel1 = new Array(); var dataLevel2 = new Array(); var dataLevel3 = new Array(); var url = "http://"+document.domain; var url_cookie = document.domain;
function setCookie(cookieName, cookieValue) { var expire = new Date(); expire.setTime(expire.getTime() + 3600000*24*365); document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString()+";path=/"; }
function setOrder(field, how) { setCookie('sort', field + ':' + how); window.location.reload() }
function setView(view) { setCookie('view', view); window.location.reload(); }
function getCookie(name) { var sPos = document.cookie.indexOf(name + "="); var len = sPos + name.length + 1; if((!sPos) && (name != document.cookie.substring(0, name.length))){ return null; } if(sPos == -1){ return null; } var ePos = document.cookie.indexOf(';', len); if(ePos == -1) ePos = document.cookie.length; return unescape(document.cookie.substring(len, ePos)); }
function sendEmailMessage(frm) { var f = document.getElementById(frm); if(f.serialize) { f["_qs"].value = f.serialize(); } f.submit(); }
function redirect(){
var cookie = getCookie("kijiji_my_ads"); if (cookie == null){
location.href = url+"/miei-annunci";
}else{ var t = url+ "/L/" +cookie; location.href = t; } }
function removeHTMLTags(htmlString){ if(htmlString != '' && htmlString != 'undefined'){ var mydiv = document.createElement("div"); mydiv.innerHTML = htmlString;
if (document.all) // IE Stuff { return mydiv.innerText;
} else // Mozilla does not work with innerText { return mydiv.textContent; } }else return ''; }
//comment function doBrowseSearching(form) {
var path = "/"; var url_prepend = ''; var cat = form.categoria.value; var loc = form.dove.value.replace(' (provincia)',''); var filterCounter = 0; var url = ''; var bool = false; var txt = form._nkw.value;
var txt = form._nkw.value.replace(/^\s*([\S\s]*)\b\s*$/, '$1');
// escaping some chars and remove html injection txt = removeHTMLTags(txt); txt = escape(txt); txt = txt.replace("%60",'\'');
var missed = 'keo/ncau3dloem@#igrfjijemnaqwoemdp3872';
if(loc == "Tutta Italia") loc = ""; if (cat != '') path += cat + '/';
if (form.dove.name == "inputText"){ valueFormatted = loc.replace(/-/g, "/"); var customUrlPrepend = false; for(var i=0;i<dataLevel3.length;i++){ if(dataLevel3[i] != "undefined" && dataLevel3[i] != null){ var value1 = valueFormatted.toLowerCase(); var value1bis = loc.toLowerCase(); var value2 = dataLevel3[i].toLowerCase().replace(' (provincia)','');
if ((value1 == value2) || (value1bis == value2)) { if(data[dataLevel3[i]]>2) customUrlPrepend = true; bool = true; break; } } } if (bool == true && loc.indexOf('annunci-')<0){ if(customUrlPrepend){ if(valueFormatted.search('comune')<0){ //Get the parent city (the province) for(var obj in data) { if(data[obj] != null && data[obj] != 'undefined'){
function bookmarksite(title){ var url = document.location.href; if (window.sidebar) // firefox window.sidebar.addPanel(title, url, ""); else if(window.opera && window.print){ // opera var elem = document.createElement('a'); elem.setAttribute('href',url); elem.setAttribute('title',title); elem.setAttribute('rel','sidebar'); elem.click(); } else if(document.all)// ie window.external.AddFavorite(url, title); }
function remove(id){ document.getElementById(id).style.display = "none" }
var othersDivs = new Array();
function registerOther(id) { othersDivs[othersDivs.length] = id; }
function showOthers(name, linkto, total){ for(var j=0; j<othersDivs.length;j++){ var i = othersDivs[j]; // var spi = $('span-'+ i); var spi = document.getElementById('span-'+ i); // var lit = $('link-'+ i +'-text'); var lit = document.getElementById('link-'+ i +'-text'); // var lii = $('link-'+ i +'-image'); var lii = document.getElementById('link-'+ i +'-image'); if (spi.id == name && (spi.style.display == "" || spi == null)){ spi.style.display="none"; lit.innerHTML=''; lit.innerHTML='Vedi tutti'; lii.innerHTML=''; lii.innerHTML='<img src="' + baseStaticUri + '/images/expand.jpg" alt="expand" width="11" height="11" >';
var track_index = 1; var level = 0 var index = 0; dataLevel1 = new Array(); dataLevel2 = new Array(); for(var obj in data) { if (typeof(obj) != 'number') { if (data[data[obj]] == 1) { dataLevel1[dataLevel1.length] = obj; } else { dataLevel2[dataLevel2.length] = obj; } } } dataLevel1.sort(); dataLevel2.sort();
dataLevel3 = dataLevel1.concat(dataLevel2);
var index = 0; try{ var regex = new RegExp("^" + value, "i") }catch(e){ document.getElementById("suggestBoxdove").style.display = "none"; document.getElementById('dove_tips').style.display = ""; return false; }
var second_level = false; /*for(var i=0;i<dataLevel3.length;i++){ document.write("<b>dataLevel3["+i+"] is </b>=>"+dataLevel3[i]+"<br>"); }*/ document.getElementById('suggestBoxdove').length = 0; var optionsL1 = new Array(); var optionsL2 = new Array(); var optionsL3 = new Array(); for(var i=0;i<dataLevel3.length;i++){
if (dataLevel3[i] != null && regex.test(dataLevel3[i])){ track = true;
/** * NOT NEED - always show suggestion if(dataLevel3[i].toLowerCase() == value.toLowerCase()){ document.getElementById("suggestBoxdove").style.display = "none"; return false; } **/
var tmpOpt = new Option (dataLevel3[i], obj, true, false); switch(data[dataLevel3[i]]){ case 1: optionsL1.push(tmpOpt); break; case 2: optionsL2.push(tmpOpt); break; case 3: optionsL3.push(tmpOpt); break; } //index++; }
function _CheckValueAttribute(location, category){ var track1 = false; for(var obj in dataLocation) { if (obj != null){ var loc = document.getElementById(location); //var loc = $(location); if (dataLocation[obj] == loc.value){ track1 = true; } } }
/********************** FROM EAN ***************************/
function setCaptchaResp(val) { setOnLoad('CaptchaStr', val); }
function setOnLoad(id, val) { var o = document.getElementById(id); if (o) o.value = val; else setTimeout("setOnLoad('" + id + "', '" + val + "');", 200); }
/************************* FROM RECENTLY VIEWED ADS TPL********************************/
var rv_cookie_name = "recentlyViewed";
function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/"; }
function delete_RV_All(){ createCookie(rv_cookie_name,"",-1); var rvb = document.getElementById('recently_view_box'); rvb.style.display = 'none'; /* rvb.setStyle({ display: 'none' });*/ }
function delete_RV_Item(item_id){
var nameEQ = rv_cookie_name + "="; var ca = document.cookie.split(';'); var array = new Array(); var new_cookie_content = ""; for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0){ array = c.substring(nameEQ.length,c.length).split("%40%40"); for (var j = 0; j < array.length; j++) { if(array[j]!=item_id){ new_cookie_content += array[j]+"%40%40"; } } } } new_cookie_content = new_cookie_content.substring(0,new_cookie_content.length-6); if(new_cookie_content==""){ delete_RV_All(); }else{ createCookie(rv_cookie_name,new_cookie_content,30); /* var rvi = document.getElementById('rvitem_'+item_id); rvi.style.display = 'none'; */ var rv_item_list = document.getElementById('recently_view').getElementsByTagName('ol')[0]; var rv_item_list_elements = rv_item_list.getElementsByTagName('li'); var display_flag = false; for(var j=0;j<rv_item_list_elements.length;j++){ if(rv_item_list_elements[j].id == 'rvitem_'+item_id){ rv_item_list.removeChild(rv_item_list_elements[j]); }else if(rv_item_list_elements[j].style.display == 'none' && display_flag == false){ display_flag = true; rv_item_list_elements[j].style.display = 'block'; } }
var rvic = document.getElementById('rv_item_counter'); rvic.innerHTML = array.length -1; } }
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
Моряк Папай
Есть карта Італии на сайте auto-bazar.it . Принцип действия такой. Есть Изображение по умолчанию, /images/map-italy.jpg и 20 точно таких же изображений только с выделенным желтым цветом соответственного региона Италии. То есть при наведении на то место где расположен регион которому отвечают его координаты, подложка /images/map-italy.jpg заменяется изображение с подсвеченным регионом. Проблема в том что 20 изображений * 17 килобайт = 340 кб. Это не допустимо. Я в Java Script вообще не шарю. По изложенному коду пожалуйста подскажите как заставить его и возможно ли ето чтоб при наведении на любой регион выводилось изображение .png или .gif с прозрачностью, то есть только картинка с за крашеным регионов но не взамен подложка а поверх нее. При такой работе 20*1.5=30 кб. Думаю понятно. Спасибо всем кто ответил.
Да, если можно, кто понимает. подскажите. может есть еще что то лишнее в коде? без чего можно обойтись.
Извиняйте что так много кода. Я новенький на сайте. Как лучше его было вставить?
Edited by Моряк ПапайLink to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.