Jump to content
php.lv forumi
  • 0

samazināt bildi uz pusi


aika

Question

taisu bildes priekšapskates fonkciju. (jQuery utt)

php pusē: <A class='preview' HREF='bilde_liela.jpg' title='virsraksts'>

$("a.preview").hover(function(e){
	this.t = this.title;
	this.title = "";	
	var c = (this.t != "") ? "<br/>" + this.t : "";
	$("body").append("<p id='preview'><img src='"+ this.href +"' alt='Image preview' />"+ c +"</p>");								 
	$("#preview")
		.css("top",(e.pageY - xOffset) + "px")
		.css("left",(e.pageX + yOffset) + "px")
		.fadeIn("slow");						
   },

1v. mēģināju no php puses iebarot platumu/2 kā mainīgo w: <A class='preview' HREF='bilde_liela.jpg' w='$PuseNoPlatuma' title='virsraksts'>

<img src='"+ this.href +"' width='" +this.w + "' ...
- nestrādā

2v. mēģināju javas pusē dabūt platumu:

this.width/2
- uzrāda kā undefined

mēģināju javas pusē lādēt bildi un dabūt platumu:

var newImg = new Image();

newImg.src = this.href;

var width = newImg.width/2; ...

... <img src='"+ this.href +"' width='" +width + "' ...

- beidzot strādā, taču sāka baigi bremzēt!

 

Jautājums - kāpēc nestrādāja 1 un 2 (ja jau this. kā noprotu ir bildes objekts) variants?

vai varbūt ir loģiskāki un ātrāki veidi?

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

this.width strādās tikai tad, kad atbilstošajam elementam būs width="" uzlikts un to vērtību arī rādīs.

Ja vajag elementa pašreizējo platumu, tad lieto this.offsetWidth

nope - nestrādā ne this.offsetWidth, ne width parametra padošana no php puses

Link to comment
Share on other sites

  • 0

Pirmkārt, javascript nav java.

Otrkārt "this" tavā skriptā nav bildes objekts, bet anchors $('a.preview');

Un lai dabūtu lielumu no bildes, kas nav ielādējusies, protams, vispirms tad tā ir jāielādē ar to new Image();

Vai arī jānolasa no $('#preview > img'), ko appendo zem body, bet tad vispirms redzama būs lielā un tad samazināsies.

Ceturtkārt, funkcijas nenoslēdz ar komatu, bet ar ;

Edited by indoom
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...