Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[JS] Image resize functie

Pagina: 1
Acties:
  • 366 views

  • Ruffian
  • Registratie: Augustus 2001
  • Laatst online: 16-11 14:17
Ik heb jullie resize code gejat! :7

Maar ik ondervind nog enkele problemen. Als de pagina word geladen, worden de plaatjes ook geladen en worden ze vergroot. De div (of td) waar de plaatjes dan in staan (die ik class="imagecontainer" geef) wordt dan ook groter. Met als gevolg dat ik de grootte van de parent-div/td niet meer kan gebruiken en dus mijn plaatjes niet kan resizen zodat ze passen in de td/div.

Ik gebruik mootools v1.11. De code werkt gewoon goed, geen errors in de Firefox error console en zo, maar de parent div wordt dus groter, waardoor de if op imagewidth > containerelement niet meer word uitgevoerd: De plaatjes worden daardoor niet geresized.

Ik vroeg me af of jullie weten wat ik hier fout doe? Aangezien het op GoT wel werkt. :)
Weten jullie tevens een oplossing voor een containerelement met een breedte in procenten? Of moet ik dan per sé die breedte in pixels opgeven?

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
function user_images()
{
    var im  = $$('img.scale'), i = im.length;
 
    while (i--)
    {
        if (im[i].naturalWidth || im[i].complete)
        {
            scale_image(0, im[i]);
        }
        else if (typeof im[i].onreadystatechange != 'undefined')
        {
            im[i].onreadystatechange = scale_image;
        }
        else
        {
            im[i].onload = scale_image;
        }
        im[i].onerror = scale_image;
        im[i].onabort = scale_image;
    }
    if (window.ie)
    {
        window.addEvent('load', user_images_ie);
    }
}
function user_images_ie()
{
    var im = document.images, i = im.length;
    while (i--)
    {
        if (im[i].className.indexOf('scale') != -1)
        {
            scale_image(0, im[i]);
        }
    }
}
function scale_image(e, img)
{
    if (!img)
    {
        img = this;
    }
 
    if (img.width || img.complete)
    {
        if (img.naturalWidth)
        {
            imgwidth = img.naturalWidth;
            imgheight = img.naturalHeight;
        }
        else if (img.complete)
        {
            var dum = new Image(); dum.src = img.src;
            imgwidth = dum.width;
            imgheight = dum.height;
        }
 
        if (imgwidth)
        {
            if (img.onreadystatechange)
            {
                img.onreadystatechange = null;
            }
            if (img.onload)
            {
                img.onload = null;
            }
        }
 
        var contentDiv = img.parentNode, inQuote = false;
        while (contentDiv)
        {
            if (contentDiv.className.indexOf('imagecontainer') != -1)
            {
                break;
            }
            contentDiv = contentDiv.parentNode;
        }
 
        if (contentDiv)
        {
            var maxWidth = contentDiv.offsetWidth;
 
            if (imgwidth > maxWidth)
            {
                if (img.parentNode.nodeName != 'A')
                {
                    if (!img.naturalWidth)
                    {
                        img.naturalWidth = imgwidth;
                    }
                    if (!img.naturalHeight)
                    {
                        img.naturalHeight = imgheight;
                    }
                    img.className += ' resized hand';
                    //img.onclick = openImage;
                    el = img;
                }
                else
                {
                    img.className += ' resized';
                    el = img.parentNode;
                }
            }
 
            if (img.width > maxWidth)
            {
                if (img.height)
                {
                    img.height = Math.round(maxWidth / img.width * img.height);
                }
                img.width = maxWidth;
            }
        }
    }
}

A life? Where can I download it??


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je jat code (van ons notabene! :D ) en verwacht er dan ook nog support op? En dan ook nog zonder zelf enige moeite te doen of te laten zien wat je hebt geprobeerd, gezocht, gevonden etc?

Nah. Al was het niet gejat / geleend / afgekeken van ons, dit is me toch teveel een scriptrequest / Kan iemand even...?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.