שלח תשובה

זירת השאלות

497
צפיות
7
תשובות

בעיית JS שאני לא יודע לתקן

,‏ 30 בינואר, 2004

עשיתי את הפומקצייה הבאה :::

function imgFile(searchId,newsTitleId,newsDataId){
var imgSearch, imgNewsTitle, imgNewsData, newsTitleObj, newsDataObj, searchObj
imgSearch = new Image()
imgNewsTitle = new Image()
imgNewsData = new Image()
if (screen.width>800 && screen.height>600){
imgSearch.src = "images/search.jpg"
imgNewsTitle.src = "images/newTitle.jpg"
imgNewsData.src = "images/newData.jpg"
}else{
imgSearch.src = "images/littleSearch.jpg"
imgNewsTitle.src = "images/LittlenewTitle.jpg"
imgNewsData.src = "images/LittlenewData.jpg"
}
newsTitleObj = document.getElementById(newsTitleId)
newsTitleObj.style.backgroundImage = imgNewsTitle

newsDataObj = document.getElementById(newsDataId)
newsDataObj.style.backgroundImage = imgNewsData

searchObj = document.getElementById(searchId)
searchObj.style.backgroundImage = imgSearch
}



הבנתי ע"פ השגיאה שהחלק שאחרי ההתנייה אינו נכון (וכנראה בלתי אפשרי) אז אם זה כך איך אני מכניס ערך של תמונה שיצרתי לתוך style מסוים של שכבה או כל אלמנט אחר בדף ?

בתודה ניר

תגיות:

7 תשובות

  1. זהר פלד הגיב:

    אז ככה:
    obj.style.backgroundImage אמורה לקבל בכלל כתובת, ולא אובייקט תמונה.
    לפירוט מלא, ראה כאן.

  2. ניר טייב הגיב:

    כן עליתי…
    על זה בזמן שאכלתי ושיניתי אבל עכשיו אם אני משתמש בפונקציה המתוקנת

    function imgFile(searchId,newsTitleId,newsDataId){
    var imgSearch, imgNewsTitle, imgNewsData, newsTitleObj, newsDataObj, searchObj
    imgSearch = new Image()
    imgNewsTitle = new Image()
    imgNewsData = new Image()
    if (screen.width>=1024 && screen.height>=768){
    imgSearch.src = "images/search.jpg"
    imgNewsTitle.src = "images/newTitle.jpg"
    imgNewsData.src = "images/newData.jpg"
    }else{
    imgSearch.src = "images/littleSearch.jpg"
    imgNewsTitle.src = "images/LittlenewTitle.jpg"
    imgNewsData.src = "images/LittlenewData.jpg"
    }
    newsTitleObj = document.getElementById(newsTitleId)
    newsTitleObj.style.backgroundImage = "url(" + imgNewsTitle + ")"

    newsDataObj = document.getElementById(newsDataId)
    newsDataObj.style.backgroundImage = "url(" + imgNewsData + ")"

    searchObj = document.getElementById(searchId)
    searchObj.style.backgroundImage = "url(" + imgSearch + ")"
    }


    הפעלתי את זה באירוע OnLoad אבל עדיין הפונקצייה לא פועלת כמו שצריך
    הקטע בפונקציה שהיא תעשה שאם המסך מוגדר ברזולוציה 1024*768 או גדולה יותר אז זה ייתן לי תמונה אחת ואם קטן יותר אז זה ייתן לי תמונה אחרת
    ולאחר ההתנייה זה אמור להציב את זה בתוך ה-style של האלמנט שלי (שזה עובד)

    מישהו צוכן להדריך אותי איך לתקן את הפונקציה כדי שתעבוד לי כמו שאני רוצה ?

  3. ניר טייב הגיב:

    התבלבלתי קורה משהו אחר…
    בהפעלה של onLoad זה עושה לי הבזק של השינוי ולאחר מכן מוריד לי את התמונות רקע שהגדרתי בפונקציה אתם יכולים לראות את הדוגמא כאן
    ואם אני מוריד את הגדרת הפונקצייה אז לא קורה כלום ומה שרציתי לעשות בפונקציה לא נעשה…

  4. זהר פלד הגיב:

    אתה עדיין נותן אובייקט תמונה…
    מתוך קובץ ה JS שלך:

    imgNewsTitle = new Image();
    ….
    ….
    ….
    newsTitleObj.style.backgroundImage = "url(" + imgNewsTitle + ")";

    כשהשורה התחתונה כאן אמורה להיות, אם כבר, משהו כזה:

    newsTitleObj.style.backgroundImage = "url(" + imgNewsTitle.src + ")";

  5. ניר טייב הגיב:

    שמע…
    עכשיו העיצוב לא נהרס אך הפונקציה לא עושה את מה שרציתי (היא לא עושה כלום בעצם)… בסך הכל רציתי שאם הרזולוציה קטנה מ-1024 אז תהיה תמונה אחרת שיצרתי יש אפשרות לעשות זאת…

  6. ניר טייב הגיב:

    חדשות זוהרות
    הפונקציה כן עובדת !!!

    ובקרוב אני אשכתב אותה למאמר ואשלח אותו… (מקווה שהמנהלים יקבלו)

שלח תשובה